Skip to content

Pirate#

Pirate (short for "Pirate Implements Remote Access to Experiments") is a remote monitoring solution for Arduino projects.

Architecture Overview

The solution uses a Raspberry PI as an intermediate server translating and broadcasting between the Arduino project and client webpages. It also supports the use of a webcam for a live view of the project.

Getting Started

Motivation#

When using an Arduino there are a lot of pain points. Pirate looks to solve a few of them:

  • Reading variables
    • is often done by printing them via Serial.Print to a console.
      • String handling is slow and might influence cycle time.
      • The data scrolls by to fast to be useful.
    • If a display is used the available space is to little to be very useful.
  • Changing parameters
    • often entails changing them in the source, recompiling and flashing again.
    • Alternatively additional hardware can be used to do that manually.
  • Extracting data
  • Monitoring the project from a distance.

Pirate looks to be a solution to provide an realtime Interface where the variables and parameters can be monitored and changed on the fly. While doing that it also strives to have as little impact on cycle performance as possible.

Project Goals

Overview#

When integrated into an Arduino project via the Pirate Hook variables can be designated to be sent or received. These then get periodically transmitted via UART to the Pirate Bridge on a connected Raspberry PI. The Bridge uses the data to provide an interface for the clients. The standard client is called Pirate Flag. It reads data streams from the interface and displays the data in a webpage. It can in turn send requests to the Pirate Bridge to change parameters on the Arduino. Parallel to this the Raspberry PI can also provide a live view of the project with Pirate Spyglass. To help with the routing the Pirate Map is used.

Architecture

Warning

In Mechatronik Project 2 a new streaming soulution (Pirate Spyglass) has been created and replaces the original WebRTC Pirate Spyglass. The new solution avoids pitfalls with WebRTC signaling, making it suitable for usage on campus grounds. It is a stand alone executable and can easily be integrated into any webpage.

The Project is currently hosted on Github#

The documentation can be found on: https://ch3ri0ur.github.io/piratedocs/

The source code on:
- https://github.com/Ch3ri0ur/pirate_modules
- https://github.com/Ch3ri0ur/pirate
- https://github.com/Ch3ri0ur/piratedocs
- https://github.com/Ch3ri0ur/berrymse
- https://github.com/Ch3ri0ur/go-v4l2

Currently developed by:#

  • Maximilian Koch
  • Christian Wappler