Skip to the content
4 layers68.5 × 53.3 mmDMM KiCAD V4 next, the printed circuit board in 3D

DMM KiCAD V4 next

oihdesigns/Micro-DMM2

A small, open hardware DMM

Size
68.5 × 53.3 mm
Copper layers
4
Thickness
1.6 mm
Parts
80
Nets
84
Pads
285
Tracks, vias
394, 49
Pours
7
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
22 Jun 2025
Updated
1 Nov 2026

Overview

DMM KiCAD V4 next is an open-source printed circuit board by oihdesigns, from the oihdesigns/Micro-DMM repository on GitHub. It is a 4-layer board of 68.5 × 53.3 mm with 80 parts on 84 nets, routed with 394 tracks and 49 vias.

It is built around the RFM-0505S, IX4426N and ADS1115IDGS, with the TPS613222ADBV, LTV-824 and ISO1540D among its other parts. Its parts include 20 resistors, 15 capacitors, 15 connectors, 13 ICs and 4 switches.

Main components

7

README

README.md

20250623_204616_470_1DXII copy

Update Late August '25:

I've recently started a new job. It's great, but has longer hours than my previous job. This will negatively affect the amount of time I put into this project...

Micro-DMM

This is the PCB design and code for a 4.5 digit DMM/ instrumentation module. It is designed and written primairly for Arduino-style development boards.

I've developed this DMM in my work testing and troubleshooting electronics to make my life easier.

I've had Deep-Wiki index my documentation. It did a mostly okay job. You can read its summary here: Ask DeepWiki

20250623_205912_480_1DXII copy

The main features are:

  • The most recent designs have open-lead detection in voltmeter mode. I believe this makes it the first voltmeter in exisitance that can automatically, safely, and positively tell the difference between "there is low impedance between these points" vs "current does not and can not flow between these two points." Please see the white paper for details.
  • Using keyboard emulation to directly type values into a computer for me. (Extremely useful when troubleshooting a populated PCB - you can quickly ohm out both the problem board and a good one directly into Excel to look for different impedances between given contacts.)
  • Very sensitive low-resistance readings (accurate to better than 0.01 Ohms with proper lead zeroing).
  • LED blinks when I'm reading logic level voltage or higher.
  • Simultaneous current and voltage measurement abilities (requires a Hall sensor-based ammeter module).
  • Data logging for current and voltage, with customizable triggers to autolog both.

Raspberry Pi user interface

The repository now includes a Raspberry Pi-friendly interface that mirrors the firmware display and logging features. The UI is written in Python using Tkinter so it ships with Raspberry Pi OS and can run directly on the framebuffer or under X11. To start the dashboard with the built-in demo generator run:

text
python3 -m raspi_port.app

In deployment the measurement host should feed real readings to the MicroDmmApp class instead of the demo thread. The window presents the same information rendered by updateDisplay()—live voltage or resistance with min/max tracking, current when enabled, the active mode, timestamps, delta/null information, and log counters. Interaction hotkeys replace the touch panel:

FunctionTouch colorHotkeyDescription
Mode cycleRedMAdvances through the measurement modes.
Manual logGreenLAppends the most recent sample buffer to ~/micro_dmm_logs/data.csv.
Auto log export–AWrites the auto-log buffer to ~/micro_dmm_logs/data_autologged.csv.
Min/Max resetBlueZClears the stored extrema, just like tapping “Min/Max”.
Type/ΔYellowTIn Type mode it writes the displayed value to typed_entries.txt; otherwise it arms the delta/null workflow.

On a Raspberry Pi you can optionally map these controls to hardware buttons by defining a MICRO_DMM_GPIO environment variable before launching the program. The value is a comma-separated list such as mode=5,manual_log=6,auto_log=13,minmax=19,type=26. Each entry binds a GPIO pin (using gpiozero.Button) to the corresponding action.

All log exports stay on the Pi’s filesystem under ~/micro_dmm_logs/. The CSV layouts match the firmware’s logCurrentData() and autologArraysToCSV() routines so downstream tooling continues to work. The typed_entries.txt file replaces the USB keyboard emulator and captures the same formatted text that would have been “typed” into a host PC, while also echoing it to stdout for quick clipboard-style use.

I have a long and detailed write-up of the circuitry design on my personal website: https://www.oihdesigns.com/arduino-multimeter-project

There are a couple videos here: https://youtu.be/rzj-ar2Qv_A and here: https://youtu.be/hZ4eH-7RNsU

Here are more photos:

20250623_205043_760_1DXII copy 20250623_202545_180_1DXII copy 20250623_203203_470_1DXII copy

Design Prioities and Compromises:

This meter is designed to complement and support the more expensive equimpent generally found in a lab, rather than replace it. With that in mide, I've made the following design decisions on my priorites:

Minimal Protections

  • The voltmeter circuitry is not designed to measure amplitudes higher than is dangerous to humans. By not designing a tool that is supposed to keep people safe I can dramatically simplify and shrink the design. (The said, I've nailed the voltmeter circuit with a 1000V megaohmmeter. No problem.)
  • Likewise, the resistance circuit can be damaged if you accidentally measure too much /unregulated voltage. This is a tradeoff for a very fast and accurate autoranging ohmmeter circuit that can accurately read from less than 0.01 to more than 5,000,000 Ohms.

Streamlined Functions

  • There is no built in ammeter, inductance, or capacitance function. Ammeter function is easily added as needed with either an off-the-shelf module, or a low value resistor across the voltmeter. There isn't an easy way to add indutance or capacitance. I don't use any of these often enough for them to be worth taking up the PCB space.

Current Support:

As of writing I have functional versions (I confirmed the core functions work) that support the:

  • Arduino Uno R4
  • Arduino Giga (with or without the display shield)
  • Arduino ESP32 Nano (via jumpers)
  • Seeed Studio XIAO RA4M1 (same processer as the Uno R4)
  • I have partial function on a direct computer (Windows 11) interface with a FT232H breakout board (AdaFruit makes a nice one). I can see the data lines and it looks like most of the logic works, more or less. It's a proof of concept port and a test for "can I tell the AI to take an Arduino sketch and port it to Python" (the answer is far more yes than it use to be).
    • That said, it's very slow (reading in at 2-3sps). I'm not sure how to optimize this, and speeding it up is not an immediate priority.

2025-06-30 15 28 38-1 2025-06-25 20 25 30

Future Plans:

Major Function Things to Address:

  • Writing to MicroSD cards over the AUX SPI Bux on the RA4M1 XIAO boards. I set this up and tested it, but it didn't work and needs to be troubleshot.
  • Getting the code to run on the XIAO RP2350 board. It compiles but does not run.

Potential Refinements To-Do List:

  • Revise the PCB design to shrink the physical size (the current design was made with hand-soldering in mind). This would involve:
    • Smaller footprint components for things like the pullup resistors.
    • Dedicated multiple transistor packages for the switching functions rather than the discreet components.
    • There are probably other ways to shrink the design.
    • There is some potential performance improvement room to the analog circuit if I take advantage of the ADS1115's max input voltage of ~6.144vdc instead of 5vdc.
  • There is always room for cleanup in the code to make it more elegant.

Ideas for Expanding on the Current Function / :

  • Make a version that uses an ADS1256 instead of the ADS1115 to support measurements speeds up to 30,000 samples/second and resolutions of up to 24bits. (I have had proof-of-concept success with this using a Raspberry PI ADS1256 hat.)
  • Make a version that runs off a Raspberry Pi.
  • Implement WiFi/Bluetooth features on the boards that support it.
  • Implement DAC output as a simple function generator for the boards that support it.
  • Add a jumper on the PCB and write the code to allow four-wire resistance readings.

If you're interested in helping develop this please feel free to reach out.

FAQ:

  • Q: What is the logic voltage?

    • A: The current PCB works for either 3.3 or 5vdc.
  • Q: Is there voltage isolation on the USB?

    • A: There is enough isolation (500K Ohms) that you will not hurt anything by measuring voltage (in either polarity) on something connected to the wall while the meter is also connected to the wall, but not enough to prevent ground loops from interfering with measurements. See the longer, full write up on my website, and then buy the Adafruit USB voltage isolation board.
  • Q: The Adafruit isolation board says "100mA." What does the meter draw?

    • A: With the XIAO RA4M1, 50-60mA typical when measuring voltage. Closer to 100mA when measuring resistance. The resistance circuit goes into low-power mode several seconds after being open (except in a no-sleep mode).
  • Q: Does it work on an Arduino Uno R3?

    • A: As a basic meter, yes, but there's no keyboard emulation.
  • Q: Can I buy one?

    • A: Eventually, yes, probably? I do not have a current timeline for bringing these to market. If you want one please reach out to me. If you want to hand-solder it yourself I can sell you a single PCB and maybe some of the components with higher individual costs.

Parts

80
QtyValueFootprintReferences
60Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7, R12, R21, R22, R22, R23
40.1uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC4, C7, C8, C17
41uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC1, C5, C6, C18
44.7uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC2, C9, C10, C15
310k x4Library:RESCAXS127P508X320X70-8NRN3, RN4, RN5
3SW_PushButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW1, SW2, SW4
222uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC16, C19
2499.0KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR17, R18
2AO3400A MOSFETPackage_TO_SOT_SMD:SOT-23Q2, Q8
2Barrel_JackConnector_BarrelJack:BarrelJack_HorizontalJ14, J15
2Conn_01x01_SocketConnector_PinSocket_2.54mm:PinSocket_1x01_P2.54mm_VerticalJ16, J17
2Conn_01x02_PinConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalJ7, J12
2Conn_01x07_PinConnector_PinSocket_2.54mm:PinSocket_1x07_P2.54mm_VerticalJ1, J3
2D_SchottkyDiode_SMD:D_SOD-123D4, D5
2IX4426NPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2, U4
2LTV-824Package_SO:SOP-8_6.605x9.655mm_P2.54mmU5, U8
11.0MResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR24
1100KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4
115.0KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR14
11KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR2
11K x4Library:RESCAXS127P508X320X70-8NRN1
12.2uFCapacitor_SMD:C_0805_2012Metric_Pad1.18x1.45mm_HandSolderC3
12.2uHInductor_SMD:L_Murata_DFE201610PL1
122.0KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR9
122KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3
122uHInductor_SMD:L_Taiyo-Yuden_MD-5050L2
1330.0Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR6
14.7KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR27
1500Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR1
162.0Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR5
171.5kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR8
1732kResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR25
1ADS1115IDGSPackage_SO:TSSOP-10_3x3mm_P0.5mmU3
1ANALOGLibrary:PinHeader_1x06_P2.54mm_Vertical_NoBoxJ10
1DIGITAL1Library:PinHeader_1x08_P2.54mm_Vertical_NoBoxJ13
1DIGITAL2Library:PinHeader_1x10_P2.54mm_Vertical_NoBoxJ8
1FuseFuse:Fuse_1206_3216Metric_Pad1.42x1.75mm_HandSolderF1
1ISO1540Package_SO:SOIC-8_3.9x4.9mm_P1.27mmU13
1I_InputConnector_PinSocket_2.54mm:PinSocket_1x03_P2.54mm_VerticalJ11
1LEDLED_SMD:LED_Luminus_MP-3030-1100_3.0x3.0mmD1
1LM317_TO-220Package_TO_SOT_SMD:SOT-223-3_TabPin2U1
1LM4040DBZ-2.5Package_TO_SOT_SMD:SOT-23U10
1LM4040DBZ-5Package_TO_SOT_SMD:SOT-23U11
1MAX1683Package_TO_SOT_SMD:SOT-23-5_HandSolderingU7
1MMBT3904Package_TO_SOT_SMD:SOT-23Q1
1Out to ScreenConnector_PinSocket_2.54mm:PinSocket_1x04_P2.54mm_VerticalJ9
1POWER1Library:PinHeader_1x08_P2.54mm_Vertical_NoBoxJ6
1POWER2Library:PinHeader_1x03_P2.54mm_Vertical_NoBoxJ5
1RFM-0505SConverter_DCDC:Converter_DCDC_TRACO_TEA1-xxxx_THTU14
1SW_SPDTButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW3
1TLV61046ADBVRPackage_TO_SOT_SMD:SOT-23-6_HandsolderingU12
1TPS613222ADBVPackage_TO_SOT_SMD:SOT-23-5U9

More from oihdesigns/Micro-DMM

12
  • 4 layers88.9 × 50.8 mmNametagVoltmeter, the printed circuit board in 3D

    NametagVoltmeter

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    66 parts2
  • 4 layers85.5 × 47.4 mmDMM Feather Redux, the printed circuit board in 3D

    DMM Feather Redux

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    61 parts2
  • 4 layers66 × 37.1 mmDualAMCBoard, the printed circuit board in 3D

    DualAMCBoard

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    59 parts2
  • 4 layers68.5 × 53.3 mmDMM Feather Specific, the printed circuit board in 3D

    DMM Feather Specific

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    57 parts2
  • 2 layers60 × 50 mmAD8237DevBoard, the printed circuit board in 3D

    AD8237DevBoard

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    56 parts2
  • 4 layers46 × 24.4 mmAnalogFrontEnd, the printed circuit board in 3D

    AnalogFrontEnd

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    52 parts2
  • 4 layers30.4 × 61.2 mmOpenLead Headless V2, the printed circuit board in 3D

    OpenLead Headless V2

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    44 parts2
  • 4 layers48.7 × 59.1 mmVoltmeterFrontEnd V2, the printed circuit board in 3D

    VoltmeterFrontEnd V2

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    42 parts2
  • 4 layers25.4 × 61.8 mmBlinkyHawk V4, the printed circuit board in 3D

    BlinkyHawk V4

    oihdesigns/Micro-DMM

    A small, open hardware DMM

    41 parts2

Similar boards

  • 4 layers100 × 50 mmPsu ext, the printed circuit board in 3D

    Psu ext

    PSU-Ext-Org/psu-ext-hardware

    A repository to store PSU-EXT hardware design assets, schematics, circuit diagrams, CAD files and manufacturing data.

    137 parts9CERN-OHL-S-2.0
  • 2 layers184.6 × 41.6 mmProjekt1, the printed circuit board in 3D

    Projekt1

    Now4czyk/access_control_circuit

    Access control circuit

    72 parts
  • 2 layers49.5 × 34.5 mmFog mcu interface, the printed circuit board in 3D

    Fog mcu interface

    aidtopia/hauntcontrol

    Controlling Halloween props with Arduino

    15 parts1
  • 2 layers59.4 × 32.3 mmMl ph board, the printed circuit board in 3D

    Ml ph board

    Ranthalion/ph

    pH Module

    41 parts3MIT
  • 4 layers89 × 58 mmHALMET, the printed circuit board in 3D

    HALMET

    hatlabs/HALMET-hardware

    Hat Labs Marine Engine & Tank interface hardware design files

    227 parts8CC-BY-4.0
  • 2 layers81 × 81 mmBMS, the printed circuit board in 3D

    BMS

    jeevv/Rover-2025

    71 parts
  • 4 layers88.6 × 198.2 mmCT v2, the printed circuit board in 3D

    CT v2

    Poornimakulkarni26/Industrial-io-controller

    Custom-designed general-purpose PCB for industrial automation — featuring 20+ digital I/O, analog inputs (current/vacuum sensing), stepper motor drivers, NeoPixel, FRAM storage, and multi-protocol interfaces (SPI, I2C…

    223 parts
  • 4 layers65 × 56.5 mmPi HIL, the printed circuit board in 3D

    Pi HIL

    omarKmekkawy/RaspberryPi_HardwareTestingAutomation_Shield

    A Raspberry Pi Shield for Hardware Testing Automation

    45 parts

Questions

How big is the DMM KiCAD V4 next PCB?

It measures 68.5 × 53.3 mm and has 4 copper layers, 1.6 mm thick.

What parts does the DMM KiCAD V4 next use?

80 parts, built around the RFM-0505S, IX4426N, ADS1115IDGS and TPS613222ADBV. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the DMM KiCAD V4 next KiCad files?

From the oihdesigns/Micro-DMM repository on GitHub, at the commit this page was made from: the board is PCBDesigns/DMM_KiCAD_V4_next/DMM_KiCAD_V4_next.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the DMM KiCAD V4 next design in my own project?

Its repository states no licence, so its author keeps all rights: ask oihdesigns before reusing the design.