←back to thread

129 points hasheddan | 8 comments | | HN request time: 0.49s | source | bottom
Show context
SOLAR_FIELDS ◴[] No.44367397[source]
Nordic makes some good products. When I was doing hardware design for a product that uses a battery my options for power profiling were either not to do it or spend some eye watering amount of money. Then I discovered Nordic makes the PPKII, a cost effective, highly accurate profiler with quite good software. I detect good things in store for the company just based on the quality of stuff they have been putting out.
replies(7): >>44367526 #>>44367601 #>>44367674 #>>44367996 #>>44368169 #>>44371842 #>>44372816 #
monegator ◴[] No.44367601[source]
> Nordic makes some good products

and godawful software. the SDK for their NRF52/3/4 is pure madness, i haven't even managed to set up the toolchain, documentation always out of date. They used to have another toolchain for the older parts, but good luck setting it up now.

replies(4): >>44367823 #>>44368255 #>>44368654 #>>44369851 #
1. blutack ◴[] No.44368255[source]
I'm sorry you've had a bad experience but I don't agree, I prefer it to the ST, TI and definitely the Microchip tooling. It's CLI first, like the Espressif and Pico tooling which is a big plus for some and not for others.

Also, no mandatory login walls for toolchains and datasheets gets them a lot of goodwill in my book.

replies(1): >>44368446 #
2. monegator ◴[] No.44368446[source]
I'm proficient with many MCU families.

Microchip tooling: download, double click, install, just works. Zero need for any framework, good bare metal support. a C project is an actual C project. Granted, if you use that MCC piece of shit you're in for a bad time, but going bare metal require zero effort, a single include file if you need to access peripherals, and you actually have documentation to do so.

ST tooling: sort of almost just works, more effort but you can still go bare metal with relative ease.

Current nordic: it's actually a zephir project, thousands of files to generate and compile. No options to go bare metal. (used to be possible with the older SDK, or so they tell me. Too bad i can't seem to be able to let a project compile with the old SDK, or set up the IDE for intellisense with the new SDK, but i haven't had enough time yet.)

Bonus: Espressif. At least their VSCode integration really just works. The peripherals are frustrating and severely bugged though and there can be supply chain issues, and that's the reason i'm looking at nordic for some BLE-enabled project, because the ESP32 parts won't cut it for this or that reason (usually the basic yet still bugged peripherals).

But i'm willing to put up with microchip's BLE modules again (i evaluated them several times over the years, always a disaster. But not the newer based on PIC32MZ, and the price have come down to be reasonable.) if the only option with nordic is the zephir monstruosity.

replies(3): >>44368738 #>>44369621 #>>44369938 #
3. eschneider ◴[] No.44368738[source]
I mean, you _can_ go bare metal with Nordic chips, but you'd definitely be swimming against the current. I'm not a fan of Zephyr, but it really wasn't that much trouble to put together a docker image that would let me spin up whatever version of the SDK I needed and then just build from the docker. Quite tolerable.
4. vbezhenar ◴[] No.44369621[source]
I completely agree. I spent lots of time trying to figure out their modern SDK, but in the end I abandoned it and just used their old SDK. Their examples and approach are terrible, but in the end I was able to make it work, after untangling the holy mess of macros they put there. Their old SDK is bearable, their new SDK... I still think I need to go there, but I don't have enough willpower to do that. So much moving parts. Custom build system, not just one, but actually three of them at once (cmake, ninja, west). The whole RTOS which I never needed. And not just simple one like FreeRTOS, but absolutely humongous one. Add their terrible software which they insist I must use to install their stuff. Just give me zip, I don't want to install nothing.

Let me write simple Makefile, give me thin layer over CMSIS called SDK and that's all I need. Don't make things harder than they should be, my project is simple, I don't need operating system for it.

replies(1): >>44373138 #
5. mystified5016 ◴[] No.44369938[source]
Installing a whole toolchain and SDK system-wide is such nonsense.

Espressif's toolchain and SDK are in a git repo that you add as a submodule, or in a directory anywhere you want.

If I want to use microchip or Nordic on a new machine I have to go through this whole process of installing and configuring everything. My ESP projects simply involve a git pull and I'm done.

Nordic was a special pain in the ass because I had to hunt for the exact correct version of the SDK which was hidden away because it's a few versions old. If I need to do the same for espressif, it's literally just a git switch away.

Espressif is in an entirely different league from ST, nordNordic, et al. They're not even playing the same game. Espressif wants anyone and everyone to use their stuff and ST seems to actively hate developers and only want to work with companies buying tens of thousands of units. Like, ST cripples their USB programming tool to only accept 'genuine' ST parts. It's frankly disrespectful.

replies(1): >>44373169 #
6. mrheosuper ◴[] No.44373138{3}[source]
i did not use Nordic-Zephyr, but i have run Zephyr on ESP32/STM32.

It's true that the learning curve is very step, but their idea is reasonable.

The execution is ... not that good at this moment imo. It's nearly impossible to debug device tree "macro hell", the preprocessor is not designed to debug that, and they abuse the hell out of it.

Also i'm wondering why you dont want "RTOS", in Zephyr setup, your entry point is still old boring "main" loop.

7. mrheosuper ◴[] No.44373169{3}[source]
i dont like espressif build system.

like "component" directory in cmake, or just call our "cmake function" to include this source files. Or modify this variable to add your custom dir.

Why they can't just stick with vanilla cmake ?

That's the reason i run Zephyr on esp32, no cmake nonsense from espressif.

replies(1): >>44379715 #
8. mystified5016 ◴[] No.44379715{4}[source]
Yeah, it's pretty weird.

But for the most part, I find it pretty easy to ignore and use a more vanilla style of cmake. It all works fine without the component stuff