Scoreboards

Find a comfy chair and a beverage of your choosing. You’ll want them both for this one. While you’re at it, maybe also grab a snack or two. This one is not like my other projects, parts of it are firmly outside of my comfort zone. I was not hired to do this one, no one suggested it to me. This one, I brought upon myself. Well, not quite. The idea came from Bob Clagett. For those of you unfamiliar with Bob, he’s the “I Like to Make Stuff” dude. Youtuber, blogger, podcaster, you get the idea. 3+ million subscribers on his primary YouTube channel. He really likes to make stuff. You can find the video at https://youtu.be/w0bPVxGj5cc where it has been viewed over 400,000 times. I wonder how many folks were crazy enough to try this one at home? I have no idea, but when someone decides to count, be sure to include me.

The finished scoreboards

Now Bob built his to go with a foosball table he built. I have never seen that video and don’t have a foosball table. I was actually sitting in a middle school gym, watching my daughter compete in a high school fencing meet. Yes, fencing. Like Inigo Montoya and the Dread Pirate Roberts only in white outfits, but let’s not get sidetracked. The boys team was competing in front of us, and the girls team was behind them – which meant, you guessed it, I couldn’t see the score. “Sure would be great if there was a scoreboard” I thought to myself, “on the wall, like for basketball” – but in this case, for fencing. Now the primary gym where the high school basketball team plays has a scoreboard – but fencers are not allowed to use that gym, so in the other gyms where fencing can be found, there are no scoreboards.

Bob Clagett to the rescue (indirectly, of course). I can make a scoreboard, just for fencing. Bob did it and he made it look easy. It could hang on the wall during meets with a french cleat (the woodworking youtubers would be so proud), and then store away with the fencing gear all other times. Finally, an alternative to those little vinyl flippy numbers that look, well, second class. “This is a great project” said the little voice in my head, and so began my scoreboard journey.

Now, if you haven’t watched Bob’s video, you might not know that he based the electronics on an Arduino based control board from Intel that has built-in bluetooth to control it from a phone, and he provided the code. You might also have noticed, that since he is on youtube, he is required to use a 3D printer or a CNC or a glowforge or epoxy, otherwise they take away his youtubing license. At least I think that is the rule. I do not have a youtube channel, and thus, none of the above listed equipment. Did I mention that the Arduino he used is no longer in production and I could not find an old one for sale anywhere? Did I mention that meant much of his code would therefore no longer work? It’s OK, I can just post a question on his site to get updated code or a suggestion for a new board – but no. There are dozens of those requests and no replies from Bob. He likes to make stuff, not answer comments. With three million subscribers, his way clearly works, so I will need to figure this out.

First order of business was how to make it. The basic layout is straightforward – one that says boys, one that says girls. Each would show the scores for the home team and the visiting team. Fencing meets are 27 bouts long. The team that wins the most bouts, wins the meet. For my purposes, that meant I only needed the score to be 2 digits, as 27 is the highest possible score. Now a side note here, the scoreboard is for the meet score, and not the bout score – there is a small, electronic scoreboard for the bout score (first to 5 touches wins) – but that is connected to the fencers, and is regulated by the various sporting bodies. I wasn’t going to touch that. This is for the meet score so parents like me can see how the team is doing. Remember, no more flippy vinyl numbers.

Cardboard mockup for sizing

With help from my daughter, the fencer, we mocked up a cardboard version of the scoreboard to test the sizes of all the various elements. That went quickly, settling on a main panel about 2 feet tall and 3 feet wide. We followed Bob’s lead on the numbers, 3 pixels wide, 5 pixels tall, so 15 per digit, 4 digits, so 60 all together for each scoreboard. Now that we have rough dimensions and a layout – how to build it? Bob made his with a string of addressable LEDs that he glued in to holes in some plywood and 3D printed little cup shaped lenses to diffuse the light and create the look of a scoreboard. I searched all about for little plastic things I could repurpose, but to no avail. Bob had an issue with his first try – the light from one diffuser bled in to the ones around it, forcing him to remake them on the 3D printer with two different plastics – the sides blocked the light, the “top” or “front” was translucent to see the light. What if I recess the LEDs in a thicker board and recess a plastic lens on top. That way no light will bleed from one to the next, and there will be a diffuse light facing the viewer. Finding pre cut circles of plexiglas on Etsy sealed the deal.

The next challenge was how to actually construct it all. Given that I am used to working with wood, that is of course my go-to choice. I pondered building it from rigid foam board, with a wood frame around it, but the thought of that squeaky noise that foam makes when you work with it sent shivers down my spine. I also wasn’t sure if my various tools would cut it cleanly and not melt on my forstner bits. Someone on youtube made an LED panel with cardboard as the structure, but they cut all the pieces (lots and lots of them) on a CNC. In hindsight, I should have spent more time on this, and tested working with the foam as it would have allowed the scoreboards to be much lighter. In the end, I chose a layer of hardboard that was the same thickness as the plexiglas. That also gave me a perfectly smooth surface to paint dark blue to match the team colors. Next was a layer of 3/4″ plywood that would surround the LED bulb, effectively recreating the cups that Bob 3D printed. Lastly a backer of 1/2″ plywood in which to mount the LEDs. To help reduce the weight, I drilled dozens of extra holes in the 3/4″ plywood, that got covered top and bottom by the other layers. Next time, maybe 1″ foam instead, if there is a good way to cut the circles out. The final step was a wood frame around the whole thing, that gave it sides, and depth to protect the insides, and give me a way to hang it on the wall.

Drilling pilot holes using a Portalign and my grandfather’s old drill

With my daughter helping, we made the frame using pre-primed finger jointed pine boards and pocket screwed them together. We added a roundover to the outside edge, and on the inside, we framed it out with 1/4″ x 1/4″ quarter round. That would be the “stop” that held the main panel in place, and gave it a nice profile. To make the main panel “sandwich”, we created a template on a separate piece of hardboard, marking out the grid of where the holes should be. We clamped up the layers of the sandwich and the template. Then using a portable drill guide (a Portalign) with a drill inherited from my grandfather, we used a teeny tiny drill bit to make a reference hole through all the layers. This gave us a reference for the center of each hole placement to drill the different layers, with different sized holes. The top got a 1 3/4″ hole for the plexiglas circles, the middle had a hole about an 1/4″ smaller, creating a 1/8″ lip all around for the plexi to rest on. Finally, the bottom layer had a 1/4″ hole to insert the LED into. Rinse and repeat for the second scoreboard. Then glue up the layers into a big sandwich.

The primary woodworking is complete, time for paint and electronics
Painting the scoreboards in school colors
Painted, with the plexiglas lenses for the labels installed, but not yet on the number pixels

From there it was on to the electronics. Not at all my specialty. At least there was a good place to start. Wiring up the LEDs. The ones I used are WS2811 RGB LED lights. These are individually addressable – meaning you can tell each light in a string to do something different than the others – change colors, turn them on and off etc. Most importantly is each LED has wires that go in to the light, and another set that goes out (becoming the input of the next LED in line). They have to be configured in that direction, from the beginning of the 50 light strand to the end – and yes, you can link the strands one to another. I needed 60 lights for each scoreboard and the way the digits are spaced on the scoreboard, I would have to cut them and add wire “spacers” to get from one digit to the next, and from the Home side to the Away side. I bought some 22 gauge wire in multiple colors to help me keep things organized, and tried using crimp connectors. That was a fail. Half the time the crimps didn’t hold the wire, other times the connector broke.

Soldering the addressable LEDs

Next up, a soldering iron. I tried a cheap one from Harbor Freight. That was failure number two. Just wasn’t hot enough. I ordered a less cheap one online and that did the trick. I also picked up a heat gun at Harbor Freight – the mid range Bauer brand. How could I resist? Now, as I soldered each connection, I sealed it up nice and neat with heat shrink tubing. After the first handful, I taught my daughter how to do it, and she did most of the remaining connections. Making good progress, but now the challenges started to pile up.

Heat shrink tubing being applied

It was time to sort out the wiring of the Arduino, and how to program it. Bob’s example used a bluetooth connection built in to the board, but that board was no longer available. There are add on bluetooth devices that can be purchased, but the code sample I had would not work with them. My initial thought was to make a control box, with arcade style buttons. An up and down button for the home team, an up and down button for the away team, and maybe a reset button. I thought if I could figure out the wiring for that, it would make the coding easier – and not have to worry about connectivity challenges. Nice thought, but I never sorted out the wiring to make it work. As an aside, I did make a trivia game buzzer set – a series of wooden boxes, each with an LED and an arduino controller. My younger daughter would read a question, and the rest of us had to hit the buzzer like on a game show. The first button pushed would light up the LED while the others would not light. I tried to work from that to the controller box, but could not sort it out. Maybe wireless was a better way? Certainly one less cord to trip on would be a benefit.

The arduino controller board

Next up, I tried ESP boards that had both an arduino controller and wifi all in one, but again, never got them to work the way I wanted. Then I moved on to add wifi to the Arduino. Actually managed to get it to work, but the signal was poor and the connection from my phone was less than consistent – especially as I moved around my house. Given all the work put in so far, I was not comfortable staying with that. Next up was bluetooth modules. They were infuriating. Must have tried a dozen different ways to wire them up, and just couldn’t get a connection to my phone. Finally I came across an article that mentioned it was not compatible with iOS. Of course I was testing on an iphone. Borrowed an Android device, and sure enough, it connected – but I needed a way to make this work on both. More research led me to a different bluetooth module and that actually worked!!

The bluetooth module

OK, now that the phone and the arduino could communicate, how would the phone send commands to the device? In Bob’s example, he used a generic app that had some buttons that he coded to increment the score – but the code wouldn’t work on my device. I found a new app, RemoteXY, that let me customize the screen that the phone would show. It was awesome, but it also didn’t work for me. In the end, I could get it to make the connection, and to show the interface, but never got the arduino to respond to the commands. I believe there is a syntax issue, or a command we never figured out that would have done the trick, but that still eludes me. In the end, after much searching and trial and error, I stumbled upon Dabble. It is also a generic app used for teaching coding and robotics and such. It has several generic interfaces, one of which looks like a generic video gamepad. Up/Down/Left/Right on each side. To work the scoreboard, just use the up and down buttons for Home and Away. That will work – now to get the code in the arduino to actually turn on the lights, and increment the numbers properly when the buttons are pushed. This is where RemoteXY failed, but Dabble worked. Their documentation was better and after a lot of trial an error – and some last minute help from my wife when I was truly at a dead end – the commands were actually passing through and we could adapt the number pattern and the logic to increment the numbers from Bob’s original code. Shazam – it actually worked. Home and Away, one in Blue, one in White – numbers go up and down. Yay.

Rainbows!

Then my daughter asks if we can make use of all the colors the LEDs can make, and could we please make a rainbow of colors? Using the adafruit library, we added a rainbow effect on startup – so when you power them up, it creates a rainbow of colors across all the lights, and then goes to 0-0 to start the meet. It’s just an added bit of personality. Now I could focus on how to power them, settling on a cell phone power bank. Easy to recharge, connected to the lights and board through a USB so no voltage step downs needed. With help from my daughter, we painted the main panel blue, the frame white and mounted the french cleat. Now that it was working, we painted the recesses where the lights go with white paint, sanded all the plexi discs to make them translucent, and glued them in place. The LEDs mount from the back, and a dab of glue holds them in place. We added a second strip of simple white LED tape to the cutouts for Boys/Girls, Home and Away – cut the plexi for those, and again sanded until they were translucent. We used self adhesive vinyl letters on the plexi and now it looked like a proper scoreboard. They were ready to use.

Apologies for the bad picture of the livestream, but here it is in use

Then there was one last hurdle. Due to the pandemic, the fencing team was going to compete in a different gym – with no place to mount a french cleat to hang them – and no one in the stands to watch. I came up with an idea to add a stand to the scoreboard that is hinged near the top. It folds in to the body of the scoreboard for storage or hanging on the wall, but when that it not an option, it folds out and locks in place with a little metal “hinge” like on a stepladder. Not exactly ideal, but it works. I wrote up instructions and laminated them, and attached them to the back of the scoreboard and sent them to a meet (no spectators allowed). The kids followed the steps, and we parents could actually see the score on the livestream. The home and away LEDs are too bright for the camera and so they look like white rectangles, but the score is plainly visible. For next season, maybe I will adjust the brightness, or maybe in an actual gym in person, it will look fine. Fencing is a winter sport so there is time. The team used them for the season, and now they are hanging from a french cleat in my basement, waiting for next season – though I guess if I were to build a foosball table, I do have a great way to keep score.

The back showing the stand, and the USB power bank

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s