Ringo Reflash factory firmware

I just fixed mine with some help from one of the engineers over email. I plan on making a write up soon on what I did. So stand by.



  1. Download and install the esptool.py flash tool
pip install esptool
  1. Download the bootloader files here: arduino-esp32 version 1.0.4

  2. Unzip the file esp32-1.0.4.zip

    • You will need the following files:
      • tools/sdk/bin/bootloader_dio_80m.bin
      • tools/partitions/boot_app0.bin
  3. Download the latest Ringo firmware: Ringo Latest Release

  4. Download the partition.bin file here: partitions.zip (301 Bytes)

  5. Copy .bin files into the same location

 Example: fw (folder)
            - boot_app0.bin (file)
            - bootloader_dio_80m.bin (file)
            - firmware.bin (file)
            - partitions.bin (file)
  1. Run the following command to flash the firmware:

NOTE: Your port number and name will vary based on OS and your device

esptool.py --chip esp32 --port COM5 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 boot_app0.bin 0x1000 bootloader_dio_80m.bin 0x10000 firmware.bin 0x8000 partitions.bin 

Memory Layout

File Address
boot_app0.bin 0xe000
bootloader_dio_80m.bin 0x1000
firmware.bin 0x10000
partitions.bin 0x8000

Glennjamin, you are the man!

We will definitely post this little tutorial of yours for the people to use.
Also, today we will finally release CircuitBlocks where you will be able to do that with just a couple of clicks, but you made the advanced process easy for the most curious users.

We appreciate it a lot!

Guys, quick update.

We have added the default firmware option to Arduino IDE!

Here is the official board installation guide Ringo on arduino: https://github.com/CircuitMess/CircuitMess-Ringo/blob/boardArduino/Installation.md.

At the bottom of the tutorial there is an explanation on what to do and how to revert your phone to the default software. Just make sure to update Ringo board file in Arduino ‘Board manager’. You should also have this line -> https://raw.githubusercontent.com/CircuitMess/MAKERphone/boardArduino/package_CircuitMess_Ringo_index.json
in Arduino IDE -> File -> Preferences -> Additional Boards Manager URLs.

It should take less than 30 seconds to upload, just make sure to connect your Ringo and choose the correct port on Tools -> Port.



The new update with the Ringo Bootloader Firmware will not work.

The package.txt file in the Ringo-1.0.1.zip file is missing the following parameters:


Without them using the Arduino IDE will not work.

I made the changes to the package.txt located in %localappdata%\Arduino15\packages\cm\hardware\esp32\1.0.1 and now it works fine.


Could you be a bit more specific for the thick.

Are you using Python to run these commands?

I have downloaded all the .bin files and put them in a folder. Where do I out this folder, on the Ringo SD Card?

So sorry. Thanks in advance.


1 Like

Continuing the discussion from Ringo Reflash factory firmware:

The Flash tool esptool.py is a python script, that can be installed using the pip package manager for python. Or can be downloaded from https://github.com/espressif/esptool

Although it would probably be easier to use the Arduino IDE following the tutorial here: https://github.com/CircuitMess/CircuitMess-Ringo/blob/boardArduino/Installation.md

The have since updated it so it works correctly.

1 Like

So the problem with all this is that those “.bin” files (at least firmware.bin) do not reflect the latest source. The firmware.bin file is umpteen days old on github, yet the source has been modified much more recently. Please keep the .bin files in sync with the source, or tell us how to build them ourselves from the sources.

Hey Frank,

There are other things being done on GitHub in those libraries besides just the firmware. We are working hard on preparing the next firmware update and it is not fully ready yet.

We would definitely NOT recommend that you do something by yourself.
As soon as the new update is ready it will be pushed on Arduino and the firmware.bin will be updated.

There will also always be a new notification in several places so you’re surely not going to miss it.


I too would like some instruction on how you guys are building your code base. Mainly because I would like to contribute to it. I have been almost successful, but there are a lot of missing dependencies and I don’t want to spent a lot of time finding them if it has already been done.

I am surprised you don’t have a makefile or other build processor in place.

If there is a process you follow and are willing to share. I would love to see it.

Thanks for your support.

1 Like

Hey Glenn,

Thank you very much for your enthusiasm and support!

The update will come out as soon as possible since several of our people are working on making everything a bit better.

We will launch our creations site soon so there will be plenty of work for everyone who wants to help out with the project!

Thanks once again,

I do not understand. Ringo is “open source”. I would like to be able to hack the firmware. Where are the instructions for doing a full build? One example - I’m trying to debug the “sim not found” problem. The only way I can retry this now is to go thru the entire setup routine, hitting all the keys, etc. I would like to be able to split the SIM card part of that out and have it be a menu option. I’ve probably been a systems programmer longer than you guys have been alive (worked on operating systems etc at IBM). What do I need to build the firmware?

One of the great “tricks” with newer versions of the esptool is you don’t have to supply the COM# port name, it can auto detect ESP devices and will automatically select the device if there is only one.

Guys, FYI this discussion seems to have moved over to this other topic: How to build the firmware.bin file where the discussion leans toward flashing firmware from source (default as released or modified). It’s a work in progress but I’ve just about done it (with some caveats).


Now that we have some info on the build process, I can try to debug and fix my callerID issue. I am considering trying to use the GSM library to handle parsing the modem strings. I will post my results when I get the chance to make the changes.

1 Like


This part of the discussion has been moved.
So please from now on only post questions that have to do with reflashing the firmware.

Glen, tell us about your progress!


How does one find this “guide online” ???

github circuitmess installation guide

Thanks Glenn. I knew I had seen that somewhere quite a while ago, but I couldn’t remember where and it’s certainly well hidden.