Build · Home battery

Turn an Action Floor Lamp into a Victron State of Charge Indicator

I turned a cheap Action floor lamp into a live Victron State of Charge indicator using a Wemos D1 mini microprocessor. The lamp connects to the VRM portal over Wi-Fi to display battery capacity with a red minimum zone, a main color bar, charging animations, and a manual dimmer knob.

By RobbertPosted

Action vloerlamp met Victron integratie? Live zicht op je Soc. VRM integratie #victron #thuisaccu

Playing loads the video from YouTube.

5.9k views on YouTube · Open on YouTube (Robbert DIY projects)

I wanted to build a live Victron State of Charge lamp using an affordable floor lamp from Action. The lamp uses addressable LEDs, so I can control each LED individually to show my exact battery level in the living room.

To make this accessible to everyone without programming, I pre-exported the code into a bin file that you can flash directly through a simple web tool. I designed and 3D printed a custom weighted foot filled with sand to hold the microprocessor and a potentiometer for manual dimming.

After configuring the Wi-Fi and VRM credentials via a web portal hosted on the Wemos D1 mini, the lamp successfully displays battery data. I also added features like a red zone for minimum state of charge, a fade effect, and a charging animation. Version 2 will bring faster updates and local network integration.

Steps

  1. Step 1: Action lamp details

    I use an Action LED lamp for this project, which is a Gruendig corner lamp with 60 LEDs. It costs 18 euro and is available at Action, Praxis, and online so everyone can easily get one.

    The lamp design includes a foot and two stackable middle pieces. Each piece has a piece of LED strip that connects internally, making one long LED bar when you slide them together.

  2. Step 2: Included USB adapter

    The lamp comes with an included USB adapter. This adapter has a normal USB port on one side and a USB-C port on the other side.

  3. Step 3: Flashing the Wemos D1 mini firmware

    I use a Wemos D1 mini, which is a tiny 4 euro microprocessor that you can program via your computer. To keep it super easy without needing a full programming environment, I exported the code into a bin file. You can flash this firmware onto the microprocessor using an easy website called espstool.spacehun.com.

    I plug the Wemos into the computer using a USB cable. The LED flashes once so I know it works. I click connect in the browser, choose the device, select the bin file, and click program to upload the firmware. Once finished, I unplug the microprocessor and it is ready to run the Victron lamp firmware.

    What I used

    ItemAmountNotes
    Wemos D1 mini1Microprocessor
    USB cable1For connecting to computer
  4. Step 4: Preparing the LED strip and wiring

    I take the LED strip and remove the original foot. Inside, I find the original controller that works with the remote control to generate color patterns. There are three wires inside: a red 5V plus cable, a black minus cable, and a white data cable. I need to solder longer wires to these to connect them to the new controller.

    The original lamp foot cannot house the new microprocessor because it has inner raised bands that leave too little space. Instead of building an external box, I decide to 3D print a new, sturdy foot. I fill this printed foot with sand to save filament and give it enough weight so it stays stable on my desk.

    • Red: 5V plus cable

    • Black: min cable

    • White: data cable

    What I used

    ItemAmountNotes
    LED strip1From the Action lamp
  5. Step 5: Assembling the printed foot and testing electronics

    I take the bottom part of the lamp and place it into the top of the 3D printed foot. Three wires come out of the bottom of the rod, and I solder them to the microprocessor. I solder the 5V cable, the ground cable, and the D2 cable, which is used for communication between the microprocessor and the LED strip.

    After soldering these three cables, I do a first test by plugging a USB power cable into the microprocessor. It boots up, and the bottom starts flashing blue to show that the firmware is active.

    What I used

    ItemAmountNotes
    USB cable1For power supply testing
  6. Step 6: Configuring Wi-Fi and Victron VRM settings

    To link the microprocessor to my VRM, I need a VRM installation number, a Victron email address, and a password. You can find your installation number in the VRM settings or as a six-digit number in the VRM URL. When I plug in the power, the bottom LED flashes, and a Wi-Fi portal becomes active.

    I open my phone's Wi-Fi settings and connect to the unsecured network named RTVP floorlamp. I select router management to open the web page hosted by the Wemos. I configure my home Wi-Fi name and password, enter my VRM email and password, and fill in my VRM installation ID.

    What I used

    ItemAmountNotes
    Smartphone1To connect to Wi-Fi portal
  7. Step 7: Sensoring private data

    While configuring the Wi-Fi and VRM settings, I need to sensor my private data. I do this to avoid publishing my personal info on YouTube.

  8. Step 8: Setting up display preferences and saving config

    In the web portal, I set the Red zone minimal state of charge. If your battery system maintains a minimum of 20 percent, you type 20 here so the bottom part of the bar turns red up to that level. Below that is the main state of charge bar color, which is set to color 9 for blue by default, or 5 for green.

    I also configure the fade pixels option, which is set to 7 by default so the color transitions smoothly over about 10 centimeters instead of a hard line. Finally, I enable the charge animation, which sends a white wave across the bar every 10 seconds when solar power is coming in. I click save, the data is stored on the microprocessor, and it successfully connects to the VRM.

  9. Step 9: Adding and wiring the potentiometer

    I take a potentiometer to control the lamp intensity and to trigger a factory reset if needed. Looking from the back, the far left and right are the plus and minus connections, and I solder cables to them. I solder the white wire to the 3.3V pin on the Wemos and the gray wire to the ground.

    As a final wire for the potentiometer, I solder a wire from its middle pin to the A0 analog input on the Wemos. This allows the analog input to measure a variable voltage from 0 to 3.3V to determine the knob position and adjust the light intensity.

    What I used

    ItemAmountNotes
    Potentiometer1For dimming and factory reset
  10. Step 10: Final assembly of the lamp housing

    I thread the original micro USB power cable through a small hole in the back of the foot. I tie a knot in the cable so it cannot be pulled out, and solder the red wire to the 5V input on the Wemos and the black wire to the ground. Then I position the Wemos inside the hole.

    I screw the potentiometer into a small hole in the cover lid, secure it tightly with a nut, and click the matching knob onto the potentiometer. I close the cover using four small black computer case screws. Finally, I attach all the full-length segments of the lamp together.

    Tip

    Tie a knot in the USB cable inside the foot so you can never accidentally pull it loose.

    What I used

    ItemAmountNotes
    Micro USB cable1Original power cable
    Computer case screws4Black screws for the cover
  11. Step 11: Call to action

    I hope you really like this project. If you have made one yourself, please send me your photos. Leave your questions or comments below so I can answer them, and I hope to see you in the next episode.

  12. Step 12: Takeaways

    • You can turn an inexpensive Action floor lamp into a live Victron battery state of charge indicator.

    • Flashing the Wemos D1 mini microprocessor is made easy using a web-based tool and an exported bin file.

    • Filling the 3D-printed foot with sand provides weight and stability while saving filament.

    • The web portal allows you to configure your Wi-Fi, VRM credentials, minimum state of charge, bar color, and charging animations.

    • A potentiometer connected to an analog pin provides manual dimming and a factory reset function.

