Monthly Update March 2022

glowingkitty
10 min readMar 3, 2022

Hey there! And welcome to another monthly update about my LED projects, what progress I made and what comes next.

The first assembled prototypes of my GlowCore and GlowCore Mini PCBs.

February has been a super exciting month for me. After I finished designing the first prototypes of GlowCore and GlowCore Mini — both ESP32 based boards for controlling LED strips, I ordered them and all the components I needed to assemble the prototype PCBs myself. And about 2 weeks later I hold them both in my hands and was fascinated.

The electronics components I ordered on LCSC, as well as the GlowCore and GlowCore Mini PCBs.

When it comes to the electronics components for the PCBs, I honestly expected a much larger package, considering that I ordered around 2.000 parts in total (around 42 different kinds). But since most of them have been resistors and capacitors in the small 0603 form factor (and those are by far not the smallest ones you can get), even 500 of them easily fit into a small anti-static bag.

GlowCore Mini stencil & GlowCore PCB with applied solder paste.

Assembling my first PCB

I then took my PCBs, stencils, and components to xHain — a local hackspace here in Berlin. And with some support from another member in the space, I then started to assemble my PCBs. The first step — applying solder paste correctly — was the most difficult one, at least for me as a beginner. But like most things, that’s only a question of knowing the right technique and getting some practice. One of the things I learned: instead of swiping multiple times with solder paste over the stencil — one should ideally only do it one single time. That massively reduced the problem of solder paste getting squeezed by the stencil into areas where it’s not supposed to be.

GlowCore Mini PCB and GlowCore PCB with placed parts

The most time-consuming part of PCB assembly however is of course placing all the components on the boards (especially for the GlowCore PCB, with around twice as many components as GlowCore Mini). This took a while, but already when assembling my second PCB I started to notice how this process becomes routine and has honestly some nice meditative aspect to it. Plus, the InteractiveHtmlBom script helped a lot in keeping an overview of what parts I already placed and where the next ones need to get placed on the board.

Interactive HTML BOM list for GlowCore, generated by InteractiveHtmlBom
GlowCore PCB after reflow oven, with some solder bridges

After placing all the SMD components on the board, the PCB now came for a few minutes in a reflow oven — which was set to a temperature curve that worked well for my solder paste. Now all the SMD components have been soldered to the PCB. And most of the soldering connections looked indeed perfect! However, there also have been some solder bridges (pins connected via solder, which shouldn’t be connected and can cause the PCB to not work or even get a short circuit). But as I learned, that problem was surprisingly easy to fix: just add some flux paste on the solder bridges and then slowly go with a soldering iron over those areas — and voila, the solder bridges are gone and everything looked the way it was supposed to!

Now the only remaining part was to manually solder the throw hole components to the board, clean up the PCB, and then it was finally time to upload WLED (the software that controls the LED strips) on the microcontroller, by simply connecting the USB-C port to my computer and uploading the firmware to the ESP32 microcontroller. Well… but that didn’t work on the first try. Turned out I had to install a driver for the USB to serial chip on the PCB, which allows the computer to talk to the ESP32 via the USB-C port on the PCB. But then — it worked! This was super exciting to see — the first PCB which I designed and assembled myself. And even better, the PCB worked completely as expected! Well, at least in the case of the GlowCore Mini PCB.

Nope… that power switch didn’t work. Need to redo that part again.

The GlowCore PCB however had some issues with the power switch. I accidentally selected a power switch slider that returns to its original state once the switch is released. In other words: when I turned the power switch off, it directly turned back on again. But while this is a super simple mistake (I just need to get a different kind of power switch… and read the datasheet properly before ordering it…), the slightly more complex problem however is that the charging LEDs have been randomly blinking. The reason? The part of my circuit that turns on/off the PCB (and connected LED strips) wasn’t designed correctly. Seems I misunderstood how MOSFETs work and need to redo that part of my PCB again.

“falstad”, a very useful electric circuit simulator

Thankfully some nice people on Discord made me aware of an electric circuit simulator that should help with building my power switch. And the explanation of another friend also helped me to better understand how MOSFETs work. So I am sure I will be able to fix the GlowCore PCB in the coming days.

The completely assembled prototype of GlowCore

GlowCore for everything?

But one of the things I also learned in February was that my original plan to use the GlowCore PCB in most of my LED projects doesn’t make much sense. Since I don’t plan on using batteries in most of my LED projects and therefore adding components to the PCB for supporting batteries would be both a waste of resources, money, and assembly time. Instead, I will make some further improvements to GlowCore and GlowCore Mini and design them as development boards, for people who want to play around with LEDs and build their DIY LED projects. And for my LED lamps I instead started to design custom PCBs for each LED lamp (all open-source of course).

This enables me to also optimize the PCBs for faster and easier assembly of the lamps and to make it easier for everyone to repair or modify them. One of my goals with those new PCBs is also to remove the need for wires as much as possible, for a cleaner and simpler design. Instead, I will connect multiple PCBs via connectors or solder connections, whenever it makes sense.

GlowTower & GlowLight

Previous GlowLight prototype, with four LED strips in the center.
New GlowTower and GlowLight PCB design, in development (but the square hole is missing in the smaller round PCB)

The floor lamp GlowTower and the desk lamp GlowLight will both use the same PCBs — the main PCB with all the components (with only small differences in what parts are placed on the PCB, depending on if it is for GlowTower or GlowLight) and a second small PCB for connecting the LED strips without the need of using wires. This way the four separate LED strips can be addressed as a single LED strip — which also saves some components but especially makes it easier to integrate the “Receiver Mode”.

Receiver Mode

An RJ11 port for “Receiver Mode”, next to USB-C and a DC connector for uploading software & power.

While WLED has the option to sync multiple ESPs and the connected LED strips via WiFi, this feature doesn’t work very reliable — at least when it comes to having the LED strips react perfectly in sync to the music. Therefore I add an RJ11 connector to every LED lamp where the connector can easily fit into, as a receiver port. But why an RJ11 port you might ask? I spend a lot of time thinking about this. USB-C as a receiver port was my first choice, but this would easily make people accidentally use the wrong port for the wrong purpose. And while this is unlikely to harm any devices, it’s still a confusing user experience. Plus: RJ11 cables are way cheaper, thinner, and make it easy to connect multiple LED lamps over multiple meters of distance. You can get a 10m RJ11 cable for 6 EUR or less online, but good luck finding a 10m USB-C to USB-C cable for less than 40 EUR.

And how will the “Receiver Mode” work? Whenever you connect a sender (more on that in a second) with an LED lamp as a receiver, then the internal ESP32 will be shut down and instead, the external LED signal will be forwarded. What’s awesome about this: the LED strips still get power like before, not from the sender. So you can easily connect LED lamps with hundreds of LEDs to a low power sender unit. Also: if you choose to code your LED animations and upload that code to the sender unit, you have an easy way to light up multiple LED lamps at the same time, without any complicated code tricks.

GlowTube

The new GlowTube PCB design (in development) and the previous GlowTube prototype.

The previous prototypes of GlowTube have been designed only as receivers, without any integrated microcontroller. But wouldn’t it be cool if every GlowTube can both be operated together with other LED lamps, but also run completely independently? It will be possible! With the new PCB design, created specifically for GlowTube.

GlowHub

The new GlowHub PCB design, for connecting up to 8 LED lamps.

But what about the sender unit for controlling the LED lamps? This is where the redesigned GlowHub comes into play. Equipped with eight RJ11 ports it can control up to eight LED lamps at the same time and keep them perfectly in sync (or let them glow separately with different animations if you like). This works with all of my projects with a receiver port: GlowTower, GlowLight, GlowTube, and future LED lamps. Of course, since all the LED lamps are open source — everyone can also integrate the “Receiver Mode” into their DIY LED projects. And to make this even easier, I will also add the “Receiver Mode” into the GlowCore and GlowCore Mini development boards.

And what’s next in March?

First I will make some more changes to the GlowCore and GlowCore Mini development boards: fixing the power switch of GlowCore — and the circuit that turns on or off the device, adding “Receiver Mode” to them, and some other improvements to the PCB designs. Next, I will also finish the PCB designs for GlowTower & GlowLight, GlowTube, and GlowHub — including adding the “Receiver Mode” to them as well. Once that is done I will order the PCBs, as well as some missing components for the prototypes, and assemble them once they arrive — and hope they work as expected. So I can get ready to start selling the development board PCBs and LED lamps in April after I also redesigned the cases for the LED lamps — so the PCBs fit in perfectly into the case.

3D model of 3D printed PCB stencil, from an Hackaday article

And another thing I will experiment with in March is 3D printing stencils. For the first prototype PCBs of GlowCore and GlowCore Mini I also directly ordered a stainless steel stencil from JLCPCB, since I didn’t want to go throw the trouble of applying solder paste by hand on each pad of each component and likely mess up my PCBs that way. However the stainless steel stencil came also with some downsides: it costs a lot (in comparison to the PCB itself), it increases shipping costs, aligning the stencil and PCB correctly can be a time consuming process and the combination of a large stencil and a small PCB can quickly cause the stencil to move up and down while applying the solder paste — resulting in solder paste in places where it isn’t supposed to be. But thankfully some makers already experimented with 3D printing those stencils with the help of an MSLA / resin 3D printer. These stencils are both cheaper, can be printed within a few minutes (once you figure out the correct printing settings), and can be created just large enough to fit the PCB inside — so one doesn’t need to spend extra time in positioning them on the PCB. Of course they are not as reliable long term like a stainless steel stencil. But for prototypes they seem ideal.

So that was it for this monthly update. Hope you like it and stay tuned for the next updates :D

--

--

glowingkitty

Hey, Marco here! Maker and LED enthusiast. Loves learning new skills and exploring the world.