Developed at the Connected Environments Lab at The Centre for Advanced Spatial AnalysisUniversity College London, the Open Gauges Project was launched in October 2021 as part of the Module on Sensor Data Visualisation (CASA0019) within the MSc in Connected Environments.

The Open Gauges Github Repository provides full access to the original Fusion 360 design files, .STL files to 3D print gauges, code and graphics for the gauge dials. It also allows new gauges/code to be uploaded into new branches via the Github page.

The project aims to allow open-source data gauges to be built, modified, and viewed as both physical (3d printed) and digital gauges. Depending on the user’s preference the models can be made to run from any online data source  – such as an MQTT feed – from Weather Data with Air Pressure, Temperature, Wind Speed etc though to Air Quality Gauges, Noise Meters, Energy etc. The project was created by Professor Andrew Hudson-Smith and Dr Valerio Signorelli.

As part of ongoing development, we are releasing a redesign of the Gauges for 2023, they include a new screw top cover (replacing last year’s magnetic cover), allowing a simpler way to both secure and easily access the front dial. Alongside the redesign, we are also releasing dial designs compatible with Figma and new Micropython code to build the gauges with a Pi Pico W, including Neopixel lighting. The previous designs remain available in the github repository.

In addition, we have added full code and 3D print files for the new Light Saber Neopixel Meter – it allows real-time data to be visualised using a Lightsaber Blade – full details can be found over at the blog post on How to Build a Light Saber Data Tube.

A total of 6 Dial Graphics are now available- sized to fit into the 3D printed cases – Temperature (-10 to 40 oC), Wind Speed (0-60 mph), Wind Dir (0 – 360), Air Pressure (950 – 1050 mb) and Co2 (400 – 1400 ppm) and Energy Consumption (0 – 5000 Watts).

In addition to reading the MQTT data and using the Servo Easing Library for the servo, the code also includes a time function, allowing the gauge to turn the LED lights/Servo on and off at set times. This is used to turn off at night and on again in the morning.

The code can be used to create any gauge with a range from 180 to 360 degrees using a standard SG90 servo. A gear train is used to extend the servo range with the ability to calibrate in the code. On load, the servo performs a sweep function to aid the calibration process.

The aim was to make displaying data, via both a physical and digital device, as easy as possible – to recreate the simplicity of a gauge but to update it to use current data standards.

Open Gauges - Technical Drawing

Due to its simplicity, the design can be edited to accommodate a range of styles, from dual displays through to retrofitting old devices. Indeed retrofitting (only if a device is beyond repair of course) can give new life to old barometers, barographs, pressure gauges etc, all with the same code and design.

At the present time (October 25th, 2022), this page is under development with new designs. To underline the developing nature of the project – see also our Neopixel Barometer Open Gauge,  the Open Energy Gauge graphic, and the Voltmeter Gauge.

The gauges are made to be as simple as possible to make but allow enough flexibility to allow them to be used to display a wide range of data types, the parts list below provides details for the full gauge with lighting.

Updated details to cover Micropython are incoming, the code is already in the github repository.

Parts List

The main parts are:

  • Node MCU Arduino Board – we have been using the (MakerHawk boards). However, any Arduino compatiable board will suffice, the ease of using the above boards is the code will work without and changes to the pins.
  • SG90 Servo – any SG90 style servo will work, we would however recommend the MG90S Micro Servo as it provides a smoother travel to the gauage pointer.
  • Lights – Pimorini White LED Backlight Module – 38.7mm x 11.9mm x 2mm, although any low power led will also suffice
  • PLA for 3D Printing – Any PLA for the main parts, the dials graphics are printed on paper and laid flat on a disc (see 3D Printer Files) printed in transparent PLA. This can be left out but it allows the dial to lay flat and provides a nice diffused light. eSun Transparent PLA works well.

You can now also find the models in Open Spatial – see the link below