Hacker News new | ask | show | jobs
by bsder 1636 days ago
> Documentation is lacking and the tools people use to write code for it suck.

Okay, I'm going to ask "Compared to whom?"

Nordic has been one of the better BLE chip manufacturers in terms of documentation, in my experience.

Most places use Keil tools directly from ARM. So, if programming these sucks, so does programming most embedded Cortex M4 chips. (No argument. Keil sucks. However, that doesn't mean that Nordic sucks any worse than anybody else).

And now you can program Nordic chips using Visual Studio Code.

3 comments

Sure, comparing BLE specifically. And Nordics chip / peripheral level documentation is fine, but their software stack documentation (at least as of 3 years ago when I was last working on BLE stuff) is fine at best. They released a new version of the API every 6-12 months with lots of backwards incompatible changes (a new major version every time...), referenced examples from previous API versions (but didn't port them to the new version), and added tons of new poorly documented compile-time config options to every API version.

All told I figured out how to make a reasonably complex chain of bluetooth devices work (largely by reading the source and comparing against old version API documentation to figure out differences), so it definitely could have been worse. But to imply that just because the documentation is BETTER than the competition that it is GOOD?

No. Its fine.

It kinda helps to have an EE background for anything embedded. Doing embedded stuff has always been a gritty experience since I started around 2000. I find Nordic tools fine, and they've been getting incrementally better. Either the VSCode plugin or Segger Studio works fine for development, and the devkits work fine.
Say what you will about the hardware, but ESP-IDF is the gold standard for me now
ehh… It is pretty easy to use but there's way too much bundled stuff in there, you're always under FreeRTOS, and Wi-Fi support is all proprietary blobs (but that's unfortunately the case with every embedded Wi-Fi chip… unlike Bluetooth LE with has multiple fully FOSS implementations)
I don't know what you mean by "way too much stuff", it's mostly use what you want. It's easy enough to disable any features you don't want with their sdk config stuff

They used to even ship a "No OS" SDK for the 8266, but the demand just wasn't there, FreeRTOS is pretty solid for the core competency of their product after all...