IuT voltmeter for a breadboard

Measure several voltages on a breadboard and display results on a smartphone for less than $10 for parts

Similar projects worth following
*non-native English speaker, language corrections are welcomed

MOTIVATION: Conventional digital multimeters (DMMs) are usually quite bulky and inconvenient to use along with a breadboard. In many cases one wants to monitor/observe voltages at several circuit nodes, ideally at the same time. The latter is not possible with a single DMM; re-connecting the DMM lead(s) may affect the existing breadboard connections.

AIM: build an inexpensive IuT voltemeter, which can be easily connected to a breadboard and reports data from several measurement channels through a web server to a smartphone or tablet

1) inputs to be protected from overvoltage
2) must be powered from an isolated non-grounded power supply for at least 4 hours
3) resolution down to mVs with decent accuracy and repeatability
4) cost of components below $10; use off-the-shelf modules for easy and quick assembly

The project's challenge - build an IuT instrument for breadboard users (circuit designers, tinkerers, students, makers) at low cost

What will it address - the need for measuring/monitoring several voltages during circuit prototyping, tuning and evaluation

How will it change the world - every person who builds the IuT voltmeter will spend a few dollars on parts, which is good for the global economy. The side effect is productivity and convenience increases for the user.

Project licensing - some permissive open source license (MIT?); contributions of other people will be acknowledged, and relevant license(s) stated as appropriate.

Design intentions

- usable straight away with any mobile phone or tablet etc, equipped with a web browser, with automatic refreshes of the measured voltage(s)

- fully self contained (no need to connect to any additional network)

- use of inexpensive ESP8266 then ESP8285 modules for implementing both a web server and an access point

- use of ADS1x15 module for voltage measurements

- protect inputs of ADS1x15 from overvoltage with resistors in series (no damage if the voltmeter's input is connected to a voltage source of up to 50 V)

- rechargable Li-ion battery for powering the device (to be capable of 4 hour operation without recharging it; allows for operating the IuT voltmeter independently of the breadbord circuit's power supply and does not require earthing of the volmeter similarly to a conventional DMM);

- have three hardware revisions (design based on WeMos mini base board and shields and ADS1x15 module; replacement of the original Li-ion management shield with more power efficient modules as a custom shield; PCB for permanent assembly of the device using custom modules)

- ESP82xx is to be programmed in Lua (NodeMCU firmware) for the ease of development and debugging at first; other options may be used to improve operation of the functional design at later stages if desirable

- future enhancements - automatic gain control to provide the best resolution for the measured voltage (firmware; relatively easy to add); gradual addition of JavaScript code in order to improve appearance of the measured voltages (use of some seven segment library), using AJAX instead of page reload, configure the voltmeter from the served page (enable/disable particular channels, give labels, set voltage threshold activating audio warnings, use the voltmeter for plotting measured voltages over time (I am new to JavaScript but all the relevant libraries seem to be available for the above actions)


The stress test - serving two clients simultaneously. Please note that the client system's time is displayed.

x-ms-wmv - 3.12 MB - 06/09/2017 at 15:38



Video showing operation of the IuT voltmeter for a single connected tablet. Please note that the page automatically reloads every 300 ms which can be seen from some flicker of the address bar.

x-ms-wmv - 7.08 MB - 06/09/2017 at 15:36



HTML page with embedded Javascript that displays clients's time and self reloads every 300 ms. Used for testing before being added to the server code.

HyperText Markup Language (HTML) - 445.00 bytes - 06/09/2017 at 12:17



A service code to delay starting the main file (IuT_00.lua) by 3 seconds, during which the user can abandon automatic execution by connecting pin 3 to ground

lua - 444.00 bytes - 06/09/2017 at 12:17



Main code providing the functionality. Calls ads_module.lua first then invokes a local unencryted WiFi access point (IuT_volt) then serves the dynamic web page on

lua - 1.59 kB - 06/09/2017 at 12:16


View all 7 files

  • 1 × Wemos mini module WiFi access point + web server, £3.12 on aliexpress
  • 1 × ADS1115 (or ADS1015) ADC module Measures voltages, around £1.50 on aliexpress
  • 1 × Wemos tripler base Connects three modules together, £1.12 on aliexpress
  • 4 × Through hole resistor of around 10 kOhm Protection for the ADC inputs
  • 1 × Turned pins strip (min 5 pins) To insert jumper wires

View all 8 components

  • To pull or not to pull - that is the question

    AlexanderN06/19/2017 at 23:15 0 comments

    ... which turned to have the following short answer - to pull down with a 680 kOhm resistor. For a detailed answer

    Read more »

  • Project tracker

    AlexanderN06/17/2017 at 20:51 0 comments

    I found out that too many things need to be properly noted even for this well defined little project.

    These are

    - features and options (completed)

    - features and options under development and development alternatives

    - to do later list (essential and non-essential features, options, refinements, cool things)

    - things to revisit if time permits

    - anything else

    Read more »

  • Test 2: performance

    AlexanderN06/17/2017 at 17:51 0 comments

    Some observations and test results

    - protection

    - consistency of measurements

    - operation of the access point

    - dynamically serving the web page

    - operating the design from a single battery charge

    - at last but not at least - how did the voltmeter measured voltages

    The outcome - this is a voltmeter that underreports the measured voltages by 6 mV in the worst case at full scale measurement (below 0.5%).

    Read more »

  • Functionality test 1: passed

    AlexanderN06/09/2017 at 15:35 0 comments

    Here is the video of IuT voltmeter serving a tablet with the reload interval of 300 ms

    and the stress test - serving two clients simultaneously

  • Firmware 2 & web page : enabling basic functionality

    AlexanderN06/08/2017 at 21:08 0 comments

    This log is about configuring the ESP for operating as WiFi access point (straightforward), enabling TCP server and programming relevant callback to serve dynamic web pages (learned a few new to me useful things), adding JavaScript code to reload the web page from the server automatically every 300 ms (my first practical use of JavaScript) and adding a script to start all the things on power up (init.lua).

    Read more »

  • Hardware - revision 2

    AlexanderN06/08/2017 at 20:27 0 comments

    This revision was planned to have a trippler baseboard, a mini lite and a battery shield from Wemos, an ADC module (attached to the third base) all soldered to the baseboard in order to reduce the height of the device. However, following the experience with oldered battery shield for the revision 1, I decided to socket all these modules. As it turned out later, this was a wise provision to make.

    Read more »

  • Firmware 1: how to stop worrying and reinvent the wheel

    AlexanderN06/04/2017 at 20:07 0 comments

    I was not afraid of writing driver code for the ADC module, and I did. When I later built the NodeMCU firmware, I found that this driver was already written and available for inclusion. Nevertheless using such a driver would be difficult without reviwing the ADC datasheet, and I did not worry too much for reinvenbting the wheel. Hence the title of this log.

    Read more »

  • Active learning of circuit protection

    AlexanderN05/29/2017 at 19:33 0 comments

    When one needs to change a connector for a rechargeable battery, he/she will connect the red wire from the battery to the red wire of the connector, right?

    The same goes to the black wire, right?

    I was sure too until I learned this could be wrong by means of active learning.

    Read more »

  • Hardware - revision 1

    AlexanderN05/27/2017 at 18:15 0 comments

    The first revision of the IuT voltmeter was built using the Wemos mini prototyping system, in particular D1 mini board and matching shields: dual base, battery shield, protoboard shield.

    (Note 1: more about Wemos D1 mini shields - at the end of the log entry)

    Dual base and protoboard shields are shown in the picture below with a ruler for scale:

    Read more »

View all 9 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates