3 ms·
Would be interesting to see how to use this with FreeRTOS. We're using Nim at work for our firmware on top of the ESP32-S3, which has been pretty lovely, but ev
by girvo 4y ago
Would be interesting to see how to use this with FreeRTOS. We're using Nim at work for our firmware on top of the ESP32-S3, which has been pretty lovely, but even then there are some challenges with matching how FreeRTOS wants us to work vs how doing it in Nim should be done.
The biggest challenge in embedded programming languages is this tendency for languages to "rebuild the world" rather than work with what we already have, and thats just a non-starter for most of us as the amount of IDFs, HALs, drivers and libraries out there are too numerous to throw away.
But the flip side of that, is they are typically all very C-focused, and so even in a language with really nice binding of C functions (Nim, Blech too from the looks of it), you end up having to contort your Nice Language code into a C simulation most of the time, which really sucks. And don't get me started on C++ libraries/drivers...
I wish I knew what the answer was to this. Nim gets pretty close in my experience, but even it has rough edges for this stuff. Dunno, its a hard problem -- Blech's binding syntax looks decent and the rest of it's features look fantastic, so I'd love to be able to reach for it, but C/C++'s continued dominance and body of work makes my head spin when I think about the task all these languages have ahead of them if they are to get real traction in industry.
- weitzj 4y agoAre by chance your nim changes an how you use it with esp32 somewhere publically available? I think I read a thread where you chatted with elritch (the nesper maintainer), to upstream your changes, but I am not so sure
- girvo 4y agoYep it’s already in develop on his repository :) Add -d:esp32s3 to your nim.cfg or compile time flags and it’ll swap out the GPIO and IO mux definitions for the S3’s I have a PlatformIO plugin to make getting up and running with ESP-IDF easier that I’ll be releasing once our new boards arrive and pass assembly and QA next week too, should find it at VenturiTechnology on GitHub
- syncurrent 4y agoThis is a small project using Blech on an ESP-32 using PlatformIO: https://github.com/frameworklabs/ranger https://github.com/frameworklabs/ranger It doesn’t use Blechs newer module system though.