bitty controller

bitty controller lets you use your phone or tablet as a remote control for a micro:bit connected device like the Kitronic micro:bit buggy from It's not just for vehicles though. You could use it to control all sorts of electronic devices provided the micro:bit is running suitable code. bitty controller gives you a choice of user interfaces too, so you can select a style of interface which is best suited to the machine you wish to control. Available interfaces include a classic dual d-pad game controller and an analog touchpad, which gives you finer-grained control. Other interfaces should be added in future releases.

C/C++ code which can be used to create a suitable hex file is available for download.


micro:bit code should respond to Bluetooth communication from the bitty controller application as described in this section. How the micro:bit code responds to communication from bitty controller will depend on the hardware the micro:bit is connected to. Ready made hex files for use with Kitronik Buggy and MOVE mini products are available from the downloads page.

In all cases, micro:bit code must include the Bluetooth event service. This is included by default by tools like MakeCode. Event codes and values used by the D-pad and touchpad controller UIs are as follows:

Dual D-Pad Controller

Event CodeNameValueNameComment
1104MES_DPAD_CONTROLLER_ID5MES_DPAD_BUTTON_C_DOWNleft hand pad, left button down
1104MES_DPAD_CONTROLLER_ID6MES_DPAD_BUTTON_C_UPleft hand pad, left button up
1104MES_DPAD_CONTROLLER_ID7MES_DPAD_BUTTON_D_DOWNleft hand pad, right button down
1104MES_DPAD_CONTROLLER_ID8MES_DPAD_BUTTON_D_UPleft hand pad, right button up
1104MES_DPAD_CONTROLLER_ID9MES_DPAD_BUTTON_1_DOWNright hand pad, top button down
1104MES_DPAD_CONTROLLER_ID10MES_DPAD_BUTTON_1_UPright hand pad, top button up
1104MES_DPAD_CONTROLLER_ID11MES_DPAD_BUTTON_2_DOWNright hand pad, bottom button down
1104MES_DPAD_CONTROLLER_ID12MES_DPAD_BUTTON_2_UPright hand pad, bottom button up

Touchpad Controller

Event CodeNameValueNameComment
9011TOUCHPAD_MOTIONCoded direction and magnitudeN/Avalue[0]
-ve=back +ve=forwards range:0-10.
0=no movement forwards or backwards.
1 to 10=forward speed (1=slowest, 10=fastest)
-1 to -10 backwards
-ve=left +ve=right
0-2=no movement left or right (deliberately less sensitive than fwd/bwd control)
+/- 3-8 gradually increasing turn
+/- 9-10 sharp turn
9012TOUCHPAD_CONTROLvalue[0]=0 value[1]=1TOUCHEDTouchpad controller ball was pressed in central position
9012TOUCHPAD_CONTROLvalue[0]=0 value[1]=0RELEASEDTouchpad controller ball was released

bitty controller downloads

Get the app for Android here

Get the app for iOS here

C/C++ micro:bit source code

Hex files

Follow the micro:bit tutorial for bitty controller