Ljusmaskinen is a portable light rig attached to a backpack. It’s made for complementing Festmaskinen.

It’s got 4x4W RGBW spots and 4x10W COB LED’s mounted on a rig made out of aluminium profile.


The chassis is build up of 2020 aluminium profile and can be folded to take up less space when transporting.

The main section is the Y-arms that is made to carry mini spot lights.
The arms can be raised and lowered, also the whole Y can be raised and lowered.

PAR Cans

The body of the PAR Cans is a small product intendet for GU10 halogen lamps.
Black 230v Mains Pulse PAR16 Birdie Can Parcan Lantern DJ Stage Spotlight
My idea was to tear out the halogen part and exchange it with LED’s instead. It worked out okay, but it was very fiddly.

The LED assembly is basically these layers bolted together:

The LED assembly pretty much replaces the old halogen GU10 base. Then the whole back of the PAR can be mounted as before.

The angle of the 3 LED lenses titling inwards a bit, that means that the light beams overlap a bit. The natural tube shape of the PAR cans absorb any lights escaping the lenses which get rids of the halo-effect that so easily can occur.

PAR Can LED drivers

I went with a little unusual LED driver for this build. Since this is a battery operated product I didn’t want to limit the current with resistors and loose a lot of effect on them. Especially since effect of the LED is 1W per color channel.
I decided to limit the current consumption of each color of the LED by supplying it’s forward voltage from a buck regulator. By simply adjusting the voltage in the buck I could trim it to around 200mA per channel.
The extra potentiometers in the bucks would also give me the option of adjusting each color channel separate. That made the color calibration of the light so much easier.
I also find a cheap and available power cable; I used a ethernet cable. It comes in 4 twisted pairs with colors almost matching red (orange), green, blue and white(brown). According to Wikipedia a 24AWG ethernet conductor can handle 0.577A. The ethernet cable worked great, my current is about 200mA.

The maximum current rating on the LED’s is 350mA. I decided to put 3 of them in series at around 8V, that would also lower the current and make it easier for the ethernet conductors.

The PCB for the PAR lights consists of 4 Arduino Nano 328p that controls the PWM to RGBW for the 4 PAR cans. It also holds 4 buck converters for corresponding color.
The LED’s packaging have 8 pins that leads to separate anodes and cathodes on each color channel in the RGBW package. That is a little bit unusual, most packages have a common anode (positive) and separate cathode (minus) to control the LED on the low side.
My setup is a little bit unusual since i don’t limit the current via resistors but set the voltage per channel on the anode side. The 8 pin packaging allows me to have a separate voltage dependent on the color and still use simple N-channel mosfets to PWM on the cathode side.
I used 4 Arduino Nano because one of them don’t have enough PWM outputs. It was also what I had available at home at the time.


The big 10W COB LED’s goes in between the PAR cans and will act as a strobe and/or blinder.
COB LED Panel 120x36mm Warm White 112 LED 10W 12V is a powerful LED with a big aluminium back for sinking the heat from the 112 LED array.

The mounting was pretty easy with a couple of 90 degree aluminium profile and some screws. I also bended them outwards towards 135 degrees. This light rig will be around 3 meters up in the air, so aiming the blinder downward felt necessary.

DMX Reciver and COB LED Driver

The PCB for the COB LED’s also takes care of the DMX512 light control input. It’s based on a LightBoxNano which is populated with 4 N-channel mosfets and a Arduino Nano.
The LightBoxNano have a RS485 transceiver populated that enables it to receive DMX512. The transceiver is a ADM2687E which have a built in isolated dc-to-dc converter.
Many DIY DMX products completely forgets about the importance of isolation from the MCU side. A DMX bus can stretch hundres of meters in a installation and the probability of getting 230V on the DMX side is a real danger.
On most 230V mains powered devices transceivers solve this by bridging the isolated side with a transformer and AC power. But since this is a battery operated device we don’t have access to AC. The ADM2687E transceiver is around 4 times more expensive than the commonly found MAX485, but the ease of the DC-DC isolation makes it worth it.

I’ve extended the LightBoxNano with some protoboard to attach 2 12.5V buck converters for the positive side of the COB LED’s.
The same driver technique is used on the COBLED driver as the PAR can LED driver. I don’t want to waste energy as heat, and a simple adjustment on the buck’s potentiometer makes it easy to set the current.

The case is a rats nest

Power input, DMX, 4 cables to the COB LED’s and 4 ethernet cables with 4 pairs each goeas in to one case.
The mess is real.

The two LED drivers stack.

I used an older case for the LED drivers, the size was perfect but i got a lot of old holes. I’ve to find a cover for this. Maybe I’ll put a “Ljusmaskinen” logo here in the future to cover up the ugly parts.

Light Controller

I could have written some software for the MCU to run the lights, but that would make it hard to control and change in the future. Therefore I decided early on to use QLC+ for controlling the lights. It’s an awesome software that holds a professional grade for scene lighting. It’s also free, free as in freedom.
Using QLC+ I could program the lights easy and achieve total dynamic control.

But I needed a computer for running the software. I thought of a laptop, but the cable mess and potentially glitching DMX dongles in the backpack freaked me out.
I decided to use a Raspberry Pi, that way I could mount everything in a case and it would use very little power compared to a laptop.
A laptop will still be used for configuring QLC+, but at runtime it would be completely standalone.

The case holds a Raspberry Pi, a small buck converter to lower the input voltage to 5V and a DMX King USB dongle.
It also has a main power switch for cutting the power.

I’ve also attached a button and a two color LED as interface. Since I’m going to use a MIDI controller as input the USB connector can possibly glitch and then the QLC+program could potentially act up.
So a small Python script is listening for double click and triple click on the button and shows the status on the two color LED.
Double click will restart QLC+ and make all USB devices initialize.
Triple click will make a safe shutdown to the Raspberry Pi which avoids a corrupt SD card.

MIDI interface for controlling light

I usually control my light setups in QLC+ over OSC (Open Sound Control) over UDP. But a friend of mine use a MIDI controller and it makes the timing and control so much better. So I decided to invest in a Novation Launch Control XL.

But holding this big 239x239mm wide beast with one hand is hard. So I mounted a mount for my hand, this way I can hold the MIDI controller with one hand and adjust the knobs with the other.

Light controlling layout

To build a good light program is hard, especially when you want to build dynamic light patterns and have the ability to change them to music in real time.
A friend have taught me a new way of working with light programs and it gives so much dynamic control. It’s hard to explain in words, but you kind of working with colors and brightness separately. I kind of had this workflow earlier, but this is taking it to the next level.

My layout consists of a simple master dimmer for the par spots and another master dimmer for the blinders.
The main feature is pulses that can pulse to quarter, half , every, double, quadruple beat. The slider sets the level of corresponding beat.
Then I have a “Add Color” section that have standard RGBW fixed colors and a few animated color changes.
The “Subtract Light” section is super interesting! I can black out RGB values in different patterns like odd/even or randomized pixels.
Together it gives me great flexibility to my lighting and I can really express myself to music.

In the bottom row we can find buttons that pulses the blinders to corresponding beat.
To have blinders on all time looks really bright and boring. But I’ve invented a maximum duration setting for my blinders that makes the blinders to be on for a maximum time. Together with the longer flashes of example every 16 beat flash and a maximum duration of 200ms gives some fantastic rhythmic flashes.

Fun Will Now Commence

This was just a mad thought in my head that I acted upon. And I’m glad I did, it was so much fun!
It will really go great together with Festmaskinen, and I’m so hyped about the mobile raves the future holds.

Signs for our village camp at Borderland

Our camp at Borderland festival is named “The Elements”, and a nice sign will make it stand out.

I laser cut out the letters out of plywood, and the mounting holes in the back plate as well. I screwed in the letters with a few centimeter spacers between.

I made a nice control interface for setting light levels and modes of the sign. I encapsulated it in a great looking aluminium case with rubber seals for weather protection.
The control interface was also engraved by a fiber laser.

WS2812 LED strip was attached to the underside of the letters, aimed to reflect the light towards a light background that would diffuse the light around the letters.
And lastly the letters painted with corresponding colors to make the sign visible in daytime as well at night.

Alco Bong revisited

I previously made Alco Bong 9000, but it had some flaws. The alcohol chamber was too small and it need some volume to hold more alcoholic mist. It also run on a 6S LiPo battery that was stepped down to 24V.

So with the improvements in mind I started out on a new alco bong. I found a big beaker in a second hand shop and started out from that.

Another problem with the alco bong was that people who used it didn’t understand that they could release the vape-button. So by introducing a progress bar it would be more clear. I installed a analog volt meter and controlling it by PWM.

Because a non-LiPo-knowledgeable person would be using it I installed a battery pack holder using ordinary AA battery.

Prop Interactive Water effecet lamp

For the larp Do Androids Pray? we wanted to recreate the companys corridor scene from Blade Runner 2049 where some beautiful water light seemed to follow the persons who walked up the stairs.

I thought that it would be doable using multiple water effect light and dim them up when movement was detected.

I purchased some cheap water effect lamps of eBay and took them apart to inspect. The LED was hooked up to some mosfets, så I just removed the resistor leading to the original MCU and hotwired some leads to my own MCU.

I drilled out a small cut out for a 3 pin header an glued it into place and put a PIR module in.

The whole assembly kind of look like it’s original except an exposed PIR module.

Prop Sign “Rund” for the larp Do Androids Dream?

For the larp Do Androids Dream we needed a lot of small props to give a Blade Runner feeling of the scene.
Small lit up signs would give that Hong Kong look that is so common in Blade Runner. Carl Nordblom, the set designer, had some ideas about how the sign should look, and had found some sample pictures.

From the sample pictures I got an idea of how to produce a design. And from that idea I started to make a CAD-design.
The finished design ended up being almost exactly like the CAD-design.
Here is the Drawing of the Round Sign (Do Androids Dream).pdf

Small wooden block for holding a aluminium plate in a slot.

The wooden blocks attached on to a sheet of flexible PET plastic.
The sheet is bent around the round aluminum plate with the help of the slots.

The PET ring is transparent with a blue tint which would not be fitting in a light fixture. So we painted the PET ring in black to make it opaque.

Warm white 5050 LED strip was glued on to the aluminium plate.
9×6 strips with 54 LED’s on each side makes 108 LED’s in total
108 * 20mA = 2.16A
2.16A * 12V = 26W

The LED strips is driven by 12V that comes in from JST-connector.
But the sign is supposed to look like an old florescent light, so to give that look the light should look like it flicker occasionally.
I hooked up an N-channel MOSFET IRLML6344 and connected it to a Arduino Nano for timing the random flickering.

A big steel angle attached to the heavy aluminium plate of the sign, this is used for screwing the signs to a wall. Also the JST power connector, hidden in black heat shrink tubing.

In the outer sides of the sign round white acrylic plates will be inserted. They will rest against the wooden blocks and hold back by small sprints.
Each side of the sign is mirrored, so one sign have two faces.
The light is powerful enough to project through the white acrylic plastic. And with opaque paint on top will make a huge contrast perfect for a sign.

Flashbar for festival using sACN over WiFi with ESP8266

This flashbar, aka blinder, was used under a concert to give a blinding effect for the audience.

A mosfet driver is enabling the LED’s. The LED’s is 10W element, and there is 8 elements on the flashbar giving 80W of power.
It’s powered from an PC power supply.

The ESP8226 is running a small UDP server and listens for sACN packets. sACN is like DMX512, but over UDP instead of RS-485.
You can find the firmware here https://github.com/TimGremalm/FlashBar.

The LED’s are screwed down on top of a steel bar to transfer the heat.


Festivalljus – LED, Lens, Heatsink Assembly

Assembly Spotlight With Chassi 3D 1
One of the hardest things with this project is to solve the problem with the heating. 9 pieces of 3W LED tends to get very hot, 27W that have to be transferred to the air.

LED 3DLED Inverted 3D
If I bend the pins on the led I can make the LED’s go through the PCB. An alternative is to use a lot of small via’s under the LED to transfer the heat to the underside. But I think a direct contact with the heatsink will be more effective.

Assembly PCB with LEDs 3D Without Lens
Assembly PCB with LEDs BottomAssembly PCB with LEDs 3DAssembly PCB with LEDs SideAssembly PCB with LEDs Top

Assembly PCB with LEDs 3D With Heatsink Fan
Assembly PCB with LEDs 3D With Heatsink LensesAssembly PCB with LEDs 3D With Heatsink Side
A CPU cooler should be sufficient enough to transfer the heat out to the air. I don’t know if the fan is necessary.

The whole assembly will look something like this:
Assembly Spotlight With Chassi 3D 2Assembly Spotlight With Chassi 3D 3Assembly Spotlight With Chassi 3D 4

Optics Specification

Alco Bong 9000

This is an alcoholic bong, two ultrasonic elements forces the water into small particles that forms a mist. The elements is normally used for water in decorations or water humidifiers.

I got this old Ikea bowl from a second hand store. It holds the electronics for driving the ultrasonic elements, as well as an MCU to drive some leds.

There’s two systems that is powered from a single 6S LiPo battery.
The ultra sonic elements is apparently sensitive about over voltage and will fry if the voltage exceeds 24V. The first system consists of a buck that caps the fully charge voltage of 25.2V down to 24.0V. That system is activated by a momentary switch on the front.

The second system drives the RGB LED’s. A nice party bong should look good. A small Arduino Nano is driving some WS2812 RGB leds around the glass pitcher. A buck converter caps the voltage at 5V that is used by both the WS2812 RGB strip and the MCU.
The led lights is slowly breathing when the alco bong is idle, and rotates the color hue when in use.

The glass pitcher was glued on the bottom with epoxy and seemed to bound well with the wooden bowl.

Orkide Random – A IoT flower with pretty random power

A video posted by Tim Gremalm (@timgremalm) on

Probably the most random plant in the world, it fetches a “true” random signal and display pretty colors on a WS2812 addressable LED strip.
The seed is based on one of the best randomization generators; cosmic background radiation from random.org. Yet another Internet of Things device made out of the ESP8266, the dirt cheap powerful WiFi enabled microcontroller.