Hacker News new | ask | show | jobs
by jackschultz 539 days ago
Back to embedded systems, particularly with Rust.

I did computer engineering in college some 10-15 years ago, where these projects were super basic and difficult to get into. Seems like massive advancements in the past decade. Maybe my eye has been watching for these, but I'm seeing many more posts about ESP32 projects, for example, being linked here. Same for RP2040s, along with sensors galore and wifi / bluetooth connections.

Picking Rust as language for the chips instead of the C and MicroPython. Rust has applications beyond the embedded systems and learning it lower level can be helpful if wanted in other cases.

1 comments

I've been a (professional?) embedded software engineer for 25 years. I tried rust a few times, but did not particularly enjoy the experience.

MY_GPIO.borrow(cs).borrow().as_ref().unwrap().odr.modify(|_, w| w.odr1().set_bit());

It seems like the options are 1) MicroPython, which is really easy to use (use python for everything) but lacking in anything lower level to a quick restriction on what you can do. 2) C, which I've used before and understand, but going from the Arduino or PlatformIO experience would require a lot of learning as well. 3) Rust (with embedded_hal and embassy), which is newer, along with different language, but with ability to go lower level with complies, and seeming overall goal to be more widely used.

College was all C/C++ so I've used that before, so I can understand and pick up the code. Since I have brief experience rather than your experience, I'm betting that the time it'd take for me to get up to speed with C and fuller dev environments would take as long as with Rust, and since I can use rust in more applications for what I do professionally, I'm figuring to put the time there.

What have you built and with what in your 25 years? Too many posts and vids about these things are intro rather than more in depth. It's great to hear from people who actually do this into production rather than mini-projects.

A fourth option might be Ada.

I'm learning Ada next year. I'm not interested at all in doing low level programming with it, but the text books I have note that it's actually an area where it excels. Maybe worth a look.