More about the clips from 2021 Holiday Lights proudly sponsored by JimClip (TM)

You might remember the _o_ to o___o conversation from the last blog post. You don’t? Maybe you should work on your reading comprehension (or maybe I should be a better writer . . . there is plenty of blame to go around). ANYWAY, we had another install! At Jim’s house! And this was the first test of a 100% install of the new o___o clips. In the blog post I noted that I made them smaller, only 8mm tall, and that was so the 10mm clips could go across them. I ran a few tests on that 2×6 board from the last post and it worked great! But when we got to Jim’s house I noticed right away it was going to be more difficult and that was because his roof eves were far more slanted back toward the house than mine. And sure enough it was tough fitting the stapler or even the drill back there. It was SUPER frustrating trying to staple and it was especially frustrating when you were on a wobbly 15 foot ladder.

Jim rattled off a thousand ideas and MOST of them were terrible. But then he had the idea to just combine two of the clips and next thing you know he is trying to trademark the “JimClip”. Hours and hours hearing about the JimClip. But once he was doing that he was able to staple them way easier and with far fewer potty words (not ZERO bad words, just less). Trouble is he was going though them pretty quick and we were going to need even more! Thus I made a minor tweak to the design where instead of 8mm tall, I made them 12mm tall. And I took out the screw holes since that’s where they would break if the staple got too close. BOOM FIXED! Except that I also thought of one more change . . . .

Instead of the default printer settings I decided to change the number of perimeters.

You can see the effect of the change here:

Layer 3.4 with default 2 perimeters
Layer 3.4 after change to 4 perimeters

As you can see, in one case there is infil being used and in the other, it’s basically printed solid. So far the big advantage of that change is that the C is more difficult to break and the long center stands up well too. In my testing I could flex the hollow 2 perimeter print and break it easily (usually at the holes) but I wasn’t able to break the 4 perimeter version unless I went insane with it. I haven’t tried to staple it yet since I don’t have the stapler (left it with Jim) but I suspect they will staple just fine.

You can also see how different the top layer prints too! These are SO MUCH STRONGER.

Top Layer with 2 perimeters
Top Layer with 4 perimeters

Of course, there is always a tradeoff. In this case, to print 12 the print time goes from 5 hours and 45 minutes to 6 hours and 42 minutes . . . about an hour longer. To compensate, I fixed another printer! Now we have 4 printers going!

3 printers
Plus one more!

I also put this . . .

. . . idea to good use . . . check out the lighting in our front door window!

Dexter is there for scale. Also the door helps with scale.

That was super easy to do and it’s attached with just a few tiny pieces of velcro (which acts as thicker double sided tape) in strategic places.

Categorized as DIY, Gadgets

LED Christmas 2021 project

WOW! It’s been a long time. My last job kept me too busy to blog and I had another kid and my . . . . okay those are all excuses. But after all this time I do miss it! So I finally had a reason to write and kept thinking I need to 1) move to https! 2) refresh the theme 3) something else . . . and those mind games kept me from writing too. I still need to do all that other stuff but I found a way to move past it. 🙂 DONE! Welcome to the new host and the 2021 WP theme! 🙂

I’ve been into Neopixel LED’s since . . . well, whenever Adafruit released that library and changed everything. Was it Adafruit? Okay, the details are fuzzy now. But when I first hooked up a strip of LED’s to a microcontroller it was really easy thanks to that library. And it came with all kinds of cool examples! I loved the rainbow example and played around with it till it was a pattern I liked, wrote that to the firmware . . . and then that was it! Whenever I wanted LEDs I had a way to make a rainbow of 50 LEDs I could just plug my microcontroller into a usb power bank and I had a nice little rainbow of colors. Seemed impressive at the time.

2017-2018 era

People have dreams of LED’s in their house behind the TV and under cabinets and the core issue is always the same . . . how do you hide the wires and the control box? I’m still not good at that. But you know what project DOES NOT require you to hide the wires and control box? That’s right! Christmas lights!

