DIY Lab Workbench with RGB – For Electronics

 But why?

If you DIY (Do It Yourself), then you know as much as I do that not having enough space can really slam the brakes on progress. For the past 7 years whenever I needed to solder, build, or tinker with something of average size I had to either do it on my computer desk or on the floor.

My cat, Finn, is reason enough that I wouldn’t want to do anything at the desk.


I’ll walk you through the process of building your own DIY Workbench complete with adjustable LEDs!  (Preview Video Below)

Table of Contents

1. Materials
a. Desk
b. Electronics and Tools
c. Microcontroller and Lighting
d. Miscellaneous
e. Music

2. How To Build the Desk
a. Walk Me Through It Chuck
b. Setting Up the Microcontroller
c. Music

3. Conclusion



(Pricing may vary from the time I looked the prices up)
Source Item (Click for Link) Quantity Cost (USD)
HomeDepot 4in x 8in x 3/4in MDF 1 $24.97
HomeDepot 2in x 4in x 8in Pine 18 $2.52/e or $45.36
HomeDepot 4in x 8in x 11/32in Plywood 2 $13.13/e or $26.26
HomeDepot Clear Satin Polyurethane 1 $10.77
Amazon 2×4 Basics Workbench System 1 $69.99

Total for the Desk: $177.35

Electronics and Tools

(Pricing may vary from the time I looked the prices up)
Source Item (Click for Link) Quantity Cost (USD)
Amazon Aoyue Soldering Iron 1 $59.99
Amazon Tekpower DC Power Supply 1 $79.99
Amazon  Power Strip 12 Outlets w/ switch 1 $42.99
Amazon  Desoldering Pump and Braid 1 $5.99
Amazon  Flush Cut Wire Snippers 1 $4.97
Amazon Self Adjusting Wire Stripper 1 $18.43
Amazon  LED Assortment 50pcs 1  $8.99

Total for the Electronics and Tools:  $221.35


Microcontroller and Lighting

(Pricing may vary from the time I looked the prices up)

Order as much from Adafruit, they are usually cheaper but the shipping will add cost so get a bulk order. 

You only need ONE 7805, but at $0.75 a piece you should get at least 5!
Source Item (Click for Link) Quantity Cost (USD)
Adafruit N-Channel Power MOSFET 4 $1.75/each or $7 +shipping
Adafruit Arduino Mini Pro 5V 1 $9.95
Adafruit 7805 5v Regulator 5 $0.75/each or $3.75+shipp
Amazon 10k Rotary Pot 1 $7.44 for 1 pack/11pcs
Amazon (Many Options)  FTDI USB to TTL 1 $17.95
Amazon (Optional) Rotary Knobs 1 $6.94 for 1 pack/10pcs
(Any PCB)
RadioShack Dual Board 1 $1.30
Amazon  22Gauge Stranded Wire Kit 1 $20
Amazon  DC Power Jack 5.5mmx2.1mm 1 $5.80
Amazon 32″ Multi-Joint Desk Lamp 1 $17.99
Amazon 12V Power Adapter for LEDs 1 $9.99
Amazon LED Lights Kit 1 $19.99

Total for Microcontroller and Lighting: $128.10 + shipping/handling


(Pricing may vary from the time I looked the prices up)

Use your own judgement on what you want to use at your bench
Source Item (Click for Link) Quantity Cost (USD)
Amazon High-Temperature Hot Glue Gun 1 $22.99
HomeDepot 18-Gauge Steel Angle Joist 2 $0.58/e or $1.16
HomeDepot Alvin Self-Healing Cutting Mat 1 $36.83
HomeDepot  Velcro Ties 1 $10.17
HomeDepot  Zip Ties 1 $5.99
Amazon  6 Pack Stackable Storage Bins 1  $13.76
Amazon Artbin Storage Drawers 14.375 x 6 x 8.75″ 1  $15.71
Amazon Akro-Mils 20×10 1/4 x6 3/8″ Drawers 1  $19.63
Amazon Denatured Alcohol for Hot Glue Removal 1 $7.98

Total for the Miscellaneous Items: $134.22


(Pricing may vary from the time I looked the prices up)
Source Item (Click for Link) Quantity Cost (USD)
Amazon LU43PW Speakers (white) 1 $32.52
Amazon In-Wall Speaker Wire 50ft (Get Less) 1 $19.99
Amazon Power Strip 12 Outlets w/ switch 1 $42.99
Amazon 12V 2CH Mini Audio Amplifier for MP3 1 $9.60
Amazon RCA to 3.5mm for MP3 1 $4.59
Amazon 12V 2A Power Adapter 1 $6.99

Total for the Music Setup: $116.68

These are all the items – 
I’ve either been given/gifted/bought over these 7+ years as a DIYer
Total of Everything as of Writing This: ~$777.70

How to Build the Desk

Disclaimer: You can build this desk a multitude of ways! Credit goes to Joe Walnes, there is not much you can copy on this desk build since it comes as a kit (Basics 2×4 under desk pricing). But I do want to give credit to his post because it inspired me to do my own. The power bar on the bottom right is a great idea too because I just happened to have one of those laying around!

Check out Joe’s Post here:
As he did, I’m going to give a fairly rough outline of how I put the desk together.

Walk Me Through It Chuck

  1. Before building anything, read the conclusion it offers pointers on what you might do differently.
  2. Collect everything you will need, including tools, and find a large area with decent ventilation to work
  3. Determine how big you want your desk. I made my desk 7 feet x 3 feet and opted to make the shelves 7ft x 15 1/2 inches. The 15 1/2 inches is about the size of the 2×4 Basics Workbench System  shelf holders. (Seen Below)






I choose MDF (Probably shouldn’t have) as my table top, It’s really heavy!







4. Place the workbench legs (Black Plastic Pieces from the 2×4 basics kit) upright and in a position that you can visualize your desk. 

2×4 Example From HomeDepot’s Website

5. Begin cutting your 2x4x8. For assistance, view the online assembly manual or the one included with the kit.
There is a nominal size and an actual size. Use the actual size in your calculations.

NOTE: When I was cutting I ended up making the side arms slightly shorter so that it would fit 7ftx3ft. Take a peak on page 2 of the 2×4 basics assembly instructions

Do some prior planning to determine how you want your leg space. Take a peek at the photo below to see my design.

This is the same for both the bottom shelf and the middle section.







6. Once you have parts B, C, and D cut from the manual you can test fit it together. Careful not to overtighten the screws! The instructions have a formula for determining the length of your cross beam using Pythagorean’s Theorem, but I found it easier to test fit the section.
From the instructions:  (√ ((length – 3”) ² + (width – 3”) ²)) – 1.25”

7.  Measure and fit your top board/MDF. The MDF board I bought was also not a set 8ft x 4ft so make sure you’re measuring the size you want. In my case, it was 7ft x 3ft but the board itself was an inch extra on each size.

8. When placing the shelves I had the leftover ~1ft x 8ft piece of MDF to use as a backer plate.

9. I used 2×4 as the top shelf and supported it to the middle shelf using more 2×4. I used two pieces of 1×6 as the middle shelf (not listed in pricing), measured to size to fit between the two shelf holders.

10. Lastly, I used  Clear Satin Polyurethane as a top coat for the wood. You could optionally use stain on the other wood parts, but I like the natural grain look. To apply this I followed the instructions on the Polyurethane can and went over every surface with a fine 220grit sand paper. Do NOT use a drum sander. I wiped down the surface with a rag to remove excess sawdust and then proceeded to stain the surface with foam brushes (Not listed). I left it to dry for 3 hours and then sanded again with another 220grit sand paper. I was happy with the final product so I did not apply another top coat.

Setting up the Microcontroller

If you would like to create your own RGB lighting here’s a quick rundown on how I went about it.

1. Adafruit has a nice guide on how to go about using Arduino to create RGB setups.
Check it out here:

Pay extra close attention to the usage section of that guide:

2. Following the guide above I adapted it to add an auxiliary section of lights as well as making them adjustable with a potentiometer. Below is my code for doing so:

#define REDPIN 5 //main LED array
#define GREENPIN 6
#define BLUEPIN 3
#define ALTPIN 9 //alternate LEDS

int dimmerKnob = 0; //analog pin read of pin 0

int raw = 0; //variable for raw ADC value
int dimmerValue = 0;

void setup() {
  pinMode(REDPIN, OUTPUT);
  pinMode(ALTPIN, OUTPUT);

void loop() {

 raw = analogRead(dimmerKnob);
 dimmerValue = map(raw, 0, 1023, 1, 10); //mapping to divide the 10 bit ADC value (0-1023) into 10 equal sections

       analogWrite(REDPIN, 0);
       analogWrite(GREENPIN, 0);
       analogWrite(BLUEPIN, 0);
       analogWrite(ALTPIN, 0);
       else if(dimmerValue==2)
         analogWrite(REDPIN, 255);
         analogWrite(GREENPIN, 255);
         analogWrite(BLUEPIN, 255);
         analogWrite(ALTPIN, 255);
         else if(dimmerValue==3)
           analogWrite(REDPIN, 191);
           analogWrite(GREENPIN, 191);
           analogWrite(BLUEPIN, 191);
           analogWrite(ALTPIN, 191);
           else if(dimmerValue==4)
          { //50%
             analogWrite(REDPIN, 127);
             analogWrite(GREENPIN, 127);
             analogWrite(BLUEPIN, 127);
             analogWrite(ALTPIN, 127);
           else if(dimmerValue==5)
            {//40W Tungesten
               analogWrite(REDPIN, 255);
               analogWrite(GREENPIN, 197);
               analogWrite(BLUEPIN, 143);
               analogWrite(ALTPIN, 191);
             else if(dimmerValue==6)
                { //candle light   
                   analogWrite(REDPIN, 255);
                   analogWrite(GREENPIN, 147);
                   analogWrite(BLUEPIN, 41);
                   analogWrite(ALTPIN, 191);
              else if(dimmerValue==7)
              { //Green
                 analogWrite(REDPIN, 0);
                 analogWrite(GREENPIN, 255);
                 analogWrite(BLUEPIN, 0);
                 analogWrite(ALTPIN, 191);
                else if(dimmerValue==8)
                { //Red
                   analogWrite(REDPIN, 255);
                   analogWrite(GREENPIN, 0);
                   analogWrite(BLUEPIN, 0);
                   analogWrite(ALTPIN, 191);
                  else if(dimmerValue==9)
                  { //Blue
                     analogWrite(REDPIN, 0);
                     analogWrite(GREENPIN, 0);
                     analogWrite(BLUEPIN, 255);
                     analogWrite(ALTPIN, 191);
                    else if(dimmerValue==10)
                    { //Purple
                       analogWrite(REDPIN, 255);
                       analogWrite(GREENPIN, 0);
                       analogWrite(BLUEPIN, 255);
                       analogWrite(ALTPIN, 191);
          {//BLINK if error
             analogWrite(REDPIN, 255);
             analogWrite(GREENPIN, 255);
             analogWrite(BLUEPIN, 255);
             analogWrite(ALTPIN, 255);
             delay(1000); //pause for 1 second
             analogWrite(REDPIN, 0);
             analogWrite(GREENPIN, 0);
             analogWrite(BLUEPIN, 0);
             analogWrite(ALTPIN, 0);
 delay(17); 60Hz = 1/60 = 16.667ms

If you get the Arduino Mini, you’ll need the FTDI programmer in order to write code to it. The potentiometer is meant to select which setting you might want. You could play with the RGB values to create your own settings.

The code I’ve written varies from that of the Adafruit code because it doesn’t simply fade in and out of different RGB values. It also includes an alternate set of LEDs. Pin 3, 5, and 6 will go to the RGB MOSFETS, but PWM PIN 9 will go to another MOSFET that I chose to use as my top two LED lights. Just like the RGB MOSFETS, you will wire the +12v to the +12v supply, and wire the ground to the central pin of the MOSFET.

Once you’ve wired the project onto the PCB I found it fit well underneath one of the shelf holder arms that came with the 2×4 kit. It doesn’t matter which PCB you get, but if you plan on putting the project in there and having the potentiometer come out the side (Seen in the photo in the gallery below) you’ll want to get a PCB that fits within there. I measured that space to be about 2 1/4″Dx 3″ L x 1.5″ W

Here are some additional photos of the project!


You’ll notice I have a larger receiver as my audio amplifier. It was old and one I had laying around. If you look at the parts list I updated that to something cheaper that you could use and save space with!


If I had it to do all over, what would I change?

There isn’t anything that really sticks out to me. I couldn’t decide early on what type of table top to use. I did end up going with an MDF, but I read online that Pine would have looked better and lasted longer. For $25 we will see how long the MDF lasts. The best part is that the table top isn’t actually screwed to anything (the shelves are screwed to it) and that makes it easily replaceable. I did give the MDF that polyurethane coating so it should last a little bit longer even with me putting drinks on it.

7×3 isn’t a bad size, but the 2×4 basics did say they support up to 8ft desks. I’m glad I went with the 7ft option.

Consider raising the shelves. I’m going to get some drawers to put on/under the shelves. The drawers I listed in the materials section are small enough that they will fit under the shelves (approx 11.5″ from the surface to surface), but there are even nicer drawers that require 16-18″ heights. Maybe consider that when you are designing your shelves.



Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.