Skip to main content

Coding the Mars Rover, and what happens to its remote control when you do

What happens to the Rover's stock remote-control firmware when you code it in CircuitBlocks, and how to restore it.

A
Written by Albert Gajsak

You can code the Mars Rover in CircuitBlocks, and while your own code is on it the remote control stops working. It is fully reversible — putting the original firmware back returns the Rover to normal.

What happens when you connect. To run your own code on any of our devices, CircuitBlocks erases the device's flash and writes a MicroPython image over the firmware that came on it. On the Rover, that stock firmware is what drives it from the controller and feeds the camera image to the Mission Control module.

How to get the remote control back. Connect the Rover to your computer, open code.circuitmess.com and use Restore firmware. That writes the factory firmware back and the controller behaves as it did before. Nothing is damaged by the swap.

Your CircuitBlocks program is not stored on the Rover. It runs from memory and clears when the Rover is reset or switched off. Your sketch itself is saved in your CircuitBlocks account, so nothing is lost — see Why doesn’t the program I wrote in CircuitBlocks stay on the device after a reset?

If you want to work in C++. The Rover's own firmware, and Mission Control's, are open-source and built with Espressif's ESP-IDF framework rather than as Arduino sketches, so the Arduino IDE is not the route for this kit. Build from the source instead. See What programming languages can I use with CircuitMess kits?

If the Rover does not appear in CircuitBlocks when you plug it in, or a restore will not finish, message us here, or email [email protected], and tell us which browser you are using and how far the restore gets.

Did this answer your question?