Marc's Public Blog - Electronics Hacking


vvv Click on the categories below to see other topic specific pages vvv



Table of Content for electronics:

More pages: October 2025 July 2025 March 2025 January 2025 November 2024 September 2023 August 2023 June 2023 May 2023 April 2023 January 2023 November 2022 January 2022 May 2020 January 2020 December 2019 April 2019 January 2019 June 2018 May 2018 June 2017 April 2017 May 2016 February 2016 November 2015 October 2015 August 2011 July 2011 May 2011 June 2010





π 2025-10-10 01:01 in Electronics

eyes are drawn with math, they aren't sprites or animated gifs
eyes are drawn with math, they aren't sprites or animated gifs

So, I already built a 64x64 Matrix the hard way in 2018, including early uses of the ESP32 FastLED parallel output code that was still being written in 2018 when I built it. Building the matrix from scratch with 64 strips laid out one by one, was a pain, it took close to a week just to build. Code-wise, it took a little while, but I had a sweet running 110fps 16 parallel channel output setup, it was lovely.

professional wiring work, haha
professional wiring work, haha

yeah, that's why I wanted to use a nice expander board this time around
yeah, that's why I wanted to use a nice expander board this time around

not counting that I had to add level shifters to get full 110fps speed from 3.3V output to 5V pixels
not counting that I had to add level shifters to get full 110fps speed from 3.3V output to 5V pixels

but eh, it did work and it survived 2 burning mans until the playa ate the pixels from the inside
but eh, it did work and it survived 2 burning mans until the playa ate the pixels from the inside

I was honestly quite sad about my 4096 pixel array that took so much effort having been eaten by the corrosive playa, so when I saw pieces of pre-made matrices at a more reasonable price, I I kind of impulse bought 6 bunches 10x60 pre-made strips of much better quality just before the Trump tariffs came in. It was still $500 just in LEDs tough, but that's actually a good price for that many high quality pixels. I however figured I'd try using pixxelblaze with it because progress and not writing my own code for everything (although it was already written, haha). I also hoped to use the PB expander board to help with wiring.
I also was curious to try out the library of 2D patterns available with pixelblaze. In the end I found around 40 2D patterns that looked decent enough. Is 40 a lot? It's not bad, but when using my own Framebuffer::GFX in C++, I've easily gathered over 200 demos that are overall better due to more speed and obviously a lot faster (almost unlimited speed limited by the LEDs themselves).

I figured I'd live with the limitations of Pixelblaze and the limited amount of demos compared to C++ framebuffers, But things didn't really work out as planned. Namely:

  • I found out the hard way how slow the interpreted code actually was when scaled to 3600 pixels (most demos ran at 2 to 10fps tops, the 2fps ones are painful to watch)
  • I thought the port expander would allow me to drive 3600 LEDs at high speed, but due to the 2Mbit/s bus limitation, it's actually only about 2x faster than asingle neopixel bus, or barely 20fps raw speed. I still thought about using it until realized that most demos didn't really go faster than 10fps anyway, so why bother (for comparison, my 4096 array did 110fps with 16 channel parallel output on the same ESP32 chip).
  • Wizard recommended I use multiple PBs to spread the compute load, sure I could use 2, or 3, or 6 to run the 6 strings of 600 pixels, but after many hours of even trying to figure out how to use master/slave output as it was not officially documented, and pulling my hair on how on earth the coordinate mapping works across devices, I did eventually got it working just to realize that the devices weren't time synced, so the demos ran at slightly different speeds and the display was now out of sync, so it wasted a day of my time trying just to give up in the end.
  • Here are pictures of the build

    all 6 sub matrices connected, turns out single power was good enough even if the matrix power wire was a bit thin and ran a bit hot
    all 6 sub matrices connected, turns out single power was good enough even if the matrix power wire was a bit thin and ran a bit hot

    my 300W 12V power supply was definitely overkill, note the small step down converter to power the 5V PB from 12V
    my 300W 12V power supply was definitely overkill, note the small step down converter to power the 5V PB from 12V

    power was good
    power was good

    I tried to split the output in two by using a spare PB pico I had laying around
    I tried to split the output in two by using a spare PB pico I had laying around

    coordinate mapping was a huge pain due to lack of docs
    coordinate mapping was a huge pain due to lack of docs

    with 2 devices, without magic in the code, a single PB would not know to display the left or right half
    with 2 devices, without magic in the code, a single PB would not know to display the left or right half


    sadly the lack of sync was a showstopper


    more 'this is not working' :-/

    In the end, I gave up and went with a single 3600 pixel output, and make peace with patterns that ran as slow as 3 to 5fps:

    I used a 110V power cord to re-inject 12V power in the middle, not fully required but nicer on wires
    I used a 110V power cord to re-inject 12V power in the middle, not fully required but nicer on wires

    sadly my setup didn't come with the right plug to connect to the output and backfeed power from the other side, so I made my own from spare connectors
    sadly my setup didn't come with the right plug to connect to the output and backfeed power from the other side, so I made my own from spare connectors

    it worked without the power backfeed, but it was better with it
    it worked without the power backfeed, but it was better with it

    now came the job of connecting 60*5=300 knots between the sub-sections with twisty ties
    now came the job of connecting 60*5=300 knots between the sub-sections with twisty ties

    didn't take too long, time for install
    didn't take too long, time for install

    wee!
    wee!

    for a display that doesn't have a framebuffer and things are drawn with math, not bad
    for a display that doesn't have a framebuffer and things are drawn with math, not bad




    and it looks cool from inside the house too :)
    and it looks cool from inside the house too :)

    Do you want the same demos without spending all the time it took me to download them one by one? Marc's Favorite Pixelblaze 2D demos pbb config you can directly install

    The magic file above will install everything you need all at once, you'll just have to re-set Wifi, change the name and resolution.

    If anyone is interested, here are the demos I settled on, the ones prefixed with '_' were downloaded from https://electromage.com/patterns :

  • _2D Bouncing Additive Primaries
  • _2D Clock
  • _Animated Asterisks 2D
  • _Blinky Eyes 2D
  • _Blue Holiday Candle 2D
  • _Blue Holiday Star 2D
  • _Coronal Mass Ejection 2D sliders
  • _distance function kaleidoscope 2
  • _Doom Fire (v2.0) 2D
  • _Eye of Sauron with movement
  • _fractal flower 2D
  • _Geometry Morphing Demo 2D
  • _Halloween Wavy Bands 2D
  • _Heart 2D
  • _honeycomb 3D
  • _Ice Floes 2D
  • _Infinity Flower 2D
  • _Line Dancer 2D
  • _Matrix Green Waterfall 2D
  • _perlin fire wind tunnel
  • _Perlin Kaleidoscope 2D
  • _Plasma 3D
  • _Scary Pumpkin
  • _Shimmer Crossfade 2D
  • _Sierpinski Rainbow 2D
  • _Spinwheel 2D
  • _Scrolling text marquee 2D
  • _Traffic 2D
  • _Tunnel of Squares 2D
  • _Wavy Bands 2D
  • blink fade
  • color bands
  • color twinkles
  • fireflies
  • firework dust
  • slow color shift
  • sparks
  • sparks center
  • spiral twirls 2D
  • xorcery 2D/3D
  • π 2025-07-14 01:01 in Clubbing, Electronics, Festivals
    My original Dreamstate LED hat has worked reasonably well considering it was kind of engineered at the last minute, is fairly complex, held together by a fair amount of hot glue, runs on 2 separate batteries, and overall is pretty heavy

    Since a kind soul gave me a couple of Trancefamily SF hats, I used 2 different rolls of neopixels to try different designs. Once seems to be a P5, which are very nice pixels, but fragile, while the others seem to be P!0"

    P5, P10, and RayWu flexible P10
    P5, P10, and RayWu flexible P10

    does it look better?
    does it look better?

    sizing up batteries, the P5 do indded use 2x as much power for 2x more pixels
    sizing up batteries, the P5 do indded use 2x as much power for 2x more pixels

    Added some switches and potentiometers to reduce voltage and current to improve runtime
    Added some switches and potentiometers to reduce voltage and current to improve runtime

    they don't look great when not lit up
    they don't look great when not lit up

    better now :)
    better now :)

    lot of crap inside ;)
    lot of crap inside ;)

    end result
    end result

    and I can stack them to transport them
    and I can stack them to transport them

    will try to carry them that way so I don't smash them and damage the strips that don't love to bend
    will try to carry them that way so I don't smash them and damage the strips that don't love to bend

    Demo time:

    Or same on youtube:

    Of course, as luck would have it, on my very first flight, TSA was "interested" with my hats on their first flight:


    And here is the behind the scenes you don't usually get to see. I do not often point out how unreliable LED gear can be, and how easily it can break. Sure enough, the P5 LED strip failed in 3 different places after just 3 days of use. Super disappointing. Thankfully the P10 strip seems to be holding up so far:

    π 2025-03-07 01:01 in Arduino, Clubbing, Electronics, Festivals
    This is the untethered update to my v5 and v6 outfits. Please see LED Pants and Shirt v5 on ESP32 and Raspberry Pi with P2 RGBPanels and Wifi for how the entire setup works, and for the new LED strips on arma and legs, you can see Party LED Outfit Version 5.5: Flexible P15 LED Strings, LED Fanny Pack, Rez Inspired LED Goggles, LED Laces and LED Shoes

    And if you want even more details and history >>> See this full article on the why and evolution of my LED outfit <<<

    Prototype of new version:


    The previous v6 was an attempt at simplyfying v5 by integrating the batteries directly to the back of the panels. In the case of Lipo batteries that I cannot let run flat or they'll be damaged forever, and need for extra wiring for the balance connector, it was simpler to attach everything to the back of the panels, but it made the panels quite heavy and more bulky looking.
    That outfit served me well, but outside of bulk and weight, one issue was getting the lipo batteries through airports. They are totally legal and allowed, but they had to be removed from the outfit every time I flew, which was a pain in unwiring/re-wiring, but even then, I would get stopped more than half the time I went through Xray while they got a supervisor to confirm that yes indeed the batteries were fine. A few times, I got less educated people who reacted in lesser ways, and called more people, a few times causing delays of 30mn or more. To be more specific:

  • I met the bomb specialist of the day at SFO airport, twice. Very nice guy both times, for 30mn+ delay
  • In Thailand my first trip was fine, but my last flight of the 2nd trip, I got 12 people including the army asking me why would I fly with this?
  • more than once, I was told my lipo batteries had a simliar shape to C4 explosives, which I guess is true, but not my fault. I have learned however that once people say "it looks like [something scary]", even if they agree it's not, I have still lost
  • Another time in France, I had to argue with the police who were mostly being dicks that day and told me I had too many batteries because I could only carry as many as I would need in flight (which was entirely untrue and made up, but they had the guns)
  • The batteries are in green below, they showed up pretty reliably on Xrays and the whole thing would get flagged and then they would have to look at them and the wires, and often were not super happy:


    So, I ended up making a removable battery pack that was wired correctly, and putting it the right way was tricky, so set it up to be correct and in one piece that could be removed and re-added with less work for each flight:


    But it didn't take long to find out that even carrying the batteries separately that way still made TSA unhappy at times, and unless I unplugged absolutely everything and rebuild the whole thing every time, they would not be very happy and that was a pain for me to take apart and rebuild every single time. They still occasionally said it looked like C-4.

    I wasn't being a contratrian for fun, and see how many world TSAs I could win an argument with, I just didn't really have many other options, I did need those big batteries because my outfit does need lots of power, and 5V USB battery packs simply do not output enough amps.

    tried with USB packs
    tried with USB packs

    it was not fun, I had to segment power use in different busses plugged into different ports of battery packs, very cumbersome and the first tone to die could shut down everything
    it was not fun, I had to segment power use in different busses plugged into different ports of battery packs, very cumbersome and the first tone to die could shut down everything

    But after multiple years (and to be fair, it was many flights and most were fine, but the 5-10% that were not, were _not_ fun), technology finally evolved into whas that gave me better options: using less scary looking USB powerbanks that were finally able to output enough watts to power my panels without dipping power enough to cause reboots and crashes from the CPUs.

    so I built a new system with dual 20V input (each one is sufficient on its own)
    so I built a new system with dual 20V input (each one is sufficient on its own)

    I have 2 USB-PD selector boards that output into a diode to avoid backfeed, and this goes into a DC-DC converter that takes the 20V down to 5V at up to 20A although probably only 5A max is really needed
    I have 2 USB-PD selector boards that output into a diode to avoid backfeed, and this goes into a DC-DC converter that takes the 20V down to 5V at up to 20A although probably only 5A max is really needed

    It of course runs fine from a single battery:


    At the same time, I made a big upgrade on the panel side by using flexible PCB panels that are differnetly thinner. At the same time I switched to RPI0 2W which is slightly more powerful than an RPI3a while being much smaller:


    Now the whole thing looks nicer and lighter:


    I did switch the big ESP32 to a smaller smaller ESP32 C3 (2 shown in this picture), which can still output to an LED strip if I really want/need. I also tried to switch to a smaller electrodragon passive-3 board that was custom designed to fit the RPI0 2W. It doesn't have the room for the level shifters, but turns out for an ABCDE panel, the passive board worked just as well (top on the picture vs the bigger red one in the middle):


    The old setup had 300Wh of battery capacity, and that was real capacity, no BS. I measured it to give me a bit over 18H of runtime, which was very nice indeed, and helpful for places like tomorrowland where I had to camp and go 3 nights without ability to recharge.

    This new setup differs a good amount because:

  • the panels are similar resolution and size, but they are a new design with flex PCB panels that are much thinner
  • they are still not as thin as LEDs inside the clothing, but in order to make it lighter and thinner, the batteries were moved back out
  • at the time of my original design, USB batteries were just not really on par with what I needed. My setup does use 5V, but it needs a lot more amps than any battery pack can take, and last I tried, it required an awkward setup where I used 3 different USB ports. But 3 years later, there are finally USB battery packs that can output 100W on a single port as 20V/5A via USB-PD, and that is more than plenty to run the panels as well as than run a Raspberry Pi without the voltage dipping and causing a reboot.
  • the new battery packs, while sold as almost 100Wh, all deliver around 75Wh of real power, which unfortunately is only good enough for 5.5h of runtime per battery. The loss of capacity is due both marketing lies, and the capacity that is given is the ideal capacity of the lithium batteries inside the USB pack, but that power has to be up-converted to 20V and losses happen in that process. Later I confirmed that up-converting to 15V was sufficient, so that helped a little bit. On the plus side, 11H is enough for most uses, and worst case I can hot swap an empty battery without even shutting down/rebooting the system
  • I also changed the rPI3a for a smaller rPi0 2w and a smaller ESP32 replaced with ESP32 S3. The rPi+ESP used 28% of the power, while the 6 panels used 72% of the power. The smaller Rip0 2w + ESP32 S3 probably takes probably just a bit less power, but it's a small enough percentage that I didn't go measure it.

  • End result

    Same on youtube:

    But of course, nothing can be simple, this new design brought some new issues:

    After using it the first time at ASOT NL 2025 the wooden frame got detached in no time, failure of the 2.5mm screws

    very early version without clips on both sides
    very early version without clips on both sides

    just a bit of tape to hold things together, clips on sides and top
    just a bit of tape to hold things together, clips on sides and top

    it was built until the flight and I didn't have time to add a protective frame
    it was built until the flight and I didn't have time to add a protective frame

    the panels were so cheaply made that the screws receptacles came unglued
    the panels were so cheaply made that the screws receptacles came unglued

    Another issue I didn't like with these ABCDE panels is that the screws were 2.5mm instead of 3mm for unknown reasons and it was hard to attach to something that small.

    Switching to a different 128x64 P2 Flex Panel vendor, but ending up with ABC panels that barely worked with rpi-rgb-panel

    The ABC panels had 3mm screws, which was better, but I found out even those things also popped out. I had to carefully re-glue them in without leaking glue on the panel pixels:


    Sadly those ABC panels had different chips that required huge gpio slowdowns or suffered from noise and display issues:



    new chips
    new chips

    It took a few weeks, and very kind help from board707 and multiple issues to make a new line addressing shift register pusher that was faster and didn't have the noise/corruption issue:

  • https://github.com/hzeller/rpi-rgb-led-matrix/issues/1725#issuecomment-2757492829
  • https://github.com/hzeller/rpi-rgb-led-matrix/issues/1773
  • https://github.com/hzeller/rpi-rgb-led-matrix/issues/1774
  • https://github.com/hzeller/rpi-rgb-led-matrix/issues/1788 where I found subtle timing issues. between chips, kernel and compilation options causing -led-slowdown-gpio to have to be changed between 1 and 2 to get a stable output
  • while doing all this, I did confirm that the smaller electrodragon passive-3 board does pick up more noise and isn't able to drive as fast as the bigger active-3 board
  • once I figured all that out, finally got the ABC panels to work almost as fast as ABCDE and now have a nice screet/pixel protector
    once I figured all that out, finally got the ABC panels to work almost as fast as ABCDE and now have a nice screet/pixel protector

    USB powerbank failures

    It didn't take long before I found out that many powerbanks do very badly at outputting 20V long term, and some of their ports half die and only do 5V after a while, which is not enough for me:


    It took some tracking down to catch real time failures:

    Flexible PCB solder point failures

    This is now the biggest and unsolved issue with my new setup. Anything that moves and flexes, fails, and sure enough the same law applies here:

    flexing the PCB can cause any of those points to fail, causing the above
    flexing the PCB can cause any of those points to fail, causing the above

    and they fail in different ways :(
    and they fail in different ways :(



    Oh no, it looks terrible when it fails in the wrong place
    Oh no, it looks terrible when it fails in the wrong place

    Easier Replacing of Panels

    I wish I could say I have a great solution to those panels that fail due to flexing and solder point failures: 5165*|2 different failures 5165*|by hand flexing the panel, it brings the connection back, but it's not a solution 5164*|my new design makes swappping panels faster, and not requiring a soldering iron

    This is not a great long term solution, but I have no better idea for now outside of going back to bigger and bulkier non flexible panels.

    New Pants

    I redesigned the pant straps to use smaller black loops first glued and then sown into the pants:


    looks more tidy
    looks more tidy

    end result
    end result

    New LED Hats

    this was my old Dreamstate Hat, it looks cool but it's heavy
    this was my old Dreamstate Hat, it looks cool but it's heavy

    so I made new ones that are much lighter
    so I made new ones that are much lighter

    funny thing is the very first time I flew with the new hats, I was detained because of them :)
    funny thing is the very first time I flew with the new hats, I was detained because of them :)

    Upgraded LED Shoes with bright Shoelaces

    I got new brighter shoelaces but the batteries didnt even last a day
    I got new brighter shoelaces but the batteries didnt even last a day

    So I made a connector to plug into the shoe's bigger batteries I upgraded
    So I made a connector to plug into the shoe's bigger batteries I upgraded

    End result:

    Extending battery life

    Originally I setup my battery packs to output 20V, which means the power is upconverted to 20V and then downconverted to 5V but with 10A (way more than needed), Trial and error showed that my battery packs do seem to output more energy when I lowered the voltage to 15V, and after modifying my code a little bit, I was able to make it run off 12V (the battery pack only outputs 3A at 12V, or 36W. Normally my code should not use 36W, I've measured it to use around 8W average, but in peak use situations it can draw more, and if the 5V voltage dips a bit too much as a result, the rPi will crash and reboot).

    I have a "few" battery packs, different sizes and weights, but the weight adds up:


    The good news is that I'm now able to use smaller packs that can still output 60Wh, but only up to 12V. The bigger packs can do 100W at 20V and output up to 75Wh on a good day, although most of mine often seem to do less (they are of course rated for 99Wh)


    in the process, I found out the Wh totalizer in these meters, is garbage and can't be trusted
    in the process, I found out the Wh totalizer in these meters, is garbage and can't be trusted

    nicer/bigger 100W capable pack (more than I need) with better totalizer
    nicer/bigger 100W capable pack (more than I need) with better totalizer

    new test at 15V instead of 20V (the red boards can be changed to ask any voltage) with diodes to prevent backfeed
    new test at 15V instead of 20V (the red boards can be changed to ask any voltage) with diodes to prevent backfeed

    measuring the loss between 15V input and 5V output
    measuring the loss between 15V input and 5V output

    trying again with 12V, we can also note the voltage drop at 1.4A
    trying again with 12V, we can also note the voltage drop at 1.4A

    some surprising results, some 75Wh packs emptied quicker than expected, only got 65Wh from thsi one
    some surprising results, some 75Wh packs emptied quicker than expected, only got 65Wh from thsi one

    a fun part of this exercise is figuring out if the Wh totalizers are even good
    a fun part of this exercise is figuring out if the Wh totalizers are even good

    Here are the results I got so far:

  • small 60Wh pack, pack #1: 49Wh, pack #2: 56Wh, 12V meter: 108Wh, 5V meter: 98Wh, 12h28 total, 7.8W avg (5v), 8.6W avg (12V)
  • big 75W pack (12V), pack #1: 63Wh, pack #2: 53Wh, 12V meter: 110Wh, 5V meter: 99Wh, 12h23 total, 7.8W avg (5v), 8.9W avg (12V)
  • big 75W pack (12V), pack #1: 63Wh, pack #2: 73Wh, 12V meter: 125Wh, 5V meter:114Wh, 14h30 total, 7.8W avg (5v), 8.5W avg (12V)
  • big 75W pack (20V), pack #1: 70Wh, pack #2: 68Wh, 20V meter: 120Wh, 5V meter:108Wh, 13h30 total, 8.0W avg (5v), 8.8W avg (20V)
  • So, what comes out of this is:

  • I'm getting a bit longer runtime by only using 12V intead of 20V and this allows using smaller battery packs that only do 12V
  • I'm pretty disappointed in those 100W/99Wh packs that seem to output as little as 55Wh at 12V
  • on the plus side I can now get 14.5h with the bigger battery packs, but I should be getting a lot more if they did output 75Wh
  • There is a 10% loss from down converting from 12V to 5V with my DC-DC converter, probably acceptable
  • The smaller packs seem to work almost as well for a much smaller size, their main downside is they don't charge nearly as fast (the 100W packs can charge in 1.5h at max speed given the proper power supply).

    π 2025-01-18 01:01 in Clubbing, Electronics
    So, you would think that as part of my complicated LED outfit that was several years of work over the years including over 10,000 lines of code, the shoes would not be a big deal...
    Well, after having gone through more than 10 different pairs of LED shoes that all failed in various ways, I have to say that these were more trouble than expected.

    Issues:

  • the early ones had wires or PCB between the pixels that would break after the shoe was bent many times as part of walking/dancing
  • later ones fixed this, but still used the same small module with limited battery life, barely good enough for 4H
  • even unmodified, the LED module resin would eventually crack, and usually the battery fail
  • worst failure was a lipo that did fail in a way that it smoked/burnt, not great under your feet (thankfully this was contained and my foot was ok)
  • the only way to add battery life was to solder a connector to the lipo pins inside the module, which is a bit tricky (getting a good sodler joint) and not getting that connection to fail later, which with dancing does happen too often* then, my first design which included adding a 2nd battery inside the shoe, turned out to be a mistake as the 2nd battery was not protected well and would eventually be breached. Also the thin wires for the orignal batteries I used woudl also fail:
  • I had to melt the resin until I could expose the power pins
    I had to melt the resin until I could expose the power pins

    looked ok on the bench, did not work long in the shoe
    looked ok on the bench, did not work long in the shoe

    shoving the battery in was not easy
    shoving the battery in was not easy

    it worked on the bench, but didn't work too long in real life, by then I added an external lipo plug to check the voltage and do fast charge, bypassing USB
    it worked on the bench, but didn't work too long in real life, by then I added an external lipo plug to check the voltage and do fast charge, bypassing USB

    By then, I had what I thought was a great idea: why don't I just forget about secondary batteries and use the external connector to power my shoes from my pants that already have 5V power on the neopixels?
    This felt like a good idea, but first I had to add diodes to drop 0.7V so as not to exceed 4.3V for a direct connection to the lipo (as a remminder, I cannot connect via the USB plug as if you send power there, the shoe does in charging mode and stops lighting up), but then I found out that my neopixel strips did not actually have 5V at the end due to line loss, and it was going to be complex to safely connect them to my shoes without a voltage regulator and more electronics, making the whole thing, questionable. Still, it was a tempting idea for a short while to use my mega battery pack to power the shoes forever ;)

    Of course, it's all nice and good until something shorts. Thankfully my foot didn't catch fire:




    So for version 4, I had slightly better connection of the external lipo connection with hot glue around the module, but the more important part is I figured out it was better to attach a flat lipo on top of the shoe so it wouldn't get stepped on:


    I also had spare modules and batteries in case of failure, and a way to charge them from USB outside the shoe:


    By then I had run out of my old modules that slowly failed over time, and had to find a new shoe with compatible modules. Thankfully that one has slightly better firmware that allowed lighting one LED out of two:



    at least it's pretty

    A big thanks to IGxx for nicely sending me extra modules so I could hack on them and have spares. Here is the shoe I recommend you buy today: https://www.amazon.com/gp/product/B07GS6GSRY/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1

    This is the new shoe with the updated module. Very pretty shoe, but otherwise the modules still have the same 4h runtime, and still need the same work, bummer:



    battery goes up there so it's not stepped on
    battery goes up there so it's not stepped on

    So yeah, we're now at v4, it still relies on unreliable soldering, and extra hot glue but at least the external wires are stronger, the external battery more than long enough for 12H+ of runtime

    And a bit later, I went back into the shoelaces. The newer ones are very pretty and bright, but use way too much batteries, they barely last a single day on a set of 2 CR2032 batteries, which is pretty wasteful. So I went back and soldered a connector to connect into the shoes' 3.8V lipo. Obviously 3.8V is a lot less than the theorical 6V you get from 3x CR2032, but it turns out the LEDs care a lot more about available current than voltage, so they are quite bright with the onboard 3.8V from the shoes and of course will last a lot longer with the bonus of being rechargeable and not requiring an endless waste of non rechargeable CR2032's.



    π 2025-01-17 01:01 in Arduino, Electronics, Linuxha

    got a few extra colorful yard lights ;)
    got a few extra colorful yard lights ;)

    To debug some early issues I had with the pixelblaze, I soldered a few extra wires to add serial monitoring:


    the serial port is temporarily going to a rPi3a which in turn makes it available over an ssh connection
    the serial port is temporarily going to a rPi3a which in turn makes it available over an ssh connection

    up left if the pixelblaze pro expansion board that gives 8 channels, handles power distribution and converts the 12V to 5V for the pixelblaze itself
    up left if the pixelblaze pro expansion board that gives 8 channels, handles power distribution and converts the 12V to 5V for the pixelblaze itself

    For the pixels, I picked rolls of 1000 pixels at 5cm and 10cm pitch from Ray Wu, trusted seller of blinky stuff, and one bonus of not doing this installation a few years earlier is that new pixels have been designed: WS2818.

  • WS2813 were a improvement for having a backup data line but still running on 5V which would have clear voltage drop issues.
  • WS2815 are the 12V version, which is good for dealing with voltage drop
  • WS2818 is yet another improvement over WS2815, still 12V with a backup data line, but more reliable and efficient
  • The last bit "more efficient" actually worked to my advantage as I was able to make a string with 600 pixels and not have to re-inject power anywhere. I measured line voltage at the end and it was only 5V but the pixels still worked great at the reduced voltage.

    The advice I got on the leds are awesome group was to try hot glue, and it was a good idea. Thankfully I had a battery powered hot glue gun, which was a must have. The other important bit was a solder reflow hot air gun, which did have to be plugged in the few times I had to unglue strips to move them after I found a better routing or visual pattern:


    And in all, I actually need 3 tools, the 3rd one was a battery operated air can replacement which allowed me to blow cold air on the hot glue points and have them dry in 10 to 15 seconds instead of 1mn. That was a lifesaver:


    After laying strips, house looked like this:



    After the first 2 days of work, I had 4 strips, around 1500 LEDs:

    or on youtube:

    But it really got better once I added 2 more strips and upp'ed the count to 2000, which was a lot more visually pleasing:

    or on youtube:

    This is my current demo list:

  • Blink fade
  • Color twinkles
  • Fireflies
  • Honeycomb
  • Matching rainbows
  • Rainbow melt
  • Show color shift
  • Sound blink fade
  • Pew pew
  • Sound rays
  • Spark center
  • Static random colors
  • These look interested but are too fast:

  • Millipede
  • Pulse 2e
  • Spin cycle
  • π 2024-11-20 01:01 in Clubbing, Electronics, Festivals
    Tech specs:
  • 32x16 flexible LED rgbpanel (displaying scrolling Dreamstate Logo)
  • 2 strings of Ray Wu P15 WS2812 both for layout reasons and for backup if one string breaks, the other one will keep working.
  • Lipo battery checker (but the lipos are protected, so they will self shut down)
  • flexible 16x32 RGBpanel
    flexible 16x32 RGBpanel

    found a hat big enough that it mostly fits on it
    found a hat big enough that it mostly fits on it

    of course, it needed a few LEDs :)
    of course, it needed a few LEDs :)

    what it looked inside and it worked with a small 1S 700mAh lipo (although not long enough)
    what it looked inside and it worked with a small 1S 700mAh lipo (although not long enough)

    bigger battery upgrade, and BTW those batteries lie, they are only 1600mAh
    bigger battery upgrade, and BTW those batteries lie, they are only 1600mAh

    testing battery draw, a bit over 0.5A which is a bit too much
    testing battery draw, a bit over 0.5A which is a bit too much

    So, why 3-4V lipos instead of USB battery packs with 5V that is expected by both the panels and neopixels/WS2812? Well, space is limited, USB battery packs are kind of big, and carry extra hardware to recharge that isn't needed inside the hat. There is also a side byproduct that powering both the panels and the LEDs with a lower voltage, limits their brightness and the amount of power (watts) they need, which means that a 16Wh lipo inside a USB battery pack stepped up to 5V, makes everyting brighter, but only lasts about half as long as powering directly from the lipo at lower voltage.

    bigger 4Ah 1S lipo worked for 8H at full power and LEDs worked all the way down to 2.8V!
    bigger 4Ah 1S lipo worked for 8H at full power and LEDs worked all the way down to 2.8V!

    panel worked all the way down to 3.4A before colors went wrong, 16H on a 1.6Ah battery
    panel worked all the way down to 3.4A before colors went wrong, 16H on a 1.6Ah battery

    of course now I had to find a buy a faster 1S lipo charger with the right connectors (had to get JST adapters)
    of course now I had to find a buy a faster 1S lipo charger with the right connectors (had to get JST adapters)

    quick test that a smaller 700mAh battery would last around 5H before things got dim
    quick test that a smaller 700mAh battery would last around 5H before things got dim

    After testing, I was able to confirm that both the $7 amazon controller (SP002E from https://www.amazon.com/gp/product/B09Y8SWJ77 ) and the RGBpanels, work fine with lower voltages (which is not a given since both run a microcontroller that was originally meant to be powered from 5V).
    The RGBPanel controller is a bit more picky about voltage and reboots around 3.5V, while the neopixels tend to drag the battery voltage down, causing the RGBPanel to crash and reboot when a single battery runs both, so I gave it its own lipo.

    Pixels still take 0.3 to 0.5A (I use a potentiometer to dial them down as the cheap controller I put has no dimming control) and the RGBPanel takes less than 0.1A, so that's nice (it actually goes all the way down to 0.05A or just 50mA) when the voltage drops.
    The combined tricks should give around 18H of runtime with the 2 batteries (4Ah and 1.5Ah 1S lipos), which is enough for 17 hours of dreamstate (they are not screwing around this time, 17H !!!)

    About the neopixel controller, I used a cheap $7 amazon controller that only had 3 physical buttons but sadly no dimming control, mostly because I wanted something very small, and while pixelblaze micro is also small, it doesn't have the pattern I want, and I didn't see the point of programming a pattern I already had on the other controller, so I just put a potentiometer to lower the voltage. It's obviously the wrong way to do it, but it works :)

    Here is the end result:



    π 2024-11-10 01:01 in Arduino, Computers, Electronics
    I attended Pasadena Hackaday Supercon, so I figured I'd put my pictures into a quick blog entry, shouldn't take long...


    1) Oh, I need to finish writing code to get the SAO badge holder to do something fun

    2) Mmmh, why does this python global variable thing doessn't work in the function

    3) Goes to re-learn python, with help from gemini and how python forks global variables by default in functions so what you write to them isn't saved at local scope (oh my, why did they do that?)

    4) after more hacking, get a proper demo working:

    5) publish code https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/README.md (actual code is here: https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/software/software/main.py )

    6) Oh, I need to make a video demo of the SAO, but...

    7) oh yeah, there was that hat on my desk I needed to add LEDs on for an upcoming party, start hacking on that

    8) mmmh, the hat won't work long enough with a USB battery, start hacking on a lipo solution

    9) ah, lipos work, but the front LED panels rated for 5V start failing around 3.5V, so I need to make a dual lipo solution, one for the neopixels and one for the RGB panels

    10) test and measure the dual lipo solution and figure out it will last close to 12H, that's good. Ok, hat works mostly, post that https://www.instagram.com/p/DCYEl1jJd_-
    11) Ah yes, the SAO video I was supposed to work on: https://www.youtube.com/watch?v=z7MSywf7js4

    12) During that time, I get interesting distracting packages on my doorstep, like lovely flexible LED panels that will hopefully power my future outfit: https://rpi-rgb-led-matrix.discourse.group/t/rpi0-2w-speed-compared-to-rpi3a/913/2

    13) While I'm testing them, also try some new rPi0 2w chips and microcontrollers to see if they can power my LED outfit with a smaller form factor (and yes they can): https://rpi-rgb-led-matrix.discourse.group/t/rpi0-2w-speed-compared-to-rpi3a/913 . In the interest of briefty, I'm going to skip the part that included migrating from raspbian to a new dietpi linux distro and port back all my custom changes on it :)

    14) That said, I had a long-ish discussion and planning with the electrodragon folks in China on how to make a new 3 channel daughter board that is much smaller and would decrease the over footprint of all new picture frames like the one I built, and of course my LED outfit.

    15) but wait, now I also find out there is a new beaglebone solution that does 6 channels output instead of 3? Ok, make a post about it: https://rpi-rgb-led-matrix.discourse.group/t/interesting-6-port-board-beaglebone-pocketcroller-v2/918/2

    16) and file a couple of RFE bugs to look into it: https://github.com/hzeller/rpi-rgb-led-matrix/issues/1733 + https://github.com/FalconChristmas/fpp/issues/2054

    17) Oh, I just found this old video on my laptop, why did I never post it? Ok, fix that: https://marc.merlins.org/perso/linux/post_2021-01-23_Linux_conf_au-2021-LED-Talk.html

    18) Mmmh, so when I quickly posted those pictures from Neil deGrasse Tyson who just gave a talk, I got a reminder it was annoying for my blog system not to be able to link to videos directly without having to upload them to youtube.

    19) Ok, learn about html5 video tag, hack my blog system to support videos, and push a new blog with my first video tag: https://marc.merlins.org/perso/outings/post_2024-11-14_Neil-deGrasse-Tyson-back-at-San-Jose-Center-for-Performing-Arts_-An-Astrophysicist-Goes-To-The-Movies_-the-Sequel.html

    20) ok, but why did I have to rescue my video from my phone because the H265 recompressed version did not work in the blog? Ah, because of royalties on H265 being too high, most browsers refuse to add support for it: http://marc.merlins.org/perso/linux/post_2024-11-17_Vidrename-Script_-Clean-up-Normalize-Video-Filenames-and-Add-Codec-And-Container-Format-With-Mplayer.html

    21) Ok, sure, but now I need to upgrade my vidcomp script to support VP9 and AV1: http://marc.merlins.org/perso/linux/post_2024-11-17_Vidcomp-Script_-recompress-videos-on-linux-with-mencoder-or-ffmpeg-to-div3_-div4_-div5_-xvid_-mpeg4_-h264_-h265_-VP9_-and-AV1.html

    22) then I find an Email from a chinese engineer who is willing to talk to me about making better LED shoes. That's exciting, let me reply to him first

    23) ok, now I can recompress my videos to VP9, which I benchmarked to somehow be faster to compress and still smaller file size than AV1 (not supposed to be the case, but that's what I'm getting). On the plus side, VP9 works with more browsers than AV1.

    24) what as I doing again? (now days have passed). Oh yes, I was supposed to write a blog on hackaday supercon: http://marc.merlins.org/perso/electronics/post_2024-11-01_Pasadena-Hackaday-Supercon-2024.html

    25) of course the ridiculous amount of time spent to allow these 2 videos in that post, is a bit hard to justify, but it's really solving a problem I've had for over 10 years, and never got to the top of the pile, because, well, you see what happens when I try to put something on top of the pile :)

    26) and I was good, I didn't even play with the micropython rpi micro I received in the mail this week, or the electromage pixelblaze and I/O board, or more LED panels that somehow showed up at my doorstep :)

    27) mmmh, and there are all those webcams I ordered and need to configure, but now it's clear I'm going to have to re-install my camera controller, shinobi, from scratch, and that's yet another rabithole...

    28) in the meantime I have to finish my LED hat, and design my new shirt and pants for Dreamstate in 4 days... Wish me luck :)

    π 2024-11-02 01:01 in Electronics
    This is a followup to my Pasadena Hackaday Supercon 2024 SAO Badge Page, please refer to that page, first.


    SAO stands for Shitty Add Ons, all explained here:

  • https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard
  • https://hackaday.io/project/52950-shitty-add-ons
  • A challenging SAO that was offered to me was the "Yo Dawg, I heard you like SAOs in your SAOs", which including some micro SAOs that were challenging to solder. That was an excuse for me to learn SMD soldering with solder paste, flux paste, and the heat gun I had.

    links:

  • https://hackaday.io/project/198060-yo-dawg-sao-introducing-saoao
  • https://hackaday.com/2024/10/01/2024-sao-contest-weve-got-saos-for-your-saos
  • I didn't do a great job, but it worked, which is what mattered. The motherboard was easy to solder with a real soldering iron, but this micro SAO was the challenging one:


    The micro SAO didn't really have clear indications on positive vs negative, so I had to test the board and LEDs to make sure they were in the correct direction:


    They, I had to lay out the components:


    Cover with solder paste and flux:


    oh boy, not looking pretty :)
    oh boy, not looking pretty :)

    And after heat gun, things mostly went into place:


    And it worked!



    Success!

    π 2024-11-01 01:01 in Arduino, Electronics
    After having such a great time at the linux.conf.au Open Hardware Miniconfs over the year, and missing them after the last one where I built those badges, I somehow missed a local-enough Hackaday Supercon that had been going on for years. Oh noes!

    It was very cool that I got to wear my LCA SAO badges for the first time:


    This post, because of its 2 video inserts, a new addition to my blogging software, was also an interesting exercise in non linear time and tasks, more on this page: Getting Things Done in an ADHD World

    Day 1, Friday

    Thanks to Anthony for letting me know about it, and I was able to attend. Went there early on friday for the pre-conf to work on the badges:


    the conference badge was this 6 port micropython rPi micro with a couple of SAOs.
    the conference badge was this 6 port micropython rPi micro with a couple of SAOs.

    they nicely provided food all 3 days
    they nicely provided food all 3 days

    essential geek survival food :)
    essential geek survival food :)

    They gave us a quick primer on how the badge worked, although it would have been better on a webpage with links and info for total beginners who had never used micropython and thorny or knew what thorny was (that included me):


    I'm glad I took pictures of these slides, they only made sense many hours later. They should have been online
    I'm glad I took pictures of these slides, they only made sense many hours later. They should have been online

    finding fellow LED geeks :)
    finding fellow LED geeks :)

    learning blinkies for beginners, scan this
    learning blinkies for beginners, scan this

    While I was there, I 9ound out they had a wonderful 4 bit computer some years back. I actually really regret not having been there that year, programming that in hand crafted assembly would have been epic:


    someone hacked a basic I2C on it
    someone hacked a basic I2C on it

    people now hard at work
    people now hard at work

    I used the opportunity to bring previous LCA toys and show them off (and fix a few)
    I used the opportunity to bring previous LCA toys and show them off (and fix a few)


    People came with plenty of SAOs:



    some came more ready than me :)
    some came more ready than me :)

    SAO extenders, cool!
    SAO extenders, cool!

    SOA badge holder bag, sweet!
    SOA badge holder bag, sweet!

    I found Tom Verbeure, the person who had been hacking on RGB Panels with open source FPGAs (colorlight). Cool project for sure. See: https://github.com/q3k/chubby75?tab=readme-ov-file#colorlight-5a-75b and https://github.com/lucysrausch/colorlight-led-cube/tree/master


    Also, finally got to meet Henner Zeller, the rpi-rgb-panels author I've been working online with for years:


    epic watch!
    epic watch!

    Also got to meet Daryll Strauss from precision insight, later acquired by VA Linux some 25+ years ago:



    People still hacking at night:


    I was lit up enough not to get lost :)
    I was lit up enough not to get lost :)

    Day 2-3, Saturday & Sunday

    Saturday and Sunday were the main conference days:


    went to attend a few talks
    went to attend a few talks

    hacking radio sound and B&W video from a chip, super cool!
    hacking radio sound and B&W video from a chip, super cool!

    learned about an online microcontroller emulator, wokwi, very nice
    learned about an online microcontroller emulator, wokwi, very nice


    who thought SAOs were a simple standard? :)
    who thought SAOs were a simple standard? :)


    I got to see a pick and place machine, nice to see them work and glad we don't have to do this by hand:


    this is what the machine was 'printing'
    this is what the machine was 'printing'


    I tried the SMD challenge, that was hard as hell:


    we got old and fat irons, making things harder :)
    we got old and fat irons, making things harder :)


    I couldn't get the last 2 LEDs working, they were so stupidly small
    I couldn't get the last 2 LEDs working, they were so stupidly small

    I had someone help me fix mine :)
    I had someone help me fix mine :)

    and they all worked, thank you to the master solderer!
    and they all worked, thank you to the master solderer!

    added the result on my badge :)
    added the result on my badge :)

    Random fun shots :)


    people hard at work
    people hard at work



    During the weekend, the SAO wall got populated:






    Fun to see this SAO based on this burning man sign

    Original from Burning Man
    Original from Burning Man

    more and more
    more and more

    and more :)
    and more :)

    Saturday evening party had a nice real time AI image generator:





    some were far out :)
    some were far out :)



    The conf ended with a presentation of best SAOs:



    This guy won the contest of biggest SAO, he had a printer working off USB, run by his SAO
    This guy won the contest of biggest SAO, he had a printer working off USB, run by his SAO


    Sunday ended with a party at a bar, thankfully I had my battery soldering iron :)


    This was loads of fun, and I definitely learned some good stuff. Sad I didn't go earlier but glad I went this year. Thanks bunch to all the organizers and attendeers who contributed!

    And I also made 2 pages on SAOs:

  • Pasadena Hackaday Supercon 2024 SAO Badge Page.
  • Pasadena Hackaday Supercon 2024 Yo Dawg Micro SAO and SMD Soldering
  • More pictures: https://photos.app.goo.gl/2hYRaaB5dF5mvv4N8

    See more images for Pasadena Hackaday Supercon 2024
    π 2024-11-01 01:01 in Arduino, Electronics
    SAO stands for Shitty Add Ons, all explained here:
  • https://hackaday.com/2019/03/20/introducing-the-shitty-add-on-v1-69bis-standard
  • https://hackaday.io/project/52950-shitty-add-ons
  • In 2021 I got my first SAO Conference Badge from Linux.conf.au (clickme for more) That LCA board had 4 SAO ports and came with 2 little cute penguins that I hacked a bit:


    one of them was then in charge of running a neopixel necklace
    one of them was then in charge of running a neopixel necklace

    I got a few spare SAOs to attach to my heavily hacked LCA badge :)
    I got a few spare SAOs to attach to my heavily hacked LCA badge :)

    Anyway, back to Pasadena Hackaday Supercon 2024, they gave us a 6 SAO badge also running a micropython chip:

    attendees nicely donated a few extra SAOs to me, which I wrote code for
    attendees nicely donated a few extra SAOs to me, which I wrote code for


    even got an SAO extender :)
    even got an SAO extender :)

    I had to solder it from parts at the after party in the pub
    I had to solder it from parts at the after party in the pub

    Oh, and has homework, I got a micro-SAO (Yo Dawg) with SMD Soldering to do at home (click me) [*SMD*/209*]

    Back to the conf SAO and code I wrote, here is the result:

    Micropython Code:

  • https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/blob/main/software/software/main.py
  • Main repo:

  • https://github.com/marcmerlin/2024-Supercon-8-Add-On-Badge/tree/main
  • This was loads of fun, thanks to the organizers!


    More pages: October 2025 July 2025 March 2025 January 2025 November 2024 September 2023 August 2023 June 2023 May 2023 April 2023 January 2023 November 2022 January 2022 May 2020 January 2020 December 2019 April 2019 January 2019 June 2018 May 2018 June 2017 April 2017 May 2016 February 2016 November 2015 October 2015 August 2011 July 2011 May 2011 June 2010

    Contact Email