Hacker News

Ask HN: Best way to get into embedded programming?

Eventually I would like to get my Masters in Robotics. After a decade of building apps and infrastructure I'm pretty bored of it. I am thinking that doing embedded programming for a robotics company might be a good stop-gap while I pursue my M.S. Any recommendations on where to get started? I see a lot of job postings wanting VxWorks, embedded C++ that kind of thing.

15 pointssmattiso posted 4 months ago6 Comments
ThrowawayR2 said 4 months ago:

Digilent has a lot of good educational boards for embedded systems and associated training material. You might consider starting with their Basys MX3 board with a 32-bit processor and a luxurious 128 kB of RAM.


Free course material that you can go through is available for this board.


abhinuvpitale said 4 months ago:

Play around with an Arudino, Raspberry Pi if you are getting started. If you know how basics works, get yourself to solving a problem that you think can be solved using an embedded device. Start with some home automation. It's the best way to get your hands dirty.

Get a board, LCD display,a couple of motors, LEDs and stuff like that and make something legit!

imac said 4 months ago:

Highly recommend the book Computers as Components by Wayne Wolf. Thoroughly discusses the principles of embedded computing. From an interviewing perspective, I believe the focus is mainly on hardware abstraction layer (bit manipulation/register handling), OS concepts and C/C++ embedded programming.

Gibbon1 said 4 months ago:

I'd suggest you monkey with the ESP8266 boards.

ARV Micro's are bare metal and have a large friendly community. Generally the tools are cheap and just work.

See https://www.avrfreaks.net/

stevekemp said 4 months ago:

Agreed. Most people start with arduino devices, but they're a little limited compared to the ESP8266 - which is programmed by the same tools but has on-board wifi.

Hookup a board to an i2c LCD-display, and then write code to poll a remote website and display text on it. It'll be a reasonably easy project for a beginner and will get you in the mindset of working on a constrained device.

After that you can go smaller, using devices with less RAM & I/O, or you can go bigger and look at embedded ARM/x86 boards which can run Linux - but still have their own quirks.

btkramer9 said 4 months ago:

I work in embedded programming. You can reach me at my username at gmail.com. It's not quite robotics but feel free to reach out to me if you want more info