The MIROapp allows you to configure MIRO using the Bluetooth interface. The app can be used to start the demonstration software, but also to configure MIRO to connect to your local wireless network by providing network credentials.

I am a demonstrator

If you only want MIRO to run the demo software, you need only look at these sub-sections, which you will find below:

Install the app and connect to your MIRO over Bluetooth.
Mode selection
Select mode "demo" and any desired flags (no flags is a great starting point, you can come back to this later if you need to).
Configure the bridge to autostart when you reboot.

After the above steps, MIRO will start running the demonstrator software automatically each time you turn it on.

I am a developer

The app is also of use to the developer since it allows the network credentials to be configured so that you can subsequently login to your MIRO through the wireless link (MIRO runs an SSH server). Connect to your MIRO, lay in the network credentials, restart the wifi, and you should be ready to connect—the app will also report the IP address you need to connect to MIRO, and/or the MAC address if you need it to configure a static IP address. For information, changes made in the app to bridge configuration and autostart behaviour affect only the content of scripts stored on-board MIRO at ~/bin. See Login to MIRO.


The MIROapp is supported on Android Marshmallow 6.0 or later. It may run happily on KitKat, also, but this is not supported. The Android device in use must have a BLE (Bluetooth Low Energy) radio attached—recent smart phones and tablets will usually include this component.

The MIROapp can be installed by opening the APK file on your Android device. The APK is available in the MDK under ~/mdk/image/Android, but it will usually be easier to get it onto your device by choosing the MIROapp Direct Download from this page.

The MIROapp makes use of some media files provided by third parties—see ~/mdk/image/extern/CREDITS.txt in the MDK for attributions.

Connect screen

When you start the MIROapp, it shows the screen to the right, and automatically begins scanning for nearby MIROs. Any that are detected are listed on the screen.

Once your MIRO is detected, you can press and hold its entry on the screen to give it a friendly name that you will remember. We have called ours "My MIRO". You can then click on the entry to connect to that MIRO.

If the scan has finished and you want to re-scan, just click on SCAN.

Management screen

If the app connects successfully, you will then see the screen on the right. From this screen you can manage the high-level behaviour of your MIRO, including how it connects to your local network, and what it starts doing immediately when you turn it on. From top to bottom, the management screen can be understood as a list of somewhat independent sections, as follows.


The first section of the app reports the Bluetooth connection status. Click on the red cross to disconnect and go back to the connect screen.

Network credentials

If you want MIRO to connect to your local wireless network (you only need this for developing) you can provide your network credentials here. Hit the refresh button to see what credentials are currently stored, or click CHANGE CREDENTIALS to update them. In either case, the stored (or updated) credentials will be displayed and the security icon will light.

Once you provide network credentials, your MIRO may connect to the network; MIRO ships with a standard root password, and is therefore vulnerable until you set a custom password. You should do this immediately following network connection (see Login to MIRO).
If you are not a developer, it is safer to leave your MIRO without a connection.


The next section of the app reports the wireless connection status. If MIRO has valid network credentials, it will connect to the wireless network automatically. If you have only just provided new details, you will need to hit RESTART WIFI before these will take effect.

When the network is connected, the IP address that has been assigned will be displayed and the wireless icon will light. You can also read the MAC address, here—hit the refresh button to switch between displaying IP address and MAC address.

Mode selection

Changes you make in this section will take effect when you next start or restart the bridge (see below).

The next section allows you to configure MIRO's run-time behaviour. Hit the refresh button to see which mode is currently selected.

Change mode

You can click CHANGE MODE to change the mode.

If you select diagnostic mode the platform will start to beep and will not leave diagnostic mode until you reboot.

Demo flags

If you choose Demo mode, you can also select from a list of flags by clicking on CHANGE FLAGS (see also Wrangling).


The network bridge is the default on-board software that ships with MIRO. This software bridges the on-board platform interface to the wireless network (exposing the MIRO platform as a ROS node). It is also used to configure the platform—if a mode other than NORMAL or CONSERVATIVE has been chosen, the bridge still needs to be started to engage that mode, but the network side of the interface will not be enabled.

Hit RUN/STOP to toggle the state of the bridge (between running and stopped) and the mode and flags you selected above will take effect. Once you are happy that MIRO is prepared for the role you have in mind, you can click on TOGGLE AUTOSTART so that the bridge starts automatically each time MIRO boots. The configuration you have chosen will be used when MIRO autostarts, also.

Starting in NORMAL or CONSERVATIVE mode, the bridge will try to contact the ROS master. If it still fails after ten attempts, it will exit. If you are having problems contacting your MIRO through the ROS interface, click on the refresh button in the bridge section to see if the bridge is still running.


If you scroll right to the bottom of the screen, you'll find a gear icon and a refresh button alongside. Once the bridge has been running for a few seconds, clicking on the refresh button will retrieve the release codes for the firmware, respectively, in P1, P2, P2 bootloader, and P3.