Hello, friends. This idea has been gnawing at me for a while, which usually tells me that I need to get it out there. This project might be a little more writing than hardware or code for a bit, but I appreciate some help!
My challenge: I love building projects and want to get better at it, but as a novice, I feel like I’m missing a lot of fundamental things here and there.
Possible solution: This got me thinking that I should help newbies like myself and others by making some kind of starter guide. Sure, I could spend tons of hours researching this on my own, but it would also be immensely valuable to ask our community for help since yall are far more experts than I am.
In this Edge Developer’s Guide to the Galaxy, what would it include? Off the bat, seems like folks should have an understanding of:
Docker / why containers on edge devices
Edge devices and SBCs in general
basic low-voltage electronic skills
Setting up your development environment, hardware setup…
Provisioning a device
Managing a device
Troubleshooting and testing
Common networking things to make sure you do / or to avoid
… probably a ton more
^^^ not necessarily in any order, but just off the dome.
If you were to teach a newbie like me (or others), what are other must-have / must-know things? Also let me know if I’m off the mark here and chime in on what a solid edge developer/IoT hacker/maker needs. Open to any and all feedback.
@andrewnhem I would add into the list some Linux basics, because those are (usually) a chunk of knowledge that is required before you can begin crafting your Dockerfile. (There are definitely exceptions…but…basic Linux usage is very helpful).
I love this idea and I think it would have helped us a lot if it had been already available back then when we started our IoT\Edge journey.
Since we are in the realm of Balena, users probably have to manage large fleets of devices (at least that’s my experience) so I’m proposing two additional points:
OTA\Atomic updates. Why it’s so crucial to have a reliable system for atomic updates (Balena official docs already cover this point in details, imho).
Architecture overview and choices for IoT solutions: since edge devices probably need to comunicate with cloud systems, it’s important to design carefully your edge-to-cloud architecture with all the design choices required. A mention to MQTT is a must. (for this point, I’d be happy to contribute myself since we had a heavy design process when approaching Balena).
If you need help in any way for this project I’m willing to contribute however I can!
I think sometimes we take it for granted but it’s important to consider a path to scale, as in getting a prototype together in a manner that’s easily scalable when you want to deploy device 2, 3, 4…n.
Then perhaps actually taking the user through the steps of provisioning your second prototype, and your first production device, and some of the aspects of fleet management. I think part of what’s cool about developing with balena is that to a certain extent you’re already set up to scale as soon as you hit v1 of your app, which is a strong benefit that perhaps isn’t apparent to beginners.
This sounds really good to me.
Something I haven’t really seen yet, but might be part of troubleshooting, is where and how to find more information that’s not already covered in the guide.
For example, a mini-guide on
searching through forums, mailing lists and git repos;
@here – Been a minute, but I’d like to keep this project going. After consulting a few teammates, we felt that creating a platform/tool-neutral collection of information would be the best way to start. I’ve transposed the ideas from this document and moved them to this public repo:
Everyone is welcome to contribute. If you need some guidance as to how, please reach out. Once I get some more free time, I’ll reach out about specific needs, build out the project board, etc…