SmorgasBoard V1: a Build-it-Yourself Multi-Function Electronics Tester
by ItsNotRocketScience in Circuits > Arduino
99 Views, 0 Favorites, 0 Comments
SmorgasBoard V1: a Build-it-Yourself Multi-Function Electronics Tester






The SmorgasBoard is a DIY multifunctional meter that combines four tools in one:
- A debounce tester for mechanical keyboard switches and buttons
- A resistance meter (accurate within 50 Ω from ~50 Ω to 2000 Ω and within 800 Ω from 2001 Ω to 50,000 Ω)
- A battery internal resistance (IR) tester, supporting up to 5 V batteries
- A battery charge meter up to 5V
It's designed to be simple, compact, and useful on any workbench. With its 3D-printed case featuring print-in-place flip-out feet, it's easy to build and easy to use.
I personally use it to check resistor values when prototyping, test the debounce time of switches while building my own mechanical keyboard firmware, and checking the charge of batteries when building battery-powered projects.
All 3D printed components were designed in Fusion 360, sliced with Bambu Studio, and printed with a Bambu Lab P1S in white PETG.
I named it the SmorgasBoard after a smorgasbord buffet, because it has so many functions, like a smorgasbord has many dishes.
Supplies
- Arduino Uno R3 (I used an Elegoo Uno R3, so any brand should work)
- 16 Pin LCD screen with pre-soldered headers
- 1 1N4148 diode
- 1 Potentiometer
- 1 Digital button
- 1 2K Resistor
- 1 5K1 Resistor
- 2 M-F Jumper wires
- 26 M-M Jumper wires
- 830 Pin Breadboard
- A small screwdriver or pry tool
- (Optional) 3D Printer (I used a Bambu Lab P1S, but any printer with a print bed at least 200x200mm will work)
- (Optional) PETG Filament (only if 3d printing the case)
- 9V battery with barrel jack or USB-B to USB-A cable (usually called a printer cable)
- A computer for the Arduino IDE and compiling the code
Making the Circuit

- Place down the LCD on the breadboard as shown in the photo.
- Bridge the positive rail to the positive on the other side, then repeat for the negative rails.
- LCD setup
- Connect pin 1, or VSS to GND
- Connect pin 2, or VDD to 5V
- Connect pin 3, or VO to the output side of the potentiometer
- Connect pin 4, or RS to Arduino pin 12
- Connect pin 5, or RW to GND
- Connect pin 6, or E to Arduino pin 11
- Leave pins 7 to 10, or D0, D1, D2, and D3 unconnected
- Connect pin 11, or D4 to Arduino pin 10
- Connect pin 12, or D5 to Arduino pin 9
- Connect pin 13, or D6 to Arduino pin 8
- Connect pin 14, or D7 to Arduino pin 7
- Connect pin 15, or A to 5V with a 220Ω resistor
- Connect pin 16, or K to GND
- Potentiometer setup
- Connect the left leg to 5V
- Connect the right leg to GND
- Connect the top leg to pin 3, or VO on the LCD
- Button setup
- Connect one leg to GND
- Connect another one on the same side to Arduino pin 4
- Probe setup
- Connect an unused segment of the breadboard to Arduino pin 2.
- On the same vertical line as the wire to pin 2, connect it to 5V via a 2000Ω resistor
- On that vertical line, place one M-F jumper wire with the casing on the F side taken off
- On that same vertical line, place the 1N4148 diode with the cathode facing away from the probes.
- Connected to the diode on a different line, connect a wire to Arduino pin A0
- Place another M-F wire with no casing on the F side on GND, preferably close to the other wire
- Power (only if using an external battery pack without a barrel jack or USB type B connector)
- Connect one wire to GND, which connects to the black wire on the battery pack
- Connect another wire to VIN, which connects to the red wire on the battery pack
- Power (only if using a 9v battery with barrel jack adapter)
- Connect the adapter to the 9v battery
- Plug the barrel jack into the circular port on the Arduino
- Power (only if powering it through USB)
- Connect the USB port on the Arduino to a USB-B to USB-A cable, then plug the cable in to a power supply
Coding and Testing
Copy-Paste the Arduino code into the Arduino IDE, then select your board, then hit upload. you should see the LCD say Switch/Res tester RREF=2K D2/A0, then Mode: Debounce Tester. Push the button to change modes. When testing batteries, make sure the wire connected to the resistor and diode (the voltage divider circuit) is connected to the POSITIVE side of the battery. Otherwise, it could damage the circuit and battery. Also, only use 5v batteries or less, or else you could kill the Arduino.
Downloads
OPTIONAL Only If 3D Printing the Case
- Download the .f3d files if you want to edit them, or you can download the .stl files if you just want to 3d print them as they are.
- Load them into your slicer, and make sure that the layer height is under .24mm, otherwise, the parts may not fit together well
- I used grid infill, but you can use whatever infill you want, except you must use a strong infill for the main base, as if you do not, the print-in-place legs will snap off when you try to remove the supports. I used Support Cubic in Bambu Studio, and it worked great.
NOTE: the top case only works with very low profile wires like shown in the pictures, and makes it very difficult to assemble. If you have trouble getting the lid on, I would recommend only using the base and Arduino cover.
OPTIONAL Case Assembly
Remove all the supports before placing the circuit in the case, then add the top that covers the Arduino.