Ringo Reflash factory firmware

I was experimenting with the arduino example apps, by following guide online and now I can’t get the original firmware to load.

What do I need top do to get my Ringo phone back to normal?

1 Like

Yeah, I’ve had a similar problem. I built the phone, hooked it up to my computer, wrote a line of code in Arduino, and now I can’t even turn it on. I’ve tried pretty much everything to bring it back to life, but nothing has worked so far. Pretty frustrating considering I killed it within half an hour of building the poor thing.

1 Like

Hey guys,

First, thank you for supporting the project, it means the world to us!

Now let’s get to the problem: Ringo’s library is actually consisted of two libraries and that is making it pretty impractical for an easy upload as both libraries need to be connected.

Everything regarding Ringo’s code can be found on our CircuitMess GitHub page here: https://github.com/CircuitMess .

Since we think that compiling this whole library (or libraries) and uploading to the phone is a bit complicated for beginners if you are advanced user we can assist you with the direct upload.

Other than that, we are planning on launching our Tutorial/Introduction platform today and it will have some of the basic tutorials on how to properly use Ringo. The number of those tutorials will increase pretty much every day and they will explain more advanced stuff.

By the end of the week (we hope in 1-2 days) we will also be launching CircuitBlocks - an Arduino based platform in which you can program a little bit easier. CB will also have one VERY important button - UPLOAD DEFAULT SOFTWARE, which will just compile and upload the default software to your phone.

So if you are feeling extremely eager and impatient, DM me (or shoot an email at robert@circuitmess.com) so I can tell you how to set everything up. Otherwise, wait a couple of days and you will be able to do it with a simple push of a button.

Sorry for the trouble, we’re really trying to make this work as good as we can while also shipping a few thousand phones.

If you have any other suggestions and questions write them here or at contact@circuitmess.com, we really care about what Makers think of our products and services.



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!