This Page will be used to post notes on the Embedded Hardware and Software I use in my projects. There are many options, and you really have to consider your application and your development tools and skills to pick a platform. I initially worked with Arduino boards. These are still great for projects that need to flip a few Control bits, but I have recently been looking for something a bit more powerful, without going to full “micro PCs” like the Raspberry Pi. Nothing wrong with that platform (which I have used only slightly), but I am still looking to keep power consumption down, and do not need video for these projects. As I add new things, I will do that at the TOP of the page, and push down the older entries.
NodeMCU Embedded CPU Module
A platform that recently came to my attention is the NodeMCU. This board uses the ESP-8266 system-on-chip (SOC) module and includes on-board WiFi. It has many standard interfaces and includes a decent number of I/O pins. I have spoken to some other Hams who have found this platform to be very useful for equipment control and antenna switching applications.
Programming the NodeMCU can easily be done using the standard Arduino GUI. This is a great way for me to transition to this device, as I have used that GUI for several years now. In initial tests, I have found that the Arduino GUI works fine for developing and downloading programs to the NodeMCU. It also interfaces with the Serial Monitor of the GUI, for testing and troubleshooting.
One challenge with the NodeMCU platform, is reflashing of the onboard firmware. It is easy to develop and download code from the Arduino GUI, but that does not seem to erase all resident default functionality. As a result, there remains a WiFi Access Point that is active on the NodeMCU when I run my programs. As this is not something I want, I will have to work on this.
Arduino for Ham Radio Projects
I have been doing some development using Arduino micro controller boards. These are basic micro controllers, best used where you need to control I/O lines. Most Arduinos have many digital I/O lines and some have analog inputs as well. There is a variety of processor board sizes and speeds, as well as many peripheral boards (“Shields”) and devices.
The Arduino Integrated Development Environment (IDE) Software can be found at Arduino.cc and can be downloaded for use with WINDOWS, MAC, or LINUX. My experience so far is that the WINDOWS version seems to be updated more frequently, but I have used both WINDOWS and LINUX for Arduino development. The IDE is very easy to use and the programming language will allow anyone with even basic Programming knowledge to create custom applications.
Arduino is a great platform for any kind of interfacing that uses Digital and/or Analog I/O pins. Some of the basic Boards include 14 digital I/O pins. I have been using primarily three boards for my development:
- Arduino UNO – mid-sized board, inexpensive, and many Digital I/O lines but limited memory (only 32 KBytes of Flash memory). Provides connection for a USB cable for Programming and Power
- Arduino MEGA 2560 – A larger Board with much more memory (256K Bytes of Flash in the R3 version that I have been using. Suitable host for many Arduino add-on Shields. Provides connection for a USB cable for Programming and Power
- Arduino Pro Mini – Very small and inexpensive Board, suitable for use inside a small Embedded device or placing on a PC Board with other components. This is at the heart of my DXDUSB adapter used with the DX Doubler SO2R Controller. This board does not acommodate a USB cable, but requires connection of a 6-pin Header for Programming and Power.
If you are just trying to get started with Arduino, pickup one of the larger boards that includes the USB connector. The USB will also provide Power to the board and allow you to upload your code. Something like the Arduino UNO board is perfect for developing and testing code.
Programming with the Arduino can be very simple. The IDE that is offered as a Download from the Arduino.cc Web Site supports a higher-level language that provides many simple-to-use functions. The Arduino platform also can be programmed using the “C” programming language, in case you know that language and want access to more low-level (but more complicated) functions. The Arduino Web Site provides full Documentation for Arduino programming, and Links to many other Libraries that can be Imported and used easily.
Arduino Pro Mini Power Issues (this is old, but will be retained for now, as I think it is still relevant).
I have been using several different versions of the Pro Mini board. While they are all usable with the Arduino software environment, they have differing pinouts and I have found some differences in the power circuitry. The “official” Pro Mini specs state that the on-board voltage regulator can accept 12 volts DC. The problem with this is that many Hams use power supplies in their stations for their Rigs that are set at higher than 12 VDC. The regulator component datasheet says it can take up 16 VDC on its input pin with no damage, while generating the 5 VDC needed for the boards I have been using. In some initial tests, I have destroyed some regulators when I am pretty sure I did not exceed 16 VDC on the input. Doing a little Web research shows that some others are also reporting issues with the regulators on the Pro Mini boards. This might be a reason to use the more expensive versions, such as the Sparkfun.com version instead of the $ 4.00 import that can currently be found on the Web.
Powering the Arduino from 5-volts DC
I have continued to use Arduino Pro Mini boards with good results. I have moved to providing power to the Pro Mini board directly at 5volts DC, bypassing that troublesome voltage regulator. 5 volts can be provided from a USB cable, using only the red/black wires. That allows the power connection to use any USB port capable of providing charging power. I am still considering using the 12 volt input for a mobile environment. But since USB connections are now available in most vehicles, I may not even use it then. The 5 volt supply has shown no issues. I have since added Power conditioning circuitry for use of this Board with Mobile or Shack power supplies that can run up to 15 volts DC.