Everything I used

ItemAmountNotes
Wemos D1 mini1Microprocessor
USB cable1 + 1For connecting to computer; For power supply testing
LED strip1From the Action lamp
Smartphone1To connect to Wi-Fi portal
Potentiometer1For dimming and factory reset
Micro USB cable1Original power cable
Computer case screws4Black screws for the cover

Project Result and Future Plans

The Victron floor lamp is now complete and fully operational. The potentiometer lets you adjust the light intensity, and turning it 100 percent closed before restarting triggers a factory reset to change Wi-ase settings. If left untouched, it waits 5 seconds on startup for a portal connection before using previous settings.

There are multiple methods to connect this, and a version 2 is coming. Version 2 will integrate local home network control for faster updates, meaning you won't rely solely on the Wi-Fi VRM server.

Questions from YouTube viewers

Asked in the comments under the video, answered by Robbert.

Can I adjust the length of the LED strip in the code?

I will add a pixel length setting in version 2 so you can match it to the strip length you are using.

Is the charging animation in real time?

It currently updates every 5 minutes and plays an animation only when it reads a rising state of charge. Version 2 will have fully live updates every second.

What resistance value should the potentiometer be?

The resistance value does not matter in this case because a digital voltage is varied between 0 and 3.3 volts.

Back to Home battery

Guides and calculators for the systems in this project.