How to build the firmware.bin file

I have just compiled ( error , warning free ) firmware.bin :slight_smile:
The file size is 1.46 exactly the same as the firmware in the [CircuitMess-Ringo-firmware]
Thank you for your time and for your help.

Now i am waiting info about the module :yum:

Unfortunately, I think you’re going to be a little disappointed about that one unless Robert comes up with some miracle that was not possible a year ago. Stay tuned, I’m sure he’ll get back to you.

I have noticed a strange thing.

I have changed the word “Hold” from the " Hold “#” to unlock " to capital letters so i can test the compiling and upload feature of the vscode.

The phone is working perfect. . But the problem is when i have tried to run a game after the LOADING NOW prompt the phone resets and halt at the spash screen.
with the Loading… message.

I must re-flash the phone to work again. except the game loading, the phone is working ok and i can access sd card. for example load pictures etc. i have problem only for the apps ( games ). Is something that i must change during the compiling ?

Also i have noticed that after the re-flash the phone does not start from the setup wizard but from sim pin security prompt.

To understand. What is the procedure that phone do when i select a game?

First is loading it.
Then it exits the phone app and reboots to run the game ?

Thank you.

It looks like you might be experiencing the same teething issues I ran into when I first started writing my first Ringo app.

The Ringo uses a two partition setup: one is the running partition (call it A for this example) and the other is non-running (B for this example). When Ringo downloads a firmware update or, indeed, loads an app or game from the SD card, it flashes the .bin to the non-running B partition, changes the EEPROM flags to specify which partition (B) is used on next boot, then initiates a reboot to load up the partition B you just flashed. The formerly running partition A still houses the Ringo Loader when you’ve loaded up a game or app into B. You call out to mp.loader() manually or via homePopup() screen to return to Ringo Loader, which effectively just switches the EEPROM flags to specify the A partition as next boot and reboots (after properly shutting down the SIM module). You CANNOT flash the running partition, hence the two identically sized partitions. It’s actually a really clever use of the two-partition setup the way Ringo launches apps from the SD card and then returns to the Ringo launcher

Here’s some minimum things you should be including in your apps to ensure they operate properly with the Ringo:

#include <MAKERphone.h>
MAKERphone mp;

void setup() {
  mp.begin(1);  // This inits all the necessary Ringo stuff
  mp.homePopupEnable(1);   // Enable homePopup(), the screen that comes up when 
                           // you press BTN_HOME, so you can change settings and 
                           // return to Ringo loader with ease.
  mp.inCall = 0;  // This will enable the device/display sleep timeout
                  // Setting to 1 disables sleep timeout
1 Like

Hi Petros,
Do not use the upload feature of vscode. I was never able to get it to work properly and I don’t think it understands the Ringo’s partitioning. Instead follow steps 8 through 10 I outlined above to use vscode to build firmware.bin, then copy that file to another directory that contains the standard Ringo boot_app0.bin, bootloader_dio_80m.bin, and partitions.bin files and to do the actual flash by running yourself. I think that should solve all your problems.

See Ringo Reflash factory firmware for more detailed instructions on doing the manual re-flash.

1 Like

Thank you for your answer.

I have made the flash folder with all the files that i need as you told me.

I have installed the python ide but i can’t install the

I have read the Ringo Reflash factory firmware but i am still confused how to install the

Can you help me with that ?

From a DOS box run as administrator,
pip install esptool

And if you still can’t find it on your computer, here’s a copy: (43.5 KB)

All ok i have followed the guide from

The phone is working perfect now . Something was messed up with the vscode upload command

THANK YOU for one more time. :grin:

Yes, it doesn’t have the other 3 files correct for the Ringo, so the Ringo flash partitioning scheme (where the main firmware is kept in one partition and apps loaded from the menu are put in a separate partition) is not preserved. I tried it but the firmware had strange behavior, so went with the esptool method.

So…can we get one comprehensive reply - “a reply to end all replies” - here that gives the full instruction list, start to finish, for building and flashing custom firmware? Bouncing between two threads and sifting through all these posts is giving me a headache, and I haven’t even gotten to the actual testing a build part yet. :face_with_head_bandage: Hell, it might be best to start an entirely new definitive tutorial thread and merely link back to this one for expanded discussion purposes.

Just be thoughtful in writing it, give it a nice big header line to start the reply so it stands out, and include caveats where they occur so it doesn’t need re-written again any time soon. :slight_smile:

I’m guessing between @frankprindle and @Petros, one of you has this down to a precise science by now. haha

(Yeah, I’ve officially set aside WiFiTest for the time being and am shifting my focus to the firmware changes I wanna make…y’all are in trouble now! :smirk:)

Well, TWM, I think I’ll give this a try. I have a virgin Windows 10 laptop that has never seen Arduino, VS Code, or Makerphone. I’ll try to start from scratch and document my steps along the way to getting it to build a customized version the 1.0.5 firmware. Might take me a few days - let me give it a shot.

Yes me too.

I have just formatted my PC :yum: I will give a try to make a tutorial from the scratch.

You two should compare notes via PM before one of you posts it, so we don’t end up with two non-identical sets of instructions again. :stuck_out_tongue_closed_eyes:

Yes of course we will do that :yum: I have already started to write them.

We will made a instruction book. RINGO FOR DUMMIES :yum:

1 Like

After reflashing the RINGO using the flash function of the circuitsblock the RINGO does not show the caller number any more.

I have received 3 phone calls and the RINGO shows the following . Call 1
(+CLCC: 1,1,4,0,0) Call2 (Hhi1 1,1,4,0,0) , Call 3 (hi1 1,1,4,0,0)

Maybe the flash firmware of the Circuitsblock has older firmware ???

It’s entirely possible - that issue is an old one that I sent a fix for to CircuitMess (variations in the format of incoming call phone numbers). See what firmware version is being reported in the “About & update” settings screen. The latest is 1.0.5. If it’s not 1.0.5, you can use “Check for update” to bring it up to 1.0.5, then see if you have the same problem. I have not seen that problem for a while.

Yiep You are right.

its a old firmware 1.0.2 . The phone update its not working. It is say No Updates.

I will flash the new firmware with esptool. Now i know the way :yum:

Well, I don’t have the time to get quite that collabrative! What I propose is that before posting a fresh topic on this, we continue this discussion here under this topic; I will post my first draft as an attachment to this message and TWM and Petros can see what is unclear or incorrect and let me know. Likewise for any draft that Petros produces. In the end, we’ll converge on a good set of instructions, I’m sure.

I started with a Windows machine (not doing MacOS or Linux, sorry) that knew nothing about Ringo at all, and ended up with one that could build and flash a custom firmware.bin.

If you were expecting a full-blown tutorial with pictures (screenshots) and all that, or a YouTube video, I don’t plan to get that sophisticated. Someone else can take that on if they want.

Anyway, here is my first draft of the full instruction list, start to finish, that TWM asked for: Build Custom Ringo (44.4 KB)


Thanks, Frank. I’ve been a little busy this week, but should have some time tonight or this weekend to give it a try. I’ll let you know how it goes!