Main Content

Hi everyone. If you’re like me you, probably have a bunch of spare sensors lying around either from incomplete projects, or that you bought on a whim for some reason or another. I was inspired by Patrick Panikulam’s DIGITAL MULTI-FUNCTION MEASURING TOOL to take some of my spare sensors and combine them into a digital multi-tool. It’s like a Swiss Army Knife, but for sensing. I mainly focused on incorporating sensors that I thought were useful in a workshop setting (length, angle, temperature, etc), although I did include an extra I2C port, and a few spare digital pins if you want to add a sensor of your own.

Here are a list of the multi-tool’s features / modes:

Bubble style digital level with exact angle output
Bullseye style digital level with exact angle output
Digital protractor (like a drawing compass) with exact angle output
Laser range-finder with max range of 3.5 meters
Detachable measure marker for the Laser range-finder
Rolling wheel style ruler
Contact tachometer
Non-Contact IR tachometer
Non-Contact IR thermometer (Wide angle, not great for point sources)
Laser Pointer
Powered by rechargeable LiPo battery
Solar panel for passive recharging
Magnets for mounting / securing the multi-tool
All combined into a 3D-printed, pocket-sized case, 4.4 “x 1.6” x 1.8” (11.2mm x 40.3mm x 46.8mm).

I wanted to make the tool as easy to assemble as possible, so I focused on using sensors and components that were widely available (with any luck you might already have some of them :) ) and also created a custom PCB to connect everything. Almost all of the electronic parts are through-hole mounted, making soldering easy. The only exception to this are resistors, where I had to use SMD 0805 packages. These can still be soldered pretty easily by hand, but I would not recommend this project to someone who has never soldered before.

Also the multi-tool modular, meaning that if you don’t need a feature or sensor, you can simply leave it off the PCB and change a single line of code to remove it.

I’ve tried to make this Instructable as beginner friendly as possible. If you’ve ever uploaded code to an Arduino you should be good to go, and if not, I hope my instructions will be clear enough. If you have any questions, please leave a comment and I will try my best to answer.

Please note that due to some of the sensors sensitivity to infrared light, and the display’s lack of back-light, the multi-tool is intended to be used in a shaded environment, not in direct sunlight.

Below I list the electronics, supplies, and tools needed to make the multi-tool. For the electronics, I provide a link to where you can purchase each part, however, many of the components are fairly common and can probably be found for less at places like Ebay, Aliexpress, etc (I try to provide Amazon / Digikey links so that you can buy as much in one place as possible). The only exception to this is the VL53L1X Time-of-Flight (TOF) distance sensor, which you must buy from Pololu; other versions of the board have the SCL and SDA lines reversed and the sensor IC in a different location.

You can find the code, PCB, and 3D print files at my Github: here


Wemos D1 Mini V3.1.0 Link (must be V3.1.0, earlier versions have onboard LED in wrong place)
0.93” SSD1306 I2C OLED Display Link (there are a few versions of this with different hole placement, all of them should work. Yellow/blue color split not required)
A micro USB cable that supports data transfer (for programming)
5mm Mouse Encoder Link
VL53L1X Time-of-Flight Distance Sensor Link
5mW Laser Diode Link
2N2222 Transistors x2 Link
MLX90614 Temperature Sensor Breakout Link
MPU-6050 IMU Breakout Link
1000mah 1S LiPo Battery Link (must be at least 1000mah, 50 x 34 x 5.2mm are the maximum dimensions)
TP4056 LiPo charger board Link (there are a few versions of this out there, make sure the LED placement matches the one linked)
53x30mm 5V solar panel Link
220, 1k x 2, 10k x 4, 47k x 2, and 100k 0805 SMD resistors Link (set at link contains 20 of each type)
940nm LED and IR Photodiode Link (Make sure it you use a photodiode, not a phototransistor)
2Position 3P SPDT Panel Mount Slide Switch, 5-6mm knob length Link
6x6x9.5mm tactile switch x 3 LinkLink (second link is the value pack I used, first is a direct purchase. If you buy elsewhere be sure to get the through-hole version, not SMD)
2.54 Male Header Pins Link
Heat shrink tubing Link or electrical tape (optional)
26Ga stranded wire Link
Female 2.54 mm Crimp Terminals and 2-pin 2.54mm Connector Link (optional, linked kit includes crimping tool, male / female headers, and some wire)
MCP23008 Link
LM358P Link
10K Pot Link
Custom PCB:

To connect all the electronics together, and make assembly easier, I designed a custom PCB (the attached Gerber zip file) Unless you can make PCB’s locally, you’ll have to order some from a prototype PCB manufacturer. If you’ve never purchased a custom PCB before, it’s very straight forward; most companies have an automated quoting system that accepts zipped Gerber files. I can recommend JLC PCB, Seeedstudio, AllPCB, or OSH Park, although I’m sure most others will work as well. All the default board specs from these manufactures will work fine, but make sure to set the board thickness to 1.6mm (should be the default). The board’s dimensions are 107.5 x 31mm. Board color is your preference.

Other Parts:

M2 x 4mm Screws x9
M2 x 8mm Screws x4
6x3mm Magnets x 12 Link
Adhesive Backed Velcro Strips Link
1/16” Diam. Metal Rod Link (need ~8mm)
3mm Diam. Clear Acrylic Rod Link (need ~20mm)
25mm x 1.5mm Square Clear Acrylic Tiles Link (need 3)
Tools and Adhesives:

FDM 3D printer, 1.75mm filament, 0.4mm nozzle
Wire Clippers
Wire Strippers
Soldering Iron with a fine tip
Tweezers (optional)
Small Needle-Nosed Pliers
PH#0 Screwdriver
Hot Glue Gun + Hot Glue Sticks
Plastic Glue Link
Hacksaw or Large Diagonal Cutters (for cutting 1/16” metal rod)”

Link to article