Supported robots
MicroCode supports the following robots:
- DFRobot Maqueen
- DFRobot Maqueen Plus
- Elecfreaks Cutebot
- Elecfreaks Cutebot PRO
- Forward Educations Smart Vehicle Kit
- InkSmith K8
- KeyStudio KS0426 Mini Smart Robot
- KittenBot MiniLFR
- KittenBot Robotbit
- KittenBot Nanobit
- Yahboom Tiny:bit
Please file a GitHub issue if your robot is not listed. See how to contribute for more information.
DFRobot Maqueen V2+
DFRobot Maqueen Plus V2
Elecfreaks Cutebot
Elecfreaks Cutebot PRO
Forward Education Smart Vehicle Kit
This car is made with Jacdac modules, so only works with micro:bit V2:
InkSmith K8
KeyStudio KS0426 Mini Smart Robot
KittenBot MiniLFR
KittenBot Robotbit
KittenBot Nanobit
Yahboom Tiny:bit
Contributing
The source of the robot firmware are at https://github.com/microsoft/microcode/tree/main/robot. We accept pull request to add new robots.
Hardware requirements
The firmware is designed for popular rover robots found in the micro:bit ecosystem (and more can be added):
- 2 motors that can be forward, backward, left, right turns. Precise detection of distance is not needed.
- 2 or more line sensors
- a distance sensor, typically an ultrasonic sensor
The following features are found often but are optional:
- RGB LEDs
- Buzzer
- Programmable LED strip
How to prepare a pull request
To add a new robot to the list, prepare a pull request in microsoft/microcode with:
- a new class extending
Robot
and configuring the hardware (see other robots) - a global field instance instantiating the robot (see other robots)
- a URL in the jsdocs of the class pointing to the robot homepage
- add
main{company}{productname}.ts
file that starts the robot - add
pxt-{company}{productname}.json
file that overrides the test files to loadmain{company}{productname}.ts
- add call to
mkc pxt-{company}{productname}.json
in.github/workflows/makecode.yml
- add image under
docs/static/images
- add section in
docs/robot-supported.md
with your robot picture, and Home URL.
Make sure to test and tune the configuration options in the robot class for your particular chassis/motor/line detectors. You may want to tweak some of the constants in the robot class to optimize the behavior of the robot.