
Ask HN: Best way to get into embedded programming? - smattiso
Eventually I would like to get my Masters in Robotics. After a decade of building apps and infrastructure I&#x27;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.
======
ThrowawayR2
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.

[https://store.digilentinc.com/basys-mx3-pic32mx-trainer-
boar...](https://store.digilentinc.com/basys-mx3-pic32mx-trainer-board-for-
embedded-systems-courses/)

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

[https://reference.digilentinc.com/reference/microprocessor/b...](https://reference.digilentinc.com/reference/microprocessor/basys-
mx3/start#coursework)

------
abhinuvpitale
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
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
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/](https://www.avrfreaks.net/)

~~~
stevekemp
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
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

