Experimental changes to firmware

So now that we know how to build the firmware from source, I thought I’d try a few firmware modifications. My first goal was simply to:

  • Change the time on the lock screen to 12-hour format. Indicate PM with a magenta shadow.
  • Change the date on the lock screen to MM/DD/YYYY format.
  • Try to improve the battery charge level indication on the lock screen by tweaking the voltage thresholds.

These 3 modifications only required changes to the source file MAKERphone.cpp. Additionally I modified MAKERphone.h to identify this experimental firmware as version 99.0.1, to distinguish it from the latest release 1.0.1 on which it is based. All changes are annotated with my initials FCP so that they can easily be located in the source code.

Note that I did not attempt to change the time and date formats throughout the firmware; so on other screens, times will still be in 24-hour format, and dates will still be DD/MM/YYYY. I anticipate that CircuitMess will eventually incorporate more complete and flexible updates to address these issues into future firmware releases.

The modified source code and resulting firmware.bin can be found in this zip file: MakerPhone Experimental Firmware Mod 99.0.1.zip


Great job Frank, keep it going!

Although, we don’t think of these things as an issue, since large majority of the world is using both the 24-hour format and the DD/MM/YYYY format!

We are planning to implement the other formats as well in the future.

Did you notice any significant difference with the battery?


Best to stick with semver.org and use 1.0.1-fp-1 as your version.

We’ll that would be dandy but the Makerphone firmware version isn’t currently that flexible. It must (as currently designed) be a decimal number, e.g.: 9901 = “99.0.1”. Since it’s compared numerically, not so easy to change to an arbitrary string. Using 99 inhibits overwriting with a new version from the server.

I fully charged the battery and then woke it up occasionally over a 2 day period to see what the charge indicator showed. With this modest modification to the voltage thresholds, it now shows a slow progression across full/high/med/low over 48 hours (hasn’t reached the empty icon yet), whereas before it showed full most of the time and only a lower level very shortly before it turned off. So I’d cautiously say it is an improvement (though it still needs testing with a 4G module, and may not work well after the battery has endured many more charge/discharge cycles.)

Also, with the display backlight at minimum brightness, the readings are a tick higher, but still registering at the medium level (vs low) after 48 hours.


When you get some proper results we might implement it in the firmware. Don’t want to jump at something before it has been tested and everything.

Thanks for doing all this! :slight_smile: