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 advantage of a common UI between these 2 development environments. This makes the learning curve less steep. Budding programmers looking for employment in industry will get a better reception mentioning they are familiar with Eclipse than they would with the Arduino IDE.

Another alternative to Arduino is PlatformIO. It is actually available as a plugin to both the VS-Code and Eclipse IDEs. It also has an Arduino plugin so you could combine both worlds.

Another IDE-like piece of software that I recently tried with little success so far is Android Studio. A steep learning curve for myself perhaps due to my bigotry regarding cell phones. I hate them with the burning passion of 10,000 super-novae. Could be a case of sour grapes – my handicaps prevent me from using them as intended – and it seems the whole world assumes that we are born with one in our hand.

But, being so ubiquitous, the cellphone has to be considered as one of the most popular of remote control devices. Sticking with RISC-V MCUs, as I have been, the ESPs can act as web servers and so may be controlled from a browser on a desktop or a phone. The WCH offerings, on the other hand, only support BLE for connectivity, which is the reason I even considered Android. I hope one day to be able to offer a project featuring Android BLE remote control.

For an even further twist on this theme I want to mention a “hardware IDE” I use to produce PCBs for my products. Although there are many available, I have chosen EasyEDA (did I mention it’s free). I found it to be very intuitive and especially like it’s integration with LCSC which is China’s equivalent to Digi-Key. No need to create your own parts libraries. It is also closely linked to JLCPCB which is one of the best PCB fabricators for prototyping work - what most of us do. With 1 click you can submit your complete board package and get an instant quote and go on to order. They offer extremely fast turn around and very attractive pricing. You get coupons at least monthly to make the prices even better, and a great coupon offer for first time users. I find their SMT assembly service indispensable – I can’t solder – they can do through hole as well. Custom 3D printing is also offered.

I hope this ?rant? may inspire some eager hobbyists to move up to a higher level for their next projects. The day we stop learning is the day we STOP!

Many thanks for your attention.

CanHobby