So back in 2017 or 2018, I bought these christmas lights from Amazon and strung them up the same way I have other Christmas lights up but this time I made a cool Christmas pattern and wrote that to the controller. I needed to inject power (anything more than 50 on a string is too much for the USB power let alone the tiny jumper wire I was using) so I used this power block that seemed water resistant enough I could just mount it under my roof. I put it half way though the strip to provide enough voltage to both size and DONE! Best Christmas lights ever! Except that the neighbor bought a set from Costco and his had a remote and like 10 patterns. FAIL!

2021 Goals

My wife has always wanted lights that were perfectly aligned instead of the droopy look you normally see in Christmas lights. And I always wanted to expand my firmware so that I could make a simple way to choose between, say, 11 patterns (no idea why 11, just had to be more!).

So, I had 2 goals

  • Find a way to mount to the roof so the lights are all lined up
  • More patterns!

I already had all the electronics (endless microcontrollers plus those LED’s from above) I needed from those past years but as usual, the mounting is what stumped me. I started to look online for what the “crazy Christmas lights” people do and there is all kinds of solutions: a) using PVC and drilling holes in them this size of the lights b) using the flat LED strips that are IP68 water rated and putting them in an aluminum channel with a diffuser c) this “Dr Zzs” guy that designed an aluminum “gutter” that has holes for the exact kind of LEDs I had already d) a professional with professional prices. I looked at the video from Dr Zzs and thought about going that route but I didn’t know how I would mount them to my wooden eves, working with metal gutters like that seemed like a nightmare, and, well, they were out of stock anyway.

The Software (WLED)

While I was on the journey to find a way to mount the LEDs I discovered the amazing WLED project. It seemed to be everything I ever wanted AND it had over 100 patterns many of which could be combined with your own set of colors. BOOM! So one morning I tried it out and was setup in with a string of lights controlled over wifi in an hour or two. The first 90 minutes of that was failing to see the Web Serial based “easy install” method and instead trying to figure out why the “pip install” method was not working. Don’t get me started. I just used a LOLIN32 board I had here from years ago which isn’t even listed as a supported board.

WLED is just SO GOOD and I’m just getting started with it. It can be controlled directly over wifi, using an app, or using a bunch of other methods. I quit playing around with it so I could focus on mounting the LEDs but suffice to say my family is going to have so much fun playing around with all the options.

Later I found out it was easy to automate them via a simple schedule so even that part is done (my LED’s from 2017-2018 stayed on all day).

The Clips!

My other hobby has been 3D printing (more blogs about that soon hopefully!). It occurred to me that this was the perfect use case! In fact, I had been thinking about that for a long time and was thinking about making these sorta “blocks” that would house the wires and most of the LED itself to protect it from the sun (I live in Phoenix, AZ and we don’t have freezing or rain or snow to worry about). The problem with the “block” idea was that the time to print all the blocks PLUS the cost of filament meant I would spend more on that than the LED’s themselves. And as mentioned above, there were cheaper solutions even if you went custom. So then I considered wood and just drilling holes, painting it the same color as my eves, and then mounting that. But then I saw the cost of wood! Plus the wood is never straight and neither is the roofline!

Then, thanks to another project I thought about what could I print hundreds of that would be really quick to print. And something that is about 10mm high and has a 10×5 I could print 20 at a time. So then the clip idea was born! It all seems so simple and obvious NOW but at the time it was a revaluation for me.

After about an hour, I came up with this

The idea here is I wanted something I could clamp onto the LED to hold it in place and something that would be fixed in two places so it wouldn’t swing at an angle when the wire was pulled (like a coax cable holder would). I printed a few prototypes to get the sizing right but soon I was printing 20 at a time. I really should have used PETG instead of PLA but a) PLA was already loaded in the machines, b) people say PLA is good enough for 95% of projects! how could I know it wasn’t good enough if I didn’t try? c) almost every time I have had issues with my printers it was when I switched out the filament type. It’s almost December! I gotta get going! Anyway, the next day, I had a nice pile to try out.


Having to place every LED and screw it in is a bit of a challenge in a few ways. For one, it takes longer than I have ever spent on Christmas lights before. It took over 2 hours for the first string of 50 (I only had 50 or so clips printed by then) and after those few hours on the ladder I was just kinda shaky so I had to stop anyway. But it worked! Here is the controller and a few LED’s. That white wire is for a camera . . . ignore that.

Not done yet! (new clip design)

That was the first 50! I have 250 to go to cover the roof line. I did another 100 or so the next the next day and wired up the injected extra power needed for that many LED’s with the power adapter I mentioned above. After showing this to Jim he had all kinds of ideas but one of them stuck. This is what he said almost exactly:

How about instead of _o_ you try o___o?

So that led me to my next design!

This one is a bit thinner (8mm instead of 10mm) so that I can use T50 staples (which are 10mm wide) to hold it down instead of screws. And as you can see it’s easier to feed in the LEDs. I did manage to break a few in my testing but it’s also possible to slide them on instead of pop them on so that’ll be my suggestion. I might also need to make them a bit thicker and the diameter of the inside of the C a bit smaller too. As a side effect, you can sorta make shapes by combining them.

I tried to staple them to a board as a test and it didn’t work the way I expected at all. The stapler has to be flat against the surface to work right and I was not able to put the staple across the 8mm width (you can see how far away the staple ends up on the upper left of the picture below). Instead I just put the staple right into the plastic and as long as I miss the holes I added as a screw backup plan it works fine. If the staple goes into the hole then the piece breaks or worse, it’s just wobbly and pivots on the other part of the staple.

I need to think more about a better “staple friendly” design but for now these should work. They really really NEED to work since I have a 1 gallon ziplock bag full of them!

The future

Okay, okay, so yeah, putting a breadboard in the eve of my roof isn’t going to last long especially with those tiny wires. There are a few good solutions I saw but I haven’t tried them because they are always out of stock! But many are cheap (like $30?) and have a esp32 included and have a custom board that has fuses and wire blocks that make hooking it up easy and safe. That said, I really like the idea of using what I already have and for now I’m going to 3D print a box. Next year it would be cool to design my own PCB and not need a breadboard or my previous favorite, just using a bunch of electrical tape to hold it all down. EasyEDA here I come! My guess is that for less than $30 I can make my own PCB (though it won’t be as good as the QuinLED-Dig-Uno).

I made SOME progress on that already but I need more time to make sure this will work.

Also, I have no idea how well the 3D printed clips are going to hold up. If they don’t hold up I’ll start sooner and print in either PETG or PC Blend (from Prusa). I really just need a set of 4 Prusa Mini’s for every type of filament!


Why 5V instead of 12V?

Generally speaking the 12 volt LED’s will likely give you less trouble as you go beyond more than 100 LED’s but I really really like the idea that I can power the LED’s from the board if I have to. Also, from what I read the 12V ones tend to fail in more dramatic ways I would rather avoid (but that could also be more ambitions plans and have nothing to do with the voltages). For sure I have to inject voltage/power at the start and then about every 100 LED’s if I want to maintain the colors across the entire length of the run.

Why not print with better materials to start with?

As I mentioned, whenever I switch out materials I have issues with the printers! If I had more time I wouldn’t mind switching one but I needed 100s of them really fast! Plus, PLA might be fine! We’ll see. Can’t wait to see if them melt in the summer!


It really was soooo easy. And while there are other options none seem to be as popular or as open.

What happens when I have 10 boards running WLED?

At some point you might want to do something that WLED can’t handle. The good news is that WLED supports all kinds of control protocols. It’s very common to use xLights to orchestrate many WLED controls. I’ll be attempting that as soon as I get all this installation done!

Products and links mentioned

None of these companies paid me to mention them (not that I would be opposed to that!) but all of them are helpful to make cool DIY LED projects.

Categorized as DIY

Phone holder for Gilbert Days parade 2021

This year Patterson and some other Gilbert Elementary schools were asked to participate in the Gilbert Days Parade. Okay, okay, I don’t really know if they asked or if they had to pay to participate or how exactly it worked out that Patterson was going. All I know is we were going to walk the mile or so as a family with a few others from the school.

This isn’t our first time in Gilbert Days parade. I think this might be our 4th or 5th time? So many times I forget. Last time we also walked with Patterson and it was FAR DIFFERENT from the years before. The first few times we went with Gilbert Parks and Recreation because Sarah and I taught some robotics classes there back then. And Gilbert Parks and Rec goes ALL OUT and has a big float and a theme and custom shirts and people decorate wagons that go around the float and we had candy to hand out (BUT DON’T THROW IT!) and we had music and people were dancing and the float had swings on it one year. It was super fun! And it was clear they put a ton of effort into organizing it.

Two years ago when we walked with Patterson, it wasn’t like that at all. We literally JUST WALKED. That’s it. No decorations. Nothing to give out. No wagons. No music. Nothing.

This year we wanted to do something different. So I decided to use up all my open rolls of filament and print out as many phone holders as I could in the week I had to prepare. In total we printed 590 of them! We had 6 gallon sized ziplock bags full of them.

3 of the 6 bags we ended up having
YES! It looks like a bottle opener!

Generally people thought they were bottle openers. Which is kinda funny that an elementary school would be handing out bottle openers!

7 Colors!

We also went to Sams Club and spent $60 on 5 boxes of Air Heads (90 in each box). With that we had over 1000 things to give out! The kids with us were giving out the Air Heads and the adults had the phone holders. The candy was gone after about a quarter of the way! Pro tip . . . if you want a cool give away, get a spot in the beginning of the route.

ALSO . . . we took a couple of wagons (to hold the candy n stuff and hold any kids that got tired) and we had Dexter in his Jeep (that has a remote control).

Dexter in the Jeep in front of me

People LOVED the Jeep and for the 3/4ths of the parade, Dexter was crying. But I think all the cheering helped and he was happy by the end. The trouble is we had to get there 2 hours early and he was already done and ready to go by the time we actually started. Plus, I wouldn’t let him ride in the Jeep those 2 hours on account of not being sure if the battery would last. It ended up doing the parade route and then going on a loop all the way back and was still ready to go another mile!

This time . . . we even had a banner to identify the school!

Patterson Banner Practice before the parade started

Overall we had a ton of fun and the give aways were a hit! Probably. The parade goes so fast you don’t have much time to get any feedback.

Thanks URS! (and AECOM)

Today is my last day at AECOM (formerly URS). It’s been a wonderful 2 years and I’m thankful and grateful I made the leap. I’ve repeated this story many times but for the first few months after leaving ASU I thought I made the second biggest mistake of my working life (first being . . . well, ask me about that later). Looking back I can’t remember what it was that made me feel that way but I’ll never forget that sense of dread.

Now, 2 years later, I’m a better programmer, a better co-worker, and probably a better person. On a technical level, I know Javascript/node better, I understand far more about MongoDB, GIS, PostGIS, Jenkins/CI and the list goes on and on. I also finally worked on a big budget/big project where we had several programmers (and even divisions between front-end and back-end), several designers, testers, documenters, deployment/IT engineeris, etc. It was the biggest project I’ve ever worked on and it was a joy to get to learn what goes into this kind of work from Alex and James.

No job is a utopia but URS/AECOM was very close. Sure, it was annoying that I didn’t get time for training or to go to conferences (even when I was speaking at a conference by request I still had to use my own PTO time and work as much as possible). And when I moved to a new location in the building my cube rattled and monitors shook whenever someone came by. But those are small since I had plenty of PTO and had a flexible schedule so that I could work four 10 hour days to take a Friday off for a conference and could work from anywhere and didn’t have to go into the office, etc.

When I explain my AECOM/URS love people ask “then why are you leaving?” and it’s a good question because I do like it here. Sure, the new job is more money . . . but it’s not THAT much more. I think the main reason for leaving is that so many others have left and I not sure there is going to be another big contract to continue the work I was doing and I wanted to be able to leave on my terms not when suddenly there was no more work.

Another thing I get after working here 2 years are some great connections and dare I say . . . friendships? Chris Hogan left not long after I started (and he worked out of the Germantown office so I never met him in person) but he was the first real connection I made and we still chat from time to time to this day and even met up at a conference and will do so again someday. James Fee is the main reason I left and went to URS (he did that “do you want to sell sugar water the rest of your life” speech but relevant to what I was doing) and I’m glad he convinced me to go and then went on to patiently explain GIS and what it means to work on a big project. . . . I think we have forged a friendship that will last as long as he can stand my . . . loudness?. Rachel Wagner was a great boss and I learned a ton about the company culture from her even as I made fun of the company culture. She was patient and was a great communicator (i.e. she listened!). Alex Bostic . . . I can’t say enough about this guy . . . he’s an amazing developer/architect and I learned a ton but besides that he’s just “good at life” . . . things that would be so irritating to me were put into perspective thanks to Alex. Thanks!

I worked with so many others on projects big and small but I don’t have time to write about every one of them. Huge thanks to Lauren, JP, Darla, Bose, Bing, Asa, Manuel, Robert, Jason, Bill, Patty, John, and finally, Robin, who I never really worked with but knew her because she happened to be close to my cube and always very personable.

On to the next! I start my new adventure Monday and after few months I’ll let you know if it was a big mistake! 🙂


P.S. This is what I sent to my colleagues at AECOM:


As most of you know today is my last day at AECOM. It was an amazing 2 years and I’m so glad I listened to James and decided to make the leap. I really am sad to be leaving and enjoyed my time here. I learned a ton, met many amazing people, and am immensely grateful for the opportunity. 

When your biggest complaint is that your new cube desk shakes when people walk by you know you have it good. Thanks AECOM! I hope you’ll have me back someday!

Feel free to reach out anytime at sheldon.mcgee@gmail or on twitter @tooshel. 



IoT Devfest Website Analytics

When organizing an event with 100 or so people, there are many decisions to make right away. Should we have a website? Brand? Logo? It’s not a huge event so putting it on Meetup or just using the ticketing website (we use Universe that has a really nice looking event page) sounds like a good plan especially with limited resources. Logo design? Only if someone on the organizing team happens to be a designer because that kind of thing can cost thousands of dollars.

We decided early to have our own website and got really lucky that a designer (thanks, Travis!) was willing to help out with the brand. We think having our own site and brand contributed immensely to the success of our event and below is some of the evidence we used to come to that conclusion.

In a later post I’ll go into some detail about how 2/3’s of attendees registered in the week before the event but that fact might help explain the analytics for the IoT Devfest website seen below:


As you can see, on Monday, January 4th we had our second highest number of “sessions” (a complicated metric but it’s the best guess at “visits”). It’s also the day we contacted our fellow organizers and asked them to get the word out and some did that on Monday but others did on Tuesday. Event day was Saturday, January 9th and that was the highest sessions with 523. I’m glad to see that so many people used the website and next time I’m going to make sure it’s even better. What else could we have added? Where could we have organized it better? What did you think of the logo/brand/design? Suggestions and feedback welcome! Hit me up on twitter @tooshel.


P.S. Below is the hourly sessions chart. It would be fun to correlate the time that we tweeted and organizers sent out email to the times where we saw a spike in website sessions (registration was on the front page where you see the video now . . . STILL keeping it up to date!). Maybe there is a business idea in there somewhere.


Categorized as DIY