Custom firmware for CyberPi?


#1

I’d like to modify/extend/replace the firmware of the CyberPi to augment its capabilities.
Is it possible to do so and/or is there any documentation? I’m an experienced programmer so I don’t need tutorials, any technical doc is good enough.

Is the stock firmware open source?

I have found this, which if I understand correctly makes it possible to connect the CyberPi to the Arduino IDE:

If I decide to try it, can I go back to stock firmware later?


#2

@antocuni
I am not sure if you can reset to the stock firmware after uploading your own. You can connect the CyberPi to mBlock (https://ide.mblock.cc or the PC version) and upload or update the factory firmware, but I’m not sure if this functionality would still work with custom firmware.
I can probably find the factory firmware files for you, but I’m not sure if it would be entirely legal for me to give them to you (especially publicly).

There isn’t any documentation that I have found for things like modifying the firmware, since the CyberPi was designed mostly for mBlock coding (very basic) with some MicroPython support.


#3

In the meantime I managed to get the files for the firmware by looking at the network tab in the chrome dev tools: this is what I got so far:

$ md5sum *
ecc04a2902549413f484e120380e44e6  5df42080_CyberPi_StandardShied_APP_V2701007_20210113.bin
07f0725cbbf652f28d86909933b1d527  a1e1092a_at32_CyberPi_StarterShied_APP_V2701010_20220929.bin
daaabcc5a1af8eb5cdd6d72f3e0a142f  c6afad4c_CyberPi_StarterShied_APP_V2701006_20210817.bin
daaabcc5a1af8eb5cdd6d72f3e0a142f  ca0b9c29_CyberPi_StarterShied_APP_V2701006_20210817.bin
b994ad9c73a5ab1b18009b192bd7ce04  e12606eb_cyberpi_firmware_44_01_011-ht2.bin

However, it’s not clear to me how I can flash them manually, in case I need it. For other ESP32 boards I used openocd to flash custom firmware, I wonder whether this works also for CyberPi?

There isn’t any documentation that I have found for things like modifying the firmware, since the CyberPi was designed mostly for mBlock coding (very basic) with some MicroPython support.

yes I understand that, but I’d like to experiment with adding more micropython-based functionalities: for example, I’d like the ability of sending/playing wav files from the network, use a different TTS service, possibly integrate it with openai API, etc.


#4

Hey @antocuni !

I’m currently writing a program in Arduino C on Cyberpi.
I was able to revert back to default firmware with firmware update inside mblock.

I’m using the Board esp32/ESP 32 Dev Module version 2.0.17
1.x and 3.x (latest) versions had compilation issues

It’s my first time on Arduino and I would say the documentation is very scarce.

Hope it helps


#5

thank you very much, knowing that I can revert to stock firmware without problems is very useful.
I’ll try and see how far I can go