The Problem
The issues presented above are not uncommon when developing e.g. embedded control systems. Often you quickly want to figure out if the chosen control strategy is adequate for the problem at hand. And you probably want to find the most appropriate values of the controller parameters.
The Solution
This project provides a solution to shorten the development loops in such cases by enabling real-time parameter tuning and variable measurements. Simply put, you can tune your controller while at the same time see the system response.
Current features
- Real-time measurement and tuning of variables and parameters
- Desktop application written in Python (PyQt)
- Good looking plots (thank you pyqtgraph!)
- Easy to add custom visualization widgets
- Commands and data is transferred between target and desktop via a USB-to-serial adapter, but the protocol is easy to port to other methods of communication as well, e.g. Bluetooth, CAN, wifi...
- Log data to a csv file
- Save parameter data sets
- Very simple variable declaration macros in target code:
Still todo:
- Handle custom data types, e.g. arrays and structs
- Optimize overhead of target drivers
- Some alternative measurement widgets
- Make target driver easier to port: currently there are assumptions regarding endianness
Great project! I use pyqtgraph for a project at work and I've always wanted to make a serial debug tool with it for my microcontroller projects. It's nice to see that you've already done this, saves me some effort. Thanks :)