Skip to the content
2 layers52.1 × 116.8 mmDIY Uncertainty, the printed circuit board in 3D

This readme needs to be updated to reflect this and to talk about the many other languages that people have used to create new firmware for Uncertainty.

Size
52.1 × 116.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
67
Nets
52
Pads
191
Tracks, vias
452, 39
Pours
2
Routed
Yes
KiCad
KiCad 7 (file 20221018)
Created
25 Feb 2023
Updated
15 Jan 2026

Overview

DIY Uncertainty is an open-source printed circuit board by oamodular, from the oamodular/uncertainty repository on GitHub. It is a 2-layer board of 52.1 × 116.8 mm with 67 parts on 52 nets, routed with 452 tracks and 39 vias.

It is built around the SN74HCT125DE4 and L7805CV. Its parts include 19 resistors, 11 diodes, 11 connectors, 5 ICs and 1 capacitor. It belongs with the SAM D and SAM boards of this library.

Main components

2

README

README.md

Uncertainty is now OSHW! both the software and the hardware!

This readme needs to be updated to reflect this and to talk about the many other languages that people have used to create new firmware for Uncertainty. Right now I just want to say that the 4hp DIY version of Uncertainty is still a work in progress. It's been built, but we're in the process of trying to figure out why it doesn't work. The 2hp SMT version of Uncertainty is the one that we sell here.

What remains below is the previous readme. It contains the pinout for Uncertainty's Seeeduino Xiao RP2040 and some example Python code…

Hack Uncertainty for fun and profit

Uncertainty's firmware is open-source and easy to swap with a humble USB-C cable. You can write your own firmware in C++, MicroPython, CircuitPython, and probably a bunch of other languages. It's startlingly easy to work and this document will outline the whole deal. Let's go…

Uncertainty’s Heart

We’re working with the mighty RP2040, a dual-core 133 MHz arm processor that is just a silly amount of power for outputting gates. Heck, you can easily overclock to over 300 MHz. Really hoping people make some messed up things.

Uncertainty’s I/O

  • one CV input that can recognize signals -5v to +5v (resolution is functionally close to 10-bit, so there probably isn’t quite the precision for v/oct)
  • eight +5v gate outputs that each have their own LED (if you turn on the gate, you turn on the LED; they can’t be decoupled)
  • a three pin I2C connector (this feature is experimental and largely untested)

To access this I/O use the following pins. You can use other pins, but they won’t work. I don’t know why you’d use other pins. Use these pins:

Pin #
CV input26
Gate 127
Gate 228
Gate 329
Gate 40
Gate 53
Gate 64
Gate 72
Gate 81
I2C SDA6
I2C SCL7

How to reinstall the default firmware

You hold down the boot button when you plug in the USB-C as described in the Getting started section. Then you drag uncertainty.uf2 onto the RPI-RP2 disk. It should then unmount. All set! The same works for any .uf2 firmware.

Parts

67
QtyValueFootprintReferences
10PinHeader_1x02_P2.54mm_VerticalConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalXP, XP1, XP2, XP3, XP4, XP5, XP6, XP7, XP8, XP9
10PinSocket_1x02_P2.54mm_VerticalConnector_PinSocket_2.54mm:PinSocket_1x02_P2.54mm_VerticalXJ, XJ1, XJ2, XJ3, XJ4, XJ5, XJ6, XJ7, XJ8, XJ9
9AudioJack2Import Library:Socket-3.5mm THT-Thonkiconn PJ398SM-12J1, J2, J3, J4, J6, J7, J8, J9, J11
81KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR1, R3, R6, R10, R13, R15, R17, R19
8300Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR2, R4, R9, R11, R12, R14, R16, R18
8LEDImport Library:LED-THT Red Angle130-L-47XECD1, D2, D3, D6, D7, D8, D9, D11
3100KResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_HorizontalR5, R7, R8
31N5819Diode_THT:D_DO-41_SOD81_P7.62mm_HorizontalD4, D5, D10
2SN74HCT125DE4Import Library:Quad Bus-Tri-State Quad Bus non-inverting THT-SN74HCT125NE4 U1, U5
122uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC1
1Conn_01x03_PinConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ5
1L7805CVPackage_TO_SOT_THT:TO-220-3_Horizontal_TabDownU3
1L78L33ACZTRPackage_TO_SOT_THT:TO-92U4
1SeeeduinoXIAOImport Library:Microcontroller-XIAO RP2040U2
1~Import Library:Connector-2x5 2.54p THT-861400102YO9323LFJ10

More from oamodular/uncertainty

1
  • 2 layers41.4 × 110.3 mmUncertainty, the printed circuit board in 3D

    Uncertainty

    oamodular/uncertainty

    This readme needs to be updated to reflect this and to talk about the many other languages that people have used to create new firmware for Uncertainty.

    51 parts43

Similar boards

  • 2 layers55 × 90.8 mmSlider, the printed circuit board in 3D

    Slider

    DusterTheFirst/rocketry

    🚀 Thrust Vector Controlled Model Rockets

    33 parts22GPL-3.0
  • 2 layers100 × 80 mmRti, the printed circuit board in 3D

    Rti

    cceh/rti

    Reflectance Transformation Imaging

    58 parts15
  • 2 layers377.2 × 318 mmThree phase bridge, the printed circuit board in 3D

    Three phase bridge

    arcoslab/open-coroco-legacy

    COmpliant RObot COntroller is a free software project aiming to create an impedance controller based on a stm32 microcontroller using bldc motors and strain gauges.

    105 parts6
  • 2 layers127 × 91.5 mmAccumulator Board, the printed circuit board in 3D

    Accumulator Board

    formulaslug/fs-3-schematics

    Electrical Design Repository for fs-3 schematics and PCBs

    110 parts5
  • 2 layers100 × 60 mmLopielle, the printed circuit board in 3D

    Lopielle

    andreasimonetto/lopielle

    MIDI synth based on Yamaha OPLL FM synthesis sound chip (YM2413)

    49 parts2
  • 2 layers162.6 × 123.2 mmTo print, the printed circuit board in 3D

    To print

    anorimaki/selfbalancing-robot

    A buck converter to generate the 5V power rail would have been a better choice because it would be more efficient (extending battery life) and eliminate the need of a second battery (the circuit could be plugged with…

    124 parts2
  • 2 layers100 × 200 mmH Bridge BLDC, the printed circuit board in 3D

    H Bridge BLDC

    l4m4re/H_Bridge_BLDC

    Simple experimental H bridge BLDC controller

    131 parts2CC-BY-4.0
  • 2 layers35 × 28 mmVolvo240pcb, the printed circuit board in 3D

    Volvo240pcb

    pddenhar/Volvo_240_Info_Display

    OLED dashboard module for the Volvo 240 displaying battery voltage, speed, and RPM.

    18 parts2

Questions

How big is the DIY Uncertainty PCB?

It measures 52.1 × 116.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the DIY Uncertainty use?

67 parts, built around the SN74HCT125DE4 and L7805CV. 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 DIY Uncertainty KiCad files?

From the oamodular/uncertainty repository on GitHub, at the commit this page was made from: the board is hardware/4hp-diy-uncertainty/DIY Uncertainty.kicad_pcb and its schematic hardware/4hp-diy-uncertainty/DIY Plate/DIY Plate.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the DIY Uncertainty design in my own project?

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