C# Wireless Dashboard

This is a C#/.NET application I made for real-time wireless plotting and PID tuning for one of my Ganzbot robots.

Some pitch estimator data. “Commands” tab selected.

Features

  • wireless link via low-cost HC-05 Bluetooth modules ($8 US)
  • HC-05’s reconfigured for 57.6 Kbps and to only pair with each other.
    • increases the speed from the default 9600
    • pairs at power-up every time – avoids incessant blinking light “searching for pairing” headaches
  • real-time scrolling plot of 6 signals @ 20 Hz
  • signal list can be reconfigured wirelessly while plotting
  • “macro” buttons to batch reconfigure all 6 signals simultaneously. Groups include – raw sensors, state estimator, pitch PID, speed PID, etc.
  • real-time wireless modification of PID gains
  • fields for direct user access to command interpreter
  • play, pause, save features

Notes

On my robot I’m using a Teensy 3.2 and a 2nd HC-05 module. No need for a Pi, or a board with Wi-Fi or anything complicated. Any MCU with a UART is fine.

Viewing plots and tuning gains/thresholds real-time with no tethers – even 6 signals at 20 Hz – is really nice to have for balancing robots and this project is a very low impact way to get there.


Written in C# using Visual Studio. Code needs some cleanup before posting to my GitHub. Stay tuned.

Some raw sensor data. “PID Tuning” tab selected