Skip to content

How the internal Festo communications work

Wei edited this page Mar 19, 2020 · 1 revision

This wiki page will provide a quick summary of how the communications between the internal Festo's Microbit Gateway, Raspberry Pi Hub and Robotino communicates from Python to C code.


Microbit 1 (MakeCode Microbit)

This is the Microbit controller that the MakeCode user can flash their script to, in order to send instructions to interact with the Festo. In the context of this wiki page, this is the irrelevant microcontroller but how it communicates with the Festo components (Microbit 2, Raspberry Pi and Robotino) is through the usage of radio.

Microbit 2 (Microbit Gateway)

This is the Microbit controller inside the Festo, connected via USB to the Raspberry Pi Hub. Inside, it contains the Microbit Gateway Code which currently just ensures that the incoming radio message is a valid message from a MakeCode Microbit, retrieves the intended transmitted message and sends it to the Raspberry Pi via the COM port. It also attempts to wait for any message sent back by the Raspberry Pi.

Raspberry Pi (RPi Hub)

This is the Raspberry Pi Hub to handle the communication between the Microbit Gateway and the Robotino, both via COM ports. It contains the Main Hub Code which continuously processes instructions and also sends any depreciated instructions back to the Robotino. It provides capabilities to send read/write messages for both the Microbit Gateway and the Robotino.

Robotino (Linux Machine)

This is the main Linux Machine that performs the BinBot movement and/or sensor data request. It contains a number of built-in Festo code to activate its associated motors and sensors, and also the master BinBot.c code to continuously process depreciated instructions sent from the Raspberry Pi. It detects for any data to the COM port from the Raspberry Pi and streams it. It sends data back by writing to the COM port directory.

Clone this wiki locally