Posts

Red Comet ESP32

It has been a while since we have written anything. The past 1 year and half would go on into the history book as a big reminder to human on how fragile we can be despite the advancement we have in technology. We spent a big portion of our time indoor working on new designs, tweaking old designs and taking in custom works during this tough time. This is probably the only way we could keep ourselves sane. We have some new boards available and some had to be shelved at least for now due to the semiconductor components shortage. So, let’s dive in on the new puppies!

Red Comet ESP32

Red Comet ESP32

We have to admit that we have never touch an ESP32 or the earlier ESP8266 until about half a year ago. A long time customer of ours wanted a custom design based on the ESP32. But, we can’t wrap our head around the idea that the ESP32 actually get reset when it wake up from deep sleep. This mean, the processor will actually reboot and start operating from the beginning of the code. This was the sole reason we didn’t explore more on the ESP32/ESP8266. But, granted that this a request from our loyal customer, we took the challenge swallowed our ego and went on to complete the design. The design was a success and customer deployed them on the field with great result. Then, we thought why not an ultra low ESP32 power board for the masses? But, there’s probably thousands or at least hundreds of ESP32 design board out there. We knew what features we exactly wanted on this new ESP32 based board and the Red Comet ESP32 is the humble result.

Red Comet ESP32

Over the years of selling ultra low power boards, we came across many customers that wanted support for more variety of battery chemistry. Not every single application should or could use Li-Ion or Li-Polymer batteries. For example, If you are somehow living along the Earth’s equator under the hot sun 365 days in a year, a LiFePO4 batteries might be a better solution due to it’s better chemical and thermal stability. There are also other reason like capacity, availability and cost that comes into the picture especially if use a lot of them. Here are some of the highlights of the Red Comet ESP32:

  • Supports various battery type, cell combination and chemistry such:
    • Rechargeable: 3xAA NiMH, LiFeFO4, Li-Ion/Pol
    • Non-rechargeable: 3xAA or 4xAA (alkaline, lithium), lithium-thionyl chloride (Li-SOCl2), lithium-manganese dioxide (Li-MnO2)
  • Ultra low power: down to 13.0 μA in sleep mode with input at 3.6V (rechargeable battery version) and minimum 10.0 μA in sleep mode with input at 3.6V (non-rechargeable battery version)
  • Robust and reversible USB type C connector
  • Fits on a single breadboard for rapid prototyping
  • Optimized for solar panel charging by employing a battery charger mimicking MPPT

There are some trade-off that we had to take on the design like using the cheaper WCH’s CH340C USB-serial IC instead of Silicon Labs’ CP2102N. This resulted in a slower maximum baud rate at 115200 bps but that allows us to keep the board price lower. We also have to drop support for NiMHx2 battery configuration due to the high peak current consumption of the ESP32.

ATMega4808 Based Mini Ultra

For those that have been following us over the years will know that one of our earliest design was the Mini Ultra 8 MHz. The Mini Ultra 8 MHz was based on the ATMega328P which we all love for it’s simplicity but yet very capable. But, one of the ATMega328P Achilles heel was it’s smaller RAM size and limited 32 kB of program flash. When the Arduino team first uses the ATMega4809 from the new megaAVR-0 microcontroller series on the Arduino Uno WiFi Rev2 board, we thought that this could be a good candidate to replace the ATMega328P although it comes with a lot more pins that we need (48-pin vs 32-pin). That would not fit into the Mini Ultra 8 MHz existing board form factor. But, it wasn’t long before Hans (aka MCUdude) came up with the MegaCoreX Arduino board package to support the entire megaAVR-0 microcontroller line-up. This adds a total of 8 (with different pin count variant) microcontroller from the megaAVR-0 series to be used in Arduino development environment. From that list, we felt that the ATMega4808 is the best candidate to replace the aging ATmega328P. It has 16 kB more program flash, 4 kB more RAM, 2 extra hardware UART, real time counter (RTC) and can run without any external crystal (in fact it can’t drive any external high frequency crystal). At the same time, we wanted to give the flexibility of powering this new Mini Ultra just like what we did with the Red Comet ESP32 and hence equipping the board with an ultra low power buck-boost converter. This would allow the use of power source lower than 3.3 V (down to 1.8 V) to power the board which includes more common AA alkaline batteries configured in 2 or 3 series combination or the LiFePO4. The board comes pre-loaded with an Optiboot bootloader which allows you to load code from the Arduino IDE by using your regular USB-serial adapter. And as usual, the board is ultra low power and only consume 4 μA in sleep mode.

UPDI-USB-Serial Adapter

The new megaAVR-0 series departs from the classic AVRISP programming interface by replacing them with a simple 1-wire bidirectional programming interface called the Unified Program and Debug Interface (UPDI). This means your regular AVRISP won’t be able to program these newer megaAVR-0 series microcontroller. Microchip/Atmel’s ICE programmer is UPDI capable but it is not that affordable. ElTangas did an awesome job by writing a software JTAG to UPDI interface that was originally targeting using older and existing JTAG interface like the JTAGICE from Atmel to mimic this new UPDI interface. The code written by him can be run on a regular ATMega328P (or any of it’s variation with some modifications) and from that you will get an UPDI programmer that can also be accessed from the Arduino IDE. We took the classic ATMega328P overclocked to 16 MHz while running it at 3.3 V to run the UPDI programmer code and coupled it with a dual port USB-serial IC (Silicon Labs’ CP2105). Having a dual port USB-serial configuration would allow one of the port dedicated as UPDI programmer and the other as your regular USB-serial interface. If you already have a bootloader installed on any megaAVR-0 microcontroller like our ATMega4808 based Mini Ultra, you can use the USB-serial port to upload code from the Arduino IDE. But if you want to load the code without the use of any bootloader (example: for reason like saving program flash memory) , then the UPDI programmer can be used.

There you go, a mini update of our new products. We hope you find them useful for your projects and applications.

Take care and stay safe!

Portfolio Items