- Buying
- The concept
- The PCBs
- The modules
- Supplies
- Supply from ATX/SFX
- Supply from XT60/Barrel
- Supply from Meanwell PSU
- Supply from Bosch 18 V Battery
- Lab PSU fixed
- Lab PSU variable
- Oscilloscope DSO138
- Resistor decade
- Component tester
- Raspberry Pi
- Display
- Electronic Load
- Signal generator
- Audio amplifier / signal tracer
- TS100 Soldering station
- Tips and tricks
This is a low cost, modular elctronics lab system for hobbyists. The customizable modules include fixed and variable power supplies, measurement tools, component testers and much more. Everything in here is done with open source software, including FreeCAD for all the 3d printable files and KiCAD for the PCBs. I have made a set of modules already and am in the process of creating many more. Raw PCB project files, Gerbers and FreeCAD projects are all uploaded here for your customizing needs, while the finished modules are uploaded to Prusaprinters. Please be sure to upload any remix you do as it might be useful for others and especially myself!
The system features a set of backpanel bus PCBs as well as panel breakout PCBs. While the backpanel bus is not neccesary, it keeps the system modular, hot swappable and tidy. You can have the gerbers manufactured for cheap at your favorite chinese PCB house or just shoot me a message. I might have spares.
Finished modules for printing yourself for any module can be found here in the Prusaprinters collection. For most of the modules a printbed of 160x160mm and 175mm of height is sufficient, but the ATX and SFX module require print bed sizes of up to 250mm width (Prusa MK2 and up dimensions). I printed all of the modules in PLA and just to speed things up i used a 0.6mm nozzle but that is not required at all.
If you like my work please consider supporting my caffeine addiction!
All PCBs as well as 3D printed parts are now stocked at Tindie!
The system consists of 3 basic sizes of modules, 100mm, 150mm and 200mm. For the 100mm and the 150mm frame there is a backpanel bus that interconnects the modules together for power delivery. The 200mm frame uses two of the 100mm PCBs.
For the modules we usually use one of the 3 base sizes and punch holes in the upper and/or lower front panel to suit our mounting needs. This can be done in FreeCAD by modifying the BaseXXX file or a finished module that best fits your new module. Alternatively you can also just edit the .stl files in the editor of your choice.
The backpanel bus is equipped to transfer 24 V, 12 V and 5 V (and GND, duh), which we feed into the system by one of the "Supply" modules. At the moment i made an SFX-PSU supply module (supplying 12 V and 5 V) and one with a 5.5mm barrel jack and XT60 jack (Using 24 V supplies and step-down converters for 12 V and 5 V). Both of these supply modules feature the PowerFeed PCB to feed into the backpanel bus. Because 24 V is rarely needed for most of the modules, the easiest and safest way to use this system is the SFX module, which just plugs into the PowerFeed PCB.
Obviously you can just run wires between the modules and omit the backpanel bus, but it will probably make me a little sad.
If you are using the bus, individual modules just plug into each other to form a single unit.
With 2 little printed clips you can secure the modules together so they don't seperate during the occasional earthquake or lab-ragequit.
Almost none of the 3d printable pieces require supports. The frame of each module has integrated supports at one position, that you will need to cut away after printing:
All of the PCBs can be cheaply manufactured in China (trust me, it's easier and cheaper than you think) or sometimes i even have spares left, if you shoot me a message.
This is the basic backpanel bus to link individual modules together. Though optional, it greatly enhances your experience in building this system.
Parts:
- 2pcs 2.54mm Pinheader right angle 2x8 female
- 2pcs 2.54mm Pinheader right angle 2x8 male
This is the main infeed to connect your power supply to the backpanel bus and feed into the modules. It packs jacks to plug in your SFX supply, screw connectors for external fuses, and a breakout for the SFXs standby switch. Alternatively you could wire up your supplies directly to the spots marked as 24V, 12V and 5V respectively without using ATX connectors.
Using a PC supply, 12 V are supplied through either a 4 or 8 pin CPU header power plug. You cannot use the 8-pin GPU plug on your high end ATX PSU.
Parts:
- 24 Pin 4.2mm ATX Connector standing
- 8 Pin 4.2mm ATX Connector standing
- 6pcs 5.08mm 2 Pin screw terminal (The blue cheap ones, optional though)
Here we have the basic front panel breakout with industry style screw-plug connectors and USB jacks. The USB Jacks have a 0805 footprint in line with the 5 V rail so you can optionally install a tiny polyfuse in there. The data lines of each USB port are broken out so you can either use it for normal data transfer, or do whatever the best quick charge port configuration on the data lines is today. (for example bridging D+ and D- to put old Android phones into quick charge mode)
Parts:
- 2pcs 5.08mm pcb screw terminal block 4 pin
- 2pcs standing vertical USB Ports
- 2pcs 0805 polyfuse 1.1A (Or your desired amperage)
No matter what Infeed you use, you should aim for around 100 - 150 W of power in general. I use a 24 V, 150 W power supply to infeed into my system. For PC supplies you should watch for the individual rail current, as a PSU might show 5 A of 12 V, but split over 5 rails, so if you only use one rail you will only get 1 A out of your PSU.
The easiest way to supply power to your EleLab is to use a regular ATX or SFX computer power supply. Using the PowerFeed PCB you can plug in the 24pin and 8pin connectors of your PSU directly into the backpanel bus. The module is preconfigured to use fuses for the 12 V and 5 V rails. You could install a switch for the PowerON PSU signal but i usually just bridge it completely so i switch the EleLab on and off by the main power switch on the back of the PSU.
Make sure the fan of your PSU is exposed as in the picture as not to overheat your poor PSU.
In the picture you see me build the SFX version of the module, the ATX version is printing at the time of writing this and is not tested yet.
Parts:
- PowerFeed PCB
- 2pcs screw in fuse holder panel mount
- SFX PSU of your choice
- 5pcs M2x8 self tapping screws
With this supply module you can use any external 12 V or 24 V Power supply you want. You could even plug in some batteries with the XT60 jack! This module however needs some beefy DC-DC step-down converters to create the 5 V rail, as well as the 12 V rail if you are using a 24 V supply. There is a printable tray that just snaps into the bottom, capable of carrying two of these types of step down converters:
These are readily available from china for a few bucks if you search for "step-down XL4016" on ebay. XL4016 is the name of the IC but it's the closest to a part number we get.
One of the converters will be set to output 5 V and one to output 12 V, when you supply the module with 24 V DC. This will give you all 3 voltages on the backpanel bus. The modules can also be configured for current limiting, which I set to 2 A each.
Parts:
- PowerFeed PCB
- 3pcs screw in fuse holder panel mount
- 2pcs DC-DC Step down converters XL4016
- 9pcs M2x8 self tapping screws
Using the same step down converters, but this time using an internal PSU, the Meanwell module directly integrates a high quality supply into your EleLab. Since you will need to wire up mains voltage i can NOT show you how to do this. The Module uses an IEC C14 plug with integrated switch and fuse. Can't really find an exact name to google for.
The Meanwell supply should be a 24 V one, preferably the 150 W model, using the step down converters to step the voltage to 12 V and 5 V respectively.
Parts:
- PowerFeed PCB
- 3pcs screw in fuse holder panel mount
- 2pcs DC-DC Step down converters XL4016
- 9pcs M2x8 self tapping screws
- 4pcs M3x5 metric screws
- Meanwell RS-150-24
- IEC C14 Plug with switch and fuse
With this module you can use your 18 V Bosch batteries to supply a portable lab system. It also uses the same step down converters for rails of 18 V - 12 V and 5 V. Additionaly you will need two locking blade edge connectors. These are widely used in the car industry for confectionable plugs. The part number I found was “8KW048056-033” for a 6.3mm blade with 2.5mm² wire capacity.
Please note that 18 V Bosch batteries do NOT have over discharge protection built into the pack and can take damage if you run them below their specified "empty" point! Always watch the meter on your battery and make sure to use them in a healthy range.
The edge connectors are slid in from the inside of the case and lock into place.
Hint: see also standalone version
Parts:
- PowerFeed PCB
- 3pcs screw in fuse holder panel mount
- 2pcs DC-DC Step down converters XL4016
- 9pcs M2x8 self tapping screws
- 2pcs “8KW048056-033” connectors
- Bosch 18 V battery
The first actually usable module is a power breakout for your 5 V, 12 V and optionally 24 V rails. Using cheap chinese banana jacks with 12mm OD all rails can be accessed. In the front we use the Frontpanel_a PCB to have connections beside the banana jacks. Which terminal you connect to which rail is only dependend on your preferences. Obviously make sure to not reverse polarity on the USB ports or risk frying something.
Here you can see the spagetthi wiring behind mine:
Be sure to bend over your connectors as seen here as there is not extremely much room for the upper front panel to slide down:
The banana jacks are intentionally uncentered to make room for labeling on the left. I did not have time to create printable labels yet but i will get to it.
Parts:
- 12 or 18pcs banana jacks
- Bus100 PCB
- Frontpanel_a PCB
- 10pcs M2x8 self tapping screws
Similar to the fixed supply we use a Frontpanel_a PCB here. The two variable step down converters (ebay is your friend again, TBDnameOfStepDown) are fed by either the 24 V or 12 V rail, depending on your infeed capabilities. Under each converter i put two banana jacks as the output, but also in parallel i wire up the industrial screw-plug connectors in the front to be outputs as well. If you are feeling adventurous you can also but the USBs behind the converters, but be vary that you can potentially but up to 24 V through the USB port then if you tell the converter to do it. The USB Jack will not be a happy charging port but rather something for debugging.
Parts:
- 2pcs DPS30005 or similar step down converter. You can get these in all voltage ranges under different names.
- 4pcs banana jacks
- Bus100 PCB
- Frontpanel_a PCB
- 10pcs M2x8 self tapping screws
The DSO138 is a great "Babies first oscilloscope". This super cheap thing is awesome if you don't wanna shell out serious cash if you are going to look at simple waveforms once per year and don't really care about accuracy a lot. Oftentimes i just wanna know IF something is even executing code and don't care HOW it is doing it so i often still fire up the DSO138.
You have to remove the old power jack of the DSO138 PCB and feed in power through a 13mmx19mm rocker switch out of the 12 V rail for this to fit. 4 x M3 screws with nuts fix the DSO PCB into the panel from the back. The BNC jack is also removed, a new frontpanel screw-in BNC jack is installed in the front, and wired up to where the original jack was. This is best done with a shielded cable (though i doubt you will see much difference with a DSO of this quality..)
Parts:
- DSO138 kit
- 12mmx19mm rocker switch
- Bus150 PCB
- 4pcs M3 screws and nuts
- 6pcs M2x8 self tapping screws
Not really needing a backpanel this can safely be placed as the last piece of the EleLab as it does not even require power. Please follow your favorite guide on how to wire up your decade.
The 2 ends of the resistor decade are wired to two banana jacks. Also i installed 2 potentiometers into the panel, giving me some more flexibility. These are also just wired straight into 3 banana connectors.
Closing this module is tricky as well. You will need to NOT snap in the decade before sliding the front panel down:
A schematic on how to wire the KSA-2 switches is provided in PDF form, as well as a KiCAD project.
The high number of switch contacts will cause a significant resistance error in the low range of 0-100R
, but for values above 100R
the accuracy raises greatly. The bad performance of the lower values skews the full range average / median, so seperate values for different ranges are provided.
Range | Average Error % | Median Error % |
---|---|---|
1R - 100R | 16.697 | 9.890 |
100R - 10M | -0.265 | -0.395 |
Full range | 16.697 | 9.890 |
These raw values have been recorded with a Keysight 34461A using 4-Wire resistance measurement:
Target [R] | Actual [R] | Error [R] | Error [%] |
---|---|---|---|
1.000 | 2.044 | 1.044 | 104.400 |
2.000 | 3.016 | 1.016 | 50.800 |
3.000 | 4.036 | 1.036 | 34.533 |
4.000 | 4.992 | 0.992 | 24.800 |
5.000 | 5.985 | 0.985 | 19.700 |
6.000 | 6.986 | 0.986 | 16.433 |
7.000 | 7.990 | 0.990 | 14.143 |
8.000 | 9.024 | 1.024 | 12.800 |
9.000 | 10.063 | 1.063 | 11.811 |
10.000 | 10.989 | 0.989 | 9.890 |
20.000 | 20.995 | 0.995 | 4.975 |
30.000 | 30.974 | 0.974 | 3.247 |
40.000 | 40.937 | 0.937 | 2.342 |
50.000 | 50.910 | 0.910 | 1.820 |
60.000 | 60.910 | 0.910 | 1.517 |
70.000 | 70.869 | 0.869 | 1.241 |
80.000 | 80.774 | 0.774 | 0.968 |
90.000 | 90.730 | 0.730 | 0.811 |
100.000 | 101.004 | 1.004 | 1.004 |
200.000 | 200.762 | 0.762 | 0.381 |
300.000 | 300.620 | 0.620 | 0.207 |
400.000 | 400.670 | 0.670 | 0.168 |
500.000 | 500.468 | 0.468 | 0.094 |
600.000 | 600.120 | 0.120 | 0.020 |
700.000 | 699.932 | -0.068 | -0.010 |
800.000 | 799.801 | -0.199 | -0.025 |
900.000 | 899.823 | -0.177 | -0.020 |
1000.000 | 999.342 | -0.658 | -0.066 |
2000.000 | 2000.430 | 0.430 | 0.022 |
3000.000 | 2998.200 | -1.800 | -0.060 |
4000.000 | 3999.820 | -0.180 | -0.004 |
5000.000 | 4998.400 | -1.600 | -0.032 |
6000.000 | 5998.460 | -1.540 | -0.026 |
7000.000 | 6996.200 | -3.800 | -0.054 |
8000.000 | 7993.540 | -6.460 | -0.081 |
9000.000 | 8991.460 | -8.540 | -0.095 |
10000.000 | 9957.250 | -42.750 | -0.428 |
20000.000 | 19904.500 | -95.500 | -0.478 |
30000.000 | 29845.600 | -154.400 | -0.515 |
40000.000 | 39806.000 | -194.000 | -0.485 |
50000.000 | 49754.000 | -246.000 | -0.492 |
60000.000 | 59723.000 | -277.000 | -0.462 |
70000.000 | 69684.700 | -315.300 | -0.450 |
80000.000 | 79651.800 | -348.200 | -0.435 |
90000.000 | 89589.100 | -410.900 | -0.457 |
100000.000 | 99555.100 | -444.900 | -0.445 |
200000.000 | 199155.000 | -845.000 | -0.423 |
300000.000 | 298855.000 | -1145.000 | -0.382 |
400000.000 | 398422.000 | -1578.000 | -0.395 |
500000.000 | 498035.000 | -1965.000 | -0.393 |
600000.000 | 597631.000 | -2369.000 | -0.395 |
700000.000 | 697278.000 | -2722.000 | -0.389 |
800000.000 | 796824.000 | -3176.000 | -0.397 |
900000.000 | 896647.000 | -3353.000 | -0.373 |
1000000.000 | 993580.000 | -6420.000 | -0.642 |
2000000.000 | 1987110.000 | -12890.000 | -0.645 |
3000000.000 | 2979190.000 | -20810.000 | -0.694 |
4000000.000 | 3974220.000 | -25780.000 | -0.645 |
5000000.000 | 4970280.000 | -29720.000 | -0.594 |
6000000.000 | 5965340.000 | -34660.000 | -0.578 |
7000000.000 | 6958820.000 | -41180.000 | -0.588 |
8000000.000 | 7953500.000 | -46500.000 | -0.581 |
9000000.000 | 8948330.000 | -51670.000 | -0.574 |
9999999.000 | 9944400.000 | -55599.000 | -0.556 |
Parts:
- 7pcs Thumbwheel switches KSA-2 with the ending caps
- 9pcs each of 1, 10, 100, 1k, 10k, 100k and 1M Ohm reistor
- 2pcs 9mm potentiometers of your choice, i used 5K B and 25K B
- 8pcs banana jacks
- Bus100 PCB
- 4pcs M2x8 self tapping screws
You would not believe how much utility you will get out of these things. They are also very cheaply ordered from ebay, screw into the upper panel from the backside and can identify almost all of the components you throw at it. Usually these are fed by a 9 V battery and while you could till do that and have a battery lying inside the module i just feed it from the 12 V rail. Don't know about any longterm damages though.
I wired 3 banana jacks right to the easiest to reach points numbered 1, 2 and 3.
Parts:
- Component Tester module
- 3pcs banana jacks
- Bus100 PCB
- 9pcs M2x8 self tapping screws
Raspberry Pi carrier with USB / Ethernet / HDMI and GPIO broken out, including HAT compatible front plate. I use a "GPIO screw terminal hat" as the front plate to easily break out all GPIOs, but still be able to connect a GPIO extension cord down to a breadboard, or stack more HATs on top.
The Pi is powered through the bottom side of the GPIO header since the top side is taken by the GPIO extension cord. 5 V from the back panel is directly applied through a rocker switch.
Make sure to plug in the GPIO extension as shown. This is basically the only way it will be long enough and also the only way where the new header in the upper panel will be right side up and not mirrored. I recommend mounting a breakout / extension HAT as shown to have easy screw terminal access to all GPIO pins, but still be able to plug HATs on top of it. Mounting the HAT now, screwing in PCB standoffs and THEN hot-snotting the extension cord in place from the back makes mounting much easier.
You will also need an angled mini-HDMI to HDMI cable. Make sure it is angled the correct way since it won't fit otherwise.
Parts:
- Raspberry Pi
- HDMI Female - Female front panel connector
- GPIO extension cord male-female about 150mm
- Bus100 PCB
- 12mmx19mm rocker switch
- angled short mini-HDMI to HDMI cable
- optionally - GPIO breakout board of your choice
7 Inch HDMI Display with touchscreen. HDMI and USB broken out.
WARNING: currently, to use the same frontpanel, a USB-A plug is used for the touchscreen. Usually you would use a Micro USB, USB C, or USB-B header for this breakout. To actually use the touchscreen for now you would have to use an USB-A to A cable, until someone made a frontpanel for USB-C or Micro USB (might be me idk). If you are using the Frontpanel_A be sure to NOT populate the fuse, so you disconnect the 5 V rails of both USB devices.
You will need a short angled HDMI cable and an angled USB-Micro cable like shown, as straight cables won't fit in the frame. The HDMI cable connects directly to a female-female HDMI front panel mount, while the USB cable is cut open and soldered to the Frontpanel_A.
The display is powered with 5 V through a rocker switch, soldered directly to the shown points on the board. I used the GND of one of the Micro USB plugs, and 5 V is applied to the middle of the display switch. You could also cut open a second USB cable and use that, but I did not want to waste these precious angled cables
This modules works great in conjunction with the RPi module!
Parts:
- Waveshare 7 inch HDMI Display C
- 2 x Bus100 PCB
- Frontpanel_A PCB with only one USB jack mounted
- 12mmx19mm rocker switch
- 8pcs M2x8 self tapping screws
- 6pcs M3x15 metric screws with nuts
- female-female HDMI front panel connector
- angled HDMI cable
- angled micro USB cable
30 W electronic load module, don't know everything it can do yet, but you'll figure it out. This module actually uses the fan opening in the back of the frame since it does generate some heat (duh). It does have 4 wire measurement but I chose to omit this here to avoid confusion. For loads this small and modules with this low accuracy I did not see the benefit. The 4 wire measurement is therefore connected on the inside to the 2 terminals directly:
Parts:
- WEL3005 or similar electronic load module
- Bus100 PCB
- Frontpanel_A PCB
- 8pcs M2x8 self tapping screws
- 30mm fan
4-20mA / 2-10 V / PWM signal generator. All contacts are broken out to banana jacks as well as the front panel in the order of your choice.
Parts:
- WSFG-06 or similar signal generator module
- Bus100 PCB
- Frontpanel_A PCB
- 8pcs M2x8 self tapping screws
Mono speaker with tiny amplifier mainly for audible signal tracing. Music won't sound good on this device so please don't expect a workshop audio system in your lab. Left and right inputs are shorted together and the right input on the PAM is pulled to GND so we only use the left input in mixed-down-mono configuration.
The speaker is only glued in to accomodate all speaker sizes, so any speaker with below around 80mm diameter will work. 3-4 W is a typical power for speakers of these sizes.
Since this device is only mono, you should connect both channels together to one PAM input. For this, use two resistors (anything between 3k3 and 10k is probably fine) as shown here.
I put the output of both resistors to both channels so it does not matter which channel I use for the speaker output. I also put some heatshrink over the two resistors for some mechanical stability.
Parts:
- PAM8403 amplifier module with switching pot
- Bus100 PCB
- Some speaker - 75mm outer dia in my case
- 1/4 (6.35mm) Inch stereo jack
Soldering "station" for TS100 soldering irons. The Iron can be kept in an ugly holder up top, powered by the XT60 plug below. The upper front plate is done with two snap-in buckets since the buckets are too deep to be sled in from the top fully. The upper bucket is meant for a soldering sponge and the lower bucket can keep your solder wire. I would either print the upper one in something heat resistant like PC or just use some aluminium tape on the inside so you don't burn the plastic with the hot tip.
The XT60 plug is snapped in from the front after soldering some heavy wires to it. Afterwards you can solder the wires to the Bus100 PCB (24V).
The skateboard bearing is just pressed in the top. If it's too loose you can also glue it in.
Both buckets snap in from the front as the last item.
Make sure to use this module "more to the left" of your EleLab, since it draws quite a lot of power, which you probably don't want to travel through 20 modules.
Parts:
- Bus100 PCB
- 608ZZ skateboard bearing for the holder
- XT60 female plug
You can keep the wires nice and short if you put together the modules as follows: