How to control your Calliope mini robot
LOFI Control for Calliope mini App is a simple gamepad interface that you connect with any Calliope mini robot to control it remotely via bluetooth from desktop or mobile device.
The app is available online as a Progressive Web App (PWA) so you do not have to install anything simply open it as a website.
Supported platforms:
- Desktop Windows 10 and MacOs – on computers supporting bluetooth 4
- Android – works in Chrome browser or you can install it as a regular App (installation instruction below)
- Chormebooks
- iOS – Finally! you can use web-bluetooth on iPhone or iPad via BLUEFY WEB BROWSER (available in the App Store), not the most elegant solution but at least it works :-)
Getting started:
- upload sample code to your Calliope mini
- got to LOFI Control for Calliope mini website
- click robot icon in upper right corner you should see your Calliope mini discovered in the system dialog
- on desktop you can control the robot with keyboard arrow keys, on touchscreen use onscreen buttons
- slider send values form 0 to 180 to the Calliope mini
If it does not work:
- be sure you have bluetooth and GPS on Android turned on
- be sure you have script on your Calliope mini that runs bluetooth UART service and the MakeCode project connection settings are set to : No Pairing Required: Anyone can connect via Bluetooth.
Calliope mini sample code
Adapting the code to your needs
The App sends data to the Calliope mini board as simple string commands.
- UP arrow – sends “up”
- DOWN arrow – sends “down”
- LEFT arrow – sends “left”
- RIGHT arrow – sends “right”
- SPEAKER button – sends “horn”
- each button on release sends “stop”
- SLIDER 1 sends slider value (0-180) preceded with letter “c” for example: c0, c100, c180
- SLIDER 2 sends slider value (0-180) preceded with letter “x” for example: x0, x100, x180
When Calliope mini receives the commands you can do whatever you want with it with simple IF statements so it is very easy to adapt the code to your robot design.
If you are an eager tinkerer – the app itself is a very basic static HTML page so you could easily copy it and modify the app itself and change the interface. Bluetooth communication works both ways so it is also possible to receive M:B sensor signals in the app if you modify it.
Problems with connecting over bluetooth
If you have problems connecting over bluetooth:
- your board is not discoverable by the app
To make the board discoverable over bluetooth you have to properly set PROJECT SETTINGS in MakeCode (individual for each project!)
- go to (GEAR ICON) -> PROJECT SETTINGS
- Next click EDIT SETTINGS AS TEXT
- scroll down to section about BLUETOOTH and add this line: “open”: 1,

"preferredEditor": "blocksprj",
"yotta": {
"config": {
"microbit-dal": {
"bluetooth": {
"open": 1
}
}
},
Installing the app on Android
LOFI Control for Calliope mini app works as a Progressive Web App (PWA) it means that it is a plain HTML+JavaScript website which due to magical achievement of web-bluetooth can communicate with the Calliope mini if your device supports it. This also means that by now the app will not work on devices that do not support web-bluetooth such as iPhone and iPad.
On Android you can install Progressive Web Apps on your homescreen and use it almost like a native app in fullscreen. To do this open LOFI Control for Calliope mini app in Chrome you might see pop up window suggesting installation, if not click options (three dots) icon from the menu and choose INSTALL ON YOUR DEVICE. You will see icon for the app on your home screen and the app will work in fullscreen.

Contact me at: halo@lofirobot.com for more info.
What robot design will work best with this app?
These projects might use different microcontroller board but with little modifications can be easily adopted for Calliope mini