Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

We are slowly getting better at this. Most embedded Linux companies for example have shifted or are in the process of shifting to an upstream-first policy. A lot of the toolchains are open, busybox is used everywhere. A lot of the really good HALs are open source. We're getting there!


which open source HAL do we have these days? thanks.


I've been using Zephyr lately and have been really enjoying it. It still has the vendor HAL libraries available (e.g. Microchip/Atmel ASF), but the devicetree-based HAL has been fabulous to work with. I've tried a number of different embedded frameworks/RTOSes over the years, but it's the first that I actually feel happy using. There's a few sharp edges for sure, but it's at least an order of magnitude better than anything I've used in the past. One thing that's been particularly good is that the abstractions feel right, and it's allowed our team to collaborate on firmware without constantly tripping each other, because the module boundaries and abstractions are good.


This is good to hear. I'm just getting up and running with tutorials for a Nordic IoT SIP using Zephyr, with plans to develop a new model of an agricultural data monitoring/control product we've been offering for a few years. So far it seems really good. I personally have very little experience with embedded software (many years with web software) but am finding it easy to pick up.


Great to know, Zephyr is on my to-use list and I need move it up the list more. Heard good things about it. It might become the Linux OS for low resource MCUs as the trend goes, it's also a LF(Linux foundation) project and vendor neutral, very promising.

For me my plan is to use Zephyr with RP2040.


> For me my plan is to use Zephyr with RP2040.

I've been using Zephyr on an Atmel/Microchip SAMD21 for $WORK and it's been awesome.

I have an RP2040 sitting on my desk for a personal project and the plan was to use Zephyr for that as well, but it seems the WiFi is based around a binary blob and a weird interface to it that the Arduino BSP has wrappers for... It's been crunch time at work and I haven't gone back yet to see if the RP2040 port is coming along further, but on the Saturday I was looking at it, it seemed like connectivity was potentially going to be an issue for now.

ESP32 support is currently great for some chips and a WIP for other chips. I got unlucky and the one board I planned to use for a different project was pretty much completely unsupported, but I found a different one in my parts bin that only took about 4 hours to get going with the sensors I had planned on using (I2C or SPI, I don't recall), Bluetooth Central for some different sensors, and WiFi to connect it to the local network. It was really smooth!


There is quite a bit of interesting work in the embedded Rust space on this. The embedded-hal project has made some progress on standardizing traits for peripherals and there are some decent HAL crates that have largely adopted those standards. The stm32-hal crates are fantastic.


rust is too hard to use for me, if I need pick up a modern language for low level it will be zig instead of rust. while rust might be fine for MCU low level embedded, it does not work for mid-range embedded linux when you have 64MB storage for example, as rust is by default static linked, a few of rust executable will fill up the storage, unlike c or c++ or zig where they can share some libraries _easily_ to save space.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: