Keyboard Builders' Digest
Save 5% at MKUltra! Code: KBDNEWS [all coupons]
Keyboard Builders' Digest / Tips & Tricks

Forward voltage calculations

Some hard numbers and experiments for those who'd like to try their hands on matrices utilizing the voltage drop across diodes to eliminate ghosting.
Published January 1, 2000

This is a dump of my measurements and experiments. I wanted to figure out the required forward voltage of the diodes, the threshold voltages for LOW and HIGH, etc. Will tidy it up later but reference it from some posts so here it is.

The following measurements were taken at 23°C room temperature (this may be important with these matrices):


KB2040 experiment 2022-05-06, 23°C(!)

  • G->RAW (closed (skip voltage regulator)) 5.127V
  • G->RAW (open) 4.871V
  • G->3V 3.277V
  • G->D2 (pulled up) 3.270


  • DP832 laboratory power supply
  • Common ground + PS out connected directly to D2 of an RP2040 on a Adafruit KB2040.
  • Plotting LOW/HIGH in Mu with 0.01 delay in code.
  • Starting from 3.270, the voltage was decreased/increased by 0.001V until the signal stabilized.
  • I waited 60 sec until the value (H/L) read on the pin was totally constant: plotted by 0.01 sec this means 6,000 consecutive measurements without a single outlier.


  • Vhigh min: 1.388V
  • Vlow max: 1.283V

So no man's land range is: 1.39-1.28V

Btw, according to the RP2040 datasheet (3.3V):

  • V_IL(max)=0.8V
  • V_IH(min)=2V
  • V_HYS=0.2V

Empirical part

Trying 1/2/3/4 diodes with a switch.

1N4148 V_F=0.61-0.62 according to the diode function of my multimeter. When in a circuit, it was rather 0.7V.

1->2.66 2->2.05 3->1.44 Damn... 1.3 kellene...

1N4001? 0.7V

1->2.570 2->1.870 3->1.170 Yay!!!


1N4007: is this also 0.60-62V?! 1->y 2->y 3->triggers very rarely, almost never (0-2/10)

1N4148: 0.60-61V... 1->y 2->y 3->triggers very rarely, almost never (0-2/10)


(Conclusion, this direction doesn't work well. Use pullup instead.)

Fordítva: pulldown és feszkót neki! Ez így menne egyáltalán?

1N4148 (0.60-61V?)

1->y 2->y 3->y 4->triggers rarely (2/10)

1N4007 (0.62V?)

1->y 2->y 3->y 4->triggers a lot! (?)

It turns out you can't simply add up the individual forward voltages. Connecting the diodes results in slightly less cumulative drop than you'd expect for some reason (it may be an error in my measurement):

1N4148 0.614+0.623=1.215 0.614+0.623+0.608=1.773 0.614+0.623+0.608+0.615=2.287-2.426

1N4007 0.612+0.622=1.223 0.612+0.622+0.608=1.750 0.612+0.622+0.608+0.615=2.293

Pro Micro 5V Atmega32u4

  • raw: 4.727 (through voltage regulator, J1 NOT closed)
  • vcc: 4.678
  • high pin: 4.625


  • High: >=1.449
  • Low: <=1.405

1N4148 V_F=0.61-0.62

0: 4.625 1: 4.015 2: 3.405 3: 2.795 4: 2.185 5: 1.575 6:

4.625-1.405=3.220 /3=1.071V

Ikeji's Vf measurement method

It seems the forward voltage is dependent on the actual current so you can't really measure it with the multimeter's diode mode.

Instead, you should measure the voltage drop in a similar circuit you want the diodes use in:


KB2040/RP2040, 3.3V

  • G->D2 (pulled up) 3.270V
  • Vhigh min: 1.388V
  • Vlow max: 1.283V
  • No man's land range: 1.39-1.28V

Monitoring triggers and measuring Vf with multimeter:


  • 1x->y (0.4674V)
  • 2x->y
  • 3x->triggers rarely, almost never (0-2/10) (1.406V)
  • 4x->n (1.861V)


  • 1x->y (0.4836V)
  • 2x->y
  • 3x->triggers rarely, almost never (0-2/10) (1.436V)
  • 4x->n (1.909V)

To be continued...

Published on Sat 1st Jan 2000. Featured in KBD #0.

Did you like reading this post?

Donate to keep this project alive


Nose pads as rubber feet

Nose pads as rubber feet - suggested by jmding.

Pantofle case

The Pantofle is a WIP machined acrylic case by u/ENDU97 for Sofle PCBs.

Dactyl flex PCBs

Open-source flex PCBs by janaka1 for Dactyls with adjustable row curvature.

Milling/casting stepped keycaps

A video by keymacs about milling and casting twin-Alps mount stepped keycaps.

Improved square matrix

The improved square matrix is actually a round-robin matrix handling the same number of switches – but with less diodes.

Soldering a YC8 connector

A video tutorial on soldering the YC8 detachable connector by actionspacecake.