ArengaGUI: Live Analog Graphing Program

ArengaGUI: Live Analog Graphing Program, written by Nick Virag

Description (easy-to-understand): ArengaGUI is a simple computer program that graphs data from an Arduino board.

Description (full): ArengaGUI, together with a simple Arduino program that outputs the analog serial data, allows for live, real-time graphing of any analog Arduino peripheral. The data can be viewed as well as exported to a CSV, PDF, or PNG image for use in an office suite document. This is accomplished by writing the analog inputs to the serial, which is then read by a C++ program (through the use of the "boost" library, which supports serial IO). The serial data, once read through boost, is displayed on the screen through a QCustomPlot widget in a Qt window.

Short Video: View in fullscreen (A much better video will be available for the upgraded version of ArengaGUI... see below)

Source Code: Since the source code is too extensive to embed in a single web page, for the time being it's available either in a loosely-organized compressed zip package (Warning: Since zip compression may not save file permissions, the included Arengaui.app for OS X may not function without being recompiled-this will be fixed in any future versions), or the very latest source is available upon request via email. As soon as multiple simultaneous analog channels are supported, I'll create a Sourceforge project for the program, with precompiled, easy-to-run binaries for Mac OS X and Windows.

Look to the Future: In the future (within a few months), I plan on fully resuming development of ArengaGUI. Right now, I'm adding support for graphing multiple analog channels simultaneously (which is already partially implemented as it is).

Problems Encountered: I ran into numerous issues with the serial->desktop application translation. Speed issues with the original setup (Arduino->PySerial(via Python)->Qt) forced me to choose a new path (Arduino->Boost->Qt). I also ran into minor issues printing the data to a live graph, but these were resolved through timing events or otherwise.