CircuitBlocks writes MicroPython and covers every programmable device we make. If you want to work at firmware level, C++ is available too: through the Arduino IDE on our older kits, and Espressif's ESP-IDF on the newer ones.
CircuitBlocks: MicroPython, with or without blocks
CircuitBlocks is our block-based editor. You drag blocks together and it generates MicroPython as you go, so the code behind each block is there to read. If you would rather type than drag, Code mode lets you write that MicroPython by hand.
It supports all our current and upcoming programmable devices, and it works the same way on every one of them: it writes MicroPython, whatever firmware the device shipped with. Your program runs from the device's memory rather than being written to it permanently, so it clears when the device is reset — see Why doesn’t the program I wrote in CircuitBlocks stay on the device after a reset? for what that means in practice.
Arduino IDE: C++
Supported devices: Ringo, Spencer, Jay-D, Wheelson, ByteBoi, Synthia, Chatter, Chatter 2.0, CircuitPet, Batmobile & Controller, Clockstar v1, Armstrong and Nibble.
ESP-IDF: open-source C++ firmware
Our newer kits ship with open-source firmware written in C++ in Espressif's ESP-IDF environment. Building from that source is the low-level route on those devices.
Supported devices: Clockstar v1 and v2, Bit, Codee, Artemis, the NASA Perseverance Mars Rover and its Mission Control controller, Butter Bot and its controller, Nevera and its controller, and MAKERphone 2.0. Clockstar v1 appears in both lists because you can program it either way.
If a device is on neither C++ list, CircuitBlocks is the way to program it. If you are not sure where to start, message us here, or email [email protected], and tell us which kit you have.