Programming microcontrollers in any language

Hi folks,
I had this idea of programming microcontrollers in any programming language for quite a while.

So I looked at other alternatives for programming microcontrollers, MicroPython (amazing work!) Mongoose OS (programming in js, lacks documentation). Biggest of all we don't have all the sensor libraries for each of the platforms, which increases the friction. So I thought why not give my idea a little try.

Adding libraries to your project can be cumbersome if you are not well versed in how everything is compiled at the end to produce your binary. Even to add small libraries I had to fiddle around with several Makefile recipe commands (don't want to go there again). I thought it would be great if we could have an extremely simple package manager that does everything for us. Without giving up the customization which some of the people might want!

Another thing that I observed is the lack of good documentation, guides, and code samples for any framework or library that you want to use in your project. You are basically on your own. Having good documentation goes a long way in terms of productivity, this is what we believe in, so we are creating descriptive and helpful docs which will help you start quickly with Singularity SDK.

We decided to build this SDK out of the pain we felt while writing programs for numerous microcontrollers. We thought there gotta be a better way. Unfortunately, there wasn't any. That is when we decided to build Singularity :slight_smile:

We have already built a prototype, though it isn't ready to ship yet. We would like to know whether Singularity is something you are interested in or not. If you like our effort, please consider signing up for the Beta Program.

visit:
https://getsingularity.xyz/

What micro-controllers are you targeting?

MicroPython won't work on an Arduino Uno or Mega.

...R

We are starting to build the SDK for the ATmega series, specifically for atmega32 and esp32 and esp8266. Right after that, we have stm32 F1 series. All python magic will be done at compile-time and not at runtime, so you can essentially write programs in python for an 8bit microcontroller.

Hattricks98:
All python magic will be done at compile-time and not at runtime,

That sounds a bit like the Python being converted to C++ and then being compiled to Atmega machine code - is that correct?

If so I'm curious to understand your focus on the Atmega32U4 (assuming that's what you mean).

...R

Yes, that is absolutely correct. Currently, the way I've implemented this is by doing a source to source compilation of Python to C and then use the target platforms toolchain to generate the hex file.

It would be interesting to see equivalent code for two or three of the Arduino IDE examples written in Python (or whatever language you propose to use).

...R