Viewers familiar with my videos and blogs have been asking for a little background, I suppose in the interest of finding a little commonality. So, here goes a little explanation of the madness in my methods (or methods in my madness?). It was my birthday yesterday which may be the madness behind selecting this topic today.

To begin – yours truly is basically self taught – at least as far as programming goes. When I went to school PCs didn’t exist. I did study hardware for 2 years of college. In my working career I became fascinated by the microcontrollers used in the products I was servicing. Long story short I ended up doing programming on the Motorola 6800 MPU. In assembler. My computer was also 6800 based and featured two 8 inch floppys for storage. We couldn’t afford the full 64K (not meg) of memory so I made do with 32K. After a while I could disassemble 6800 assembler code backwards in my sleep. So, I’m dating myself. This is my excuse for being a bigot in some areas. I DON’T do Windows – if it can’t be done in Linux, I don’t do it. I actually did use Windows during the previous millennium but XP/2000 was the last usable version. Gates et al have only gone downhill since.

Another bigotry is regarding my approach to MCUs and the IDEs used to program them. I like to see under the hood when I am tinkering. And to have factory tools where possible. Like many of us I got started with MCUs using the Arduino IDE. It is great for just that – getting started. Some people say it has done the world a great service in this respect. I have mixed feeling on the subject. The fact that many young people have bee exposed to programming is indeed laudable. But, it is not precisely a “factory” tool – it is designed for Arduino’s line of modules which feature MCUs from various manufacturer. While they must be commended for making the IDE adaptable to other architectures this also means double work for these companies. The Arduino is not ideal for professional use and the developers of MCUs do need to sell their products for integration into real world products. It is very kind of these firms to cater, to more or less extent, to amateur hobbyists such as ourselves. But if we have an interest in programming closer to the level of a professional engineer we should consider downloading the technical reference manuals, and using the IDEs recommended by the developers of the MCU we are using. I have found that there is a world of hidden powers to be unleashed using this approach. Also for the reasons given above the release of Arduino support packages can often be many months behind that of the OEM IDE support, especially whan it comes to on going updates.

Playing with an existing sketch and watching the effect of changing a couple of variables is great for beginners to get their tootsies wet – but it should engender a thirst for greater understanding. This is where I find the Arduino IDE to be wanting. Specifically, the boot-up code and more importantly the library source code is not readily accessible to the user. Essentially we become “copiers” instead of “makers”.

That said, here are some examples of OEM supported IDEs:

Espressif – ESP8266, ESP32 etc – the Espressif-IDE is Eclipse based. They do a great job of keeping it updated every time they release a new product or product update.

WCH – CHV003, CH582 etc – the Moun River IDE is Eclipse based. Sometimes their English documentation lags behind the Chinese.

MicroChip – ATmega328, ATmega2560 etc. The MPLAB X IDE is finally available for Linux.

ST Micro – STM32xxx ARM based MCUs – ST deserves an honourable mention for their graphical IDE STM32CubeMX. My bigotry keeps me away from ARM MCUs – I prefer RISC-V.

You may have noticed that I mention “Eclipse” – This is a generic IDE suitable for programming in several languages and designed to be adaptable to many frameworks. In the case of Moun River and Espressif-IDE we have the...

Read more »