A weekend project for Microsoft Teams
I built a small desk light that follows my Teams status: green when I'm free, red when I'm in a call, purple for do not disturb. Here's everything you need to make your own: the 3D-print files, the parts list, the firmware and the Mac app.
Every status, in colour
No buttons to press and nothing to remember. Join a call and it turns red. Hang up and it goes back to green.
One USB cable straight into your Mac. It's powered by the same cable.
A small menu-bar app shows your status and lets you set brightness or pause the light.
The light follows Teams on its own. No sign-in, and no IT admin approval needed.
Take it apart
A 12-LED ring sits behind a translucent plate, with the logo raised in front so it stands out against the light. Drag to turn it, and pull it apart to see inside.
On real desks






Build your own
You'll need a 3D printer, a soldering iron and a Mac. No coding: the firmware and app are ready to use.
These are the parts I used. Any equivalent works. The ring needs to be 50 mm across with 12 LEDs so it fits the insert.
As an Amazon Associate I earn from qualifying purchases. Buying through these links costs you nothing extra and helps keep this project going.
Four parts. The colours matter more than the settings: the plate has to let light through, and the logo should block it so it stands out.
Three wires from the LED ring to the RP2040-Zero. Leave the ring's OUT pad unconnected.
| LED ring pad | RP2040-Zero pin | Notes |
|---|---|---|
| 5V | 5V | Through the 1N4001 diode, stripe towards the ring |
| GND | GND | |
| IN | GP29 | Optional 330 Ω resistor in line |
.uf2 file from micropython.org.RPI-RP2 appears..uf2 file onto that drive. The board restarts by itself.main.py and copy it onto the board from Terminal:
pip3 install mpremote
mpremote cp ~/Downloads/main.py :main.py + reset
Specs
FAQ
Not yet. The app runs on macOS only.
Usually not. The app reads your status from Teams on your own Mac, so there's no admin approval or app registration. Some company-managed Macs block apps from reading other apps' data. If yours does, the light shows a dim blue instead of a status.
No. You flash two ready-made files and install an app. The fiddliest part is soldering three wires.
Plug it straight into the Mac, not a hub or dock, since some only pass power. Check the data wire is on GP29. Check that a white dot runs round the ring when you plug it in. If it doesn't, the firmware isn't running.
No. If the app can't tell your status, it shows a dim blue pulse rather than guessing.
Not right now, but I'm working on it.
My parts
These are the ones in my lights. Several come in multi-packs, so you'll have spares or enough to build a few.
As an Amazon Associate I earn from qualifying purchases.