---
title: DIY Tungsten‑Tube Lamp with Arduino Control
siteUrl: https://logzly.com/brightlightlabs
author: brightlightlabs (Bright Light Labs)
date: 2026-06-16T15:22:14.778524
tags: [tungsten, arduino, diylighting]
url: https://logzly.com/brightlightlabs/diy-tungstentube-lamp-with-arduino-control
---


Ever walked into a room and felt the light was just a little too harsh or too flat?  In 2024, with LED everywhere, the warm glow of a real [vintage tungsten‑tube lamp](/brightlightlabs/diy-guide-build-a-vintage-tungsten-tube-lamp-for-contemporary-lighting-design) feels like a secret club.  Building your own gives you that vintage feel and the satisfaction of saying “I made that light myself.”  Let’s dive in and get a tungsten‑tube lamp humming under Arduino’s watchful eye.

## What You’ll Need

- **Tungsten tube** (a 150 W halogen or a vintage 100 W tube works well)  
- **Arduino Uno** (or any compatible board)  
- **Logic‑level MOSFET** (IRLZ44N is a solid choice)  
- **Power supply** – 120 V AC mains (be sure you’re comfortable working with mains)  
- **Heat‑sink** for the MOSFET (the tube will draw a lot of current)  
- **Breadboard and jumper wires**  
- **Resistors** – 10 kΩ pull‑down, 220 Ω for the LED indicator (optional)  
- **Push‑button or potentiometer** (to vary brightness)  
- **Enclosure** – a metal or heat‑resistant box to hold the electronics  
- **Screwdriver, wire stripper, soldering iron**  

Safety gear: insulated gloves, goggles, and a small fire‑extinguisher nearby.  I learned the hard way that a stray spark can turn a hobby project into a kitchen fireworks show.

## Understanding the Basics

### Tungsten Tubes 101

A tungsten tube is basically a glass envelope filled with inert gas and a thin tungsten filament.  When you run current through the filament, it heats up and emits a continuous spectrum of light that looks natural to the eye.  Unlike LEDs, the filament’s resistance changes with temperature, so you need a way to control the current safely.

### Why Arduino?

Arduino gives you a cheap, programmable way to switch the tube on and off, dim it, or even make it pulse to the beat of music, similar to converting a classic tube into a [smart LED lamp](/brightlightlabs/turn-a-classic-tungsten-tube-into-a-smart-led-lamp-a-stepbystep-guide).  The board itself can’t handle the high voltage or current of a tungsten tube, so we use a MOSFET as a solid‑state switch.  The MOSFET takes the low‑voltage signal from the Arduino and lets the high‑current AC flow to the tube.

## Step‑by‑Step Build

### 1. Prepare the Power Side

1. **Cut the mains cord** and strip the ends.  You’ll have a live (brown), neutral (blue), and earth (green/yellow).  
2. **Connect the live wire** to one side of the MOSFET’s drain through a socket that will hold the tube’s base.  The other side of the socket goes to the tube’s other contact.  This creates a simple series circuit: live → MOSFET → tube → neutral.  
3. **Mount the MOSFET on a heat‑sink**.  A 150 W tube can push several amps; the MOSFET will get hot fast.  Use thermal paste and a decent sized sink.

### 2. Wire the Arduino Side

1. **Tie the MOSFET’s source** to the neutral line of the mains.  This gives the MOSFET a reference point for switching.  
2. **Connect a 10 kΩ resistor** between the MOSFET’s gate and source.  This pull‑down resistor keeps the gate at 0 V when the Arduino is not driving it, preventing accidental turn‑on.  
3. **Run a jumper** from an Arduino digital pin (say D9) to the MOSFET gate.  Add a 220 Ω resistor in series if you want an LED indicator that lights when the lamp is on.

### 3. Add a Control Interface

- **Push‑button method**: Wire a momentary push‑button between 5 V (Arduino’s VCC) and the gate pin.  When pressed, the gate sees 5 V, turning the MOSFET on.  
- **Potentiometer dimmer**: Connect a 10 kΩ potentiometer as a voltage divider between 5 V and ground, feeding the middle wiper to the gate.  Use Arduino’s `analogRead()` to read the voltage and `analogWrite()` (PWM) to modulate the gate via a MOSFET driver circuit.  For simplicity, the push‑button version is enough to get the lamp glowing.

### 4. Write the Arduino Sketch

```cpp
const int lampPin = 9;      // MOSFET gate
const int buttonPin = 2;   // optional push button
bool lampOn = false;

void setup() {
  pinMode(lampPin, OUTPUT);
  pinMode(buttonPin, INPUT_PULLUP);
}

void loop() {
  if (digitalRead(buttonPin) == LOW) {   // button pressed
    lampOn = !lampOn;                     // toggle state
    delay(200);                          // debounce
  }
  digitalWrite(lampPin, lampOn ? HIGH : LOW);
}
```

Upload the code, and you have a simple on/off switch.  If you want dimming, replace `digitalWrite` with `analogWrite` and map the potentiometer reading to a PWM value (0‑255).

### 5. Test Safely

1. **Double‑check all connections** with a multimeter.  Make sure the MOSFET gate is not floating.  
2. **Plug the mains** into a GFCI outlet (ground‑fault circuit interrupter).  Turn the power on and press the button.  The tube should light up with a warm amber glow.  
3. **Feel the heat** after a few minutes.  The tube and the MOSFET will be hot; ensure the enclosure has ventilation.

### 6. Enclose and Finish

Mount the Arduino, MOSFET, and wiring inside the metal box.  Drill a hole for the tube’s socket and another for the control button or potentiometer.  Seal any gaps with heat‑resistant silicone to keep dust out.  I like to label the wires with colored tape – red for live, blue for neutral – so future me doesn’t have to guess.

## Tips and Troubleshooting

- **Flickering?**  Check the MOSFET’s gate voltage.  A weak gate drive can cause the MOSFET to hover in its linear region, leading to flicker and extra heat.  Adding a gate driver (a small transistor) can give a cleaner 0‑5 V swing.  
- **Tube won’t light?**  Verify the tube’s contacts are clean and the socket is tight.  A loose connection can look like a dead lamp.  
- **Overheating MOSFET?**  Increase the heat‑sink size or add a small fan.  You can also switch to a MOSFET with a lower on‑resistance (Rds(on)).  
- **Noise on the mains?**  Use a small metal‑oxide varistor (MOV) across the live and neutral lines to suppress spikes.  It’s cheap insurance.

## Wrap‑Up

Building a DIY tungsten‑tube lamp with Arduino control is a rewarding blend of old‑school lighting and modern micro‑controller magic.  You get the nostalgic glow of a filament and the flexibility to program it any way you like.  Remember, safety comes first – treat the mains like a live snake and never work on a powered circuit.  Once you’ve got it running, you’ll understand why engineers still love a good hot filament.  Light up your workspace, your studio, or just a cozy corner, and enjoy the warm, steady glow that only a tungsten tube can give.  For anyone setting up a desk or studio, consider the principles of [low‑glare home office lighting](/brightlightlabs/designing-low-glare-home-office-lighting-practical-tips-for-engineers-and-makers) to keep eyes comfortable while you tinker.