A quick update

A project log for 12 channel LED controller

A MQTT controlled 12 channel LED dimmer for home use

markus-kastenMarkus Kasten 03/17/2018 at 21:150 Comments

Haven't written an update in a week, so here I am reporting progress.

The PCB is fully assembled now, I also updated the project pictures with a few shots of the finished board. It really does look awesome I think, but maybe I'm a little biased :-)

One smaller issue I found so far is the noise this thing makes when the outputs are switching heavily, i. e. PWM duty cycles around 40-60%. There is a super annoying, quite loud tone at high frequencies, a quick sound spectrum analysis showed peaks at 4, 9 and 13kHz. Its obvious these come from the switching current draw, and are likely caused by the inductor of the step down supply. I'll investigate the exact cause of this later when the project is in a mostly working state, it's not really a show stopper at this point.

There is also some great progress on the firmware side of things. MQTT is now connecting, and after a couple of fixes also staying connected for longer periods. I implemented a few topics the controller is subscribed to today and pushing some messages from Home Assistant (and therefore from HomeKit) is working and even controlling the LEDs. Seeing that really was a big relief after all the trouble I had with Atmels API and getting it hooked up to the MQTT library I'm using. There was a point where I was thinking about ditching the entire MQTT idea, but luckily I kept investigating and finally got it working. I think I'll write a blog post (or should I say rant? Nah it's not that bad) on my experiences with the ATWINC module when I'm mostly done with the project and have some more experience with it, because there were some very interesting gotchas and marketing wanks in there probably worth writing about. 

All the code is now pushed to GitHub, but the codebase is neither complete nor stable nor clean at this point. There is still a lot of unused, incomplete, hacked or error-prone code in there. I'm working hard on getting it all into a usable and maintainable state, but it'll take its time. I probably underestimated how much time and effort it takes to get all these different things working together properly. My lectures start again next week, so time will be limited starting from then but at least I got it into a state where I can show it off beforehand :-)

I'll update the project with a video and a little more information once I can find the time.