STAR is a software application for developing and executing teleoperation tasks on the Makeblock mBot robotic platform. This application provides a complete system for interfacing with the mBot through multiple communication channels, enabling robust local and remote control.
This app provides a convenient and reliable interface to explore different modes of telecommunications
| Feature | Description |
|---|---|
| Local Bluetooth control | Allows users to connect and control robots via Bluetooth directly from the Mission Controller GUI, enabling low-latency commands in close-range environments. |
| Remote control via internet | Enables control of robots over the internet using a WebSocket-backed API, allowing for long-range or cloud-mediated communication. |
| APRS control | Sends commands encoded as APRS packets using gen_packets, and decodes received packets using Direwolf. On Windows, audio is looped back via stereo mix; on Linux, APRS is received via RTL-SDR at 144.39 MHz. |
| Mission building | Provides a GUI-based mission planner for constructing command sequences interactively using a dedicated builder window. |
| Satellite tracking | Integrates with gpredict to show live satellite passes, allowing the app to align communications with overhead satellites in real time. |
| Mars simulator | Simulates a Mars terrain and mission building interface to support users without hardware. |
- Educators and Students who need a reliable, all-in-one solution for teaching robotics and telecommunications concepts with the mBot.
- Robotics Hobbyists working with the Makeblock mBot who require a powerful framework for local and remote operation.
- Amateur Radio Enthusiasts looking to interface robotic hardware with the APRS network.
- Developers who want a complete and extensible software kit to build upon for advanced tele-robotics projects.
The STAR framework includes the following built-in communication methods:
- Local: Direct control via USB/Serial connection.
- Remote: Internet-based control via a WebSocket connection to a central server.
- APRS: Command and control using the Automatic Packet Reporting System (APRS) over amateur radio.
- Download the latest release for your platform (Windows/Linux).
- Unzip the downloaded package to a directory of your choice.
- Open the unzipped folder.
- Launch the application using the appropriate launcher file:
- On Windows: double-click
launch-windows.bat - On Linux: run
./launch-linux.shfrom the terminal.
- On Windows: double-click
Note
If you have downloaded the lite package, make sure any required dependencies (e.g., Direwolf, gen_packets, rtl_fm, gpredict) are installed and configured according to the platform you’re using.
For XRP robots, STAR now supports both Bluetooth and local WiFi pairing. Put the controller machine and XRP on the same WiFi network, then select a discovered XRP_WIFI:<ip> entry in the local robot list and pair. WiFi discovery uses a lightweight UDP broadcast discovery message (no subnet-wide ping sweep). Bluetooth XRP pairing continues to work as before.
For WiFi control, also update XRP_firmware/bluetoothController.py on the robot with WIFI_SSID and WIFI_PASSWORD so the XRP starts a command server on port 3540.
When WiFi is enabled in firmware, BLE remains supported; if a BLE controller is connected, firmware gives BLE exclusive control and ignores WiFi commands until BLE disconnects.
To control your mBot using this app, you simply need to plug the Bluetooth dongle into the device running the application, and turn on the mBot. The mBot's flashing blue light should turn to a solid blue light to indicate successful pairing. Click the pair dropdown → Select the Bluetooth dongle's COM port → click pair. To send commands, select a robot (select the COM port for local control) and enter power, direction, and time values, then hit the send button.
To access remote mBots via the internet, enter your information in the config page, which can be accessed from the setup menu item. After this is done, remote robots will populate the left hand side dropdown.
Tip
If controlling a remote mbot, ensure the receiver has turned their do not disturb setting turned off.
The default behaviour for receiving APRS is different on Windows and Linux.
-
- There is no direct software pipeline between
rtl_fmand Direwolf. - To receive packets, you must either:
- Use virtual audio cable or stereo mix to route audio output into Direwolf, or
- Place the radio's speaker near your computer's microphone (less reliable)
- There is no direct software pipeline between
-
- APRS audio is piped directly from
rtl_fminto Direwolf usingsnd-aloopkernel module - No physical audio routing or sound mixer/ configuration is needed, its handled entirely in software
- APRS audio is piped directly from
- Download or clone this repository
- Open this project in an IDE
- Create a virtual environment inside the root directory
- Then enter
pip install -r requirements.txtinto the command line to install all modules - Install the drivers for the SDR dongle
- Install JDK 11 or higher and Maven. This project uses JavaFX via Maven (
org.openjfx), so JavaFX is downloaded automatically at build time. On Linux, ensure JavaFX native libraries are available or use Liberica JDK Full. - Download the latest releases for GPredict, Direwolf, rtl-sdr
- WINDOWS ONLY: Extract these folders and move them to the directory which contains the STAR folder
Your project structure should look something like this:
📦ariss-usa
┣ 📂direwolf-x.x.x-413855e_i686
┣ 📂gpredict-win32-x.x.x
┣ 📂rtl-sdr-64bit-xxxxxxxx
┣ 📂STAR
