I started the project because I found that block-based programming environment such as Lego Mindstorm are a little too simple for older kids (8 - 12 year old), yet the long compile-run cycle of Arduino is not suitable for tinkering and quick prototyping. Something that sits in the middle is needed.
On the hardware side, one of the first obstacles for a child trying to break into microcontroller programming is hooking up the desired circuitry on a breadboard. Anything beyond the the introductory "Hello World" LED example requires a ton of wiring. If servos or motors are involved, a separate power rail is required, which makes things even more complicated.
RBX uses various JST connectors to connect to the microcontroller (which is based on the ESP32 dev board). These are called "ports", which maps to the microcontroller pins. The ports come in 2, 3 and 4-pin variety, and each port has a unique identifier.
In this way, hooking up components becomes a plug-and-play affair. Since the connectors need to be matching and oriented correctly, this makes it less likely for components to be hooked up the wrong way.
The entire project can be found on Github. It uses FreeCAD for designing the 3D housing, KiCAD for designing the microcontroller PCBs, and Platformio for coding the firmware.
Project website: https://rbx.randseq.org/
GitHub repository: https://github.com/victor-chew/rbx