Arduino Libraries

Update: February 1, 2021: New GaugeWidgets libraries (GaugeWidgets_M5 & GaugeWidgets_huVVer are now available, with additional features and greatly expanded example programs. The two new libraries are in the Beta phase, awaiting developer feedback.

Upate February 6, 2021: Dynon announced its SkyView 16 software that supports WiFi/UDP transmission of the serial datastream. Dynon’s implementation is not compatible with the GaugeWidgets libraries. A new release will be issued to support this in the near future. Additionally, there have been reports that the M5Stack Fire will not run properly. Just turn off PSRAM Enabled in the boards manager of the Arduino environment to fix this.

Upate February 16, 2021: GaugeWidgets_huVVer has been updated to include Dynon SkyView WiFi UDP reception, and to support either the M5Stack or huVVer AVI from one sketch. The code has been extensively restructured and revised to make it a Beta-2 ‘pre-release’ of the production code. The only thing left to do is final flight testing to confirm the functionality of the instruments.

Update February 28, 2021: GaugeWidgets_huVVer has been updated to Beta-3 ‘pre-release’ after ground-based testing with live data from a Dynon SkyView EFIS system.

Update March 16, 2021: Flight testing to date has not turned up any issues. We have decided to support the huVVer-AVI-2 as well as the -3 version. The -2 fits into a 2″ instrument hole, but is fascia-mount only. It is about 2.75″ square (70 mm), so make sure you have enough room around your instrument panel cutout.

Update April 11, 2021: Added the OnSpeed Energy Display to the instrument package and moved to Release 1 with no problems found in the Beta 3 release.


The GaugeWidgets and PolarDraw libraries are Arduino-IDE compatible graphics libraries optimized for drawing gauges on the ESP-32 based M5Stack 320 x 240 TFT screen.

GaugeWidgets. The GaugeWidgets library includes vertical, horizontal and angular (arc or circle) widgets. Individual widgets have up to five color-selectable ranges, up to eight pointers of eight types (including arrows, of lines/bars, ‘bugs’ (markers), and needles. Pointers have selectable colors and individual single-character ‘tags’ that help in labeling. Also, text datum helpers are provided to assist you in the positioning of text strings such as values and units.

PolarDraw. The PolarDraw Library allows you to place lines, triangles, quadrangles, circles, arcs, and text with arbitrary rotation, size, and line width. Handy for instrument labeling and drawing, but see the library example for more interesting applications.

FMI on the hardware used:

Examples of compound Gauges created using the vertical, horizontal and arc elements from the pre-release GaugeWidgets library:

Using the widget primitives in the GaugeWidgets library, you build elaborate gauges, such as shown above. Most of the math is taken care of. You just perform simple screen positioning of widgets and values. For commercial endeavors, please contract me to develop custom gauges or library elements. Many of the gauge examples have been flight tested!

I created this library in order to provide electronic gauges for experimental amateur built (E-AB) aircraft, but you can easily use it for simulators, vehicles, boats and spacecraft (!). You may download and use The libraries with a license for non-commercial purposes. UPDATE:<May 13, 2020> Deprecates the PolarText library and incorporates all of the methods into the PolarDraw library. PolarDraw adds the ability to place graphical objects with arbitrary revolution, rotation and line thickness.

Etymology: PolarDraw uses polar coordinates (r, theta) to specify points in a 2-D drawing plane. It draws ASCII text (numbers, characters, strings) and geometric objects at various angles, sizes, widths and thicknesses. It uses extensive use of floating point mathematics for trigonometric functions and is ideally suited to 32 bit microprocessors, such as the ESP-32.

Try out the PolarDraw library. It will make your head spin. It allows you to place graphical objects and print text anywhere on the screen, with specified revolution, rotation, height, width, color, datum position and line width. Yes, the library does double rotation– once around a graphics datum and the other around the text or object datum. No sines or cosines were injured during the creation of this library.

Update 9/3/2020: PolarDraw adds geometric object methods (line, triangle, rectangle, quadrangle, arc, circle and ellipsoids) to the textual polar methods. Objects can all be drawn with outlines of variable width, color and end effects. For rectangles, arcs and ellipsoids, graduation marks can also be enabled, simplifying the creation of your own gauges.

Download Libraries

NOTE: Libraries are now offered for the huVVer-AVI-2 and huVVer-AVI-3 programmable aircraft instruments. These devices features a larger, brighter screen than the M5Stack and supports a number of interfaces useful in avionics applications.

We’ve moved the huVVer-AVI and M5Stack flight instruments library downloads to their own page here:

If you want to donate to keep this website running, send me an email and I’ll tell you how! For commercial use of this intellectual property, please contact me for licensing terms. Thanks, Vern (Voltar).


ONSPEED is an angle-of-attack (AOA) that is used for approach, landing and maneuvering. It provides tone and visual clues to maintain a safe, optimum AOA for maneuvering, approach, and landing. If the pilot maintains ONSPEED, the airplane cannot stall. FMI is providing hardware and software for the OnSpeed AOA/Energy display. Various 3-D printed mounting bezels and a rear case are available from Shapeways, and the power/data base (huVVer-M5PWR) is available directly from OnSpeed. The actual display unit is available from

Using one of the M5Stack display modules, the Shapeways rear case and one of the optional mounting bezels or pivot and the power/data base from OnSpeed, a complete aircraft auxiliary display system can be built. The display system can run any of the code available on this page.

Here are some mounting systems currently in development:

Order 3D Printed Parts

All of the mechanical parts available here: .

Want to DIY or use a different supplier? Here are the STL files for the OnSpeed pivot mount, back case and bezels:

Custom Power/Data board for M5Stack. Robust power module for aircraft, automotive and marine applications. Withstands +/- 100 Volt power surges and provides electrostatic discharge protection on inputs and outputs. Uses standard Molex connectors for rear access. Contact OnSpeed for availability.

2 thoughts on “Arduino Libraries

Leave a Reply