David Findlay

Badminton Scoreboard IV: Working!

Last time I had just sent the boards for fabrication on February 22nd. I got them back on March 7th:

Boards

They look amazing. I find it hard to believe how easy, cheap ($9.10 for 3, shipped), and quick it was to go from the Sparkfun Eagle tutorials to a physical board in my hands.

Assembly


I should have left room on the board to fold over the bigger caps, but other than that putting together one of the boards went pretty well:

Initial Assembly

It didn’t work though, and after a minor panic I realized I had switched the 5V and GND pins for the radio when creating the schematic. Once I switched the jumper cables attached to them around it worked!

Next I hacked a bandaid box as a case. It works okay for now, but it was hard to cut and so the edges are pretty rough. I’ve joined my local
TechShop, so I plan to make a better case for it at some point.

Here’s the initial assembly in the case:

In the box

You can see what an awful mess of jumper cables I had. I realized at this point that I should have used male connectors on the board for the radio and display, not female. I have a solder sucker but no braid, so it took me ages to get them swapped, and I did something bad to the radio 5V connection in the process. Rather than go through the pain of taking the male connector off, after spending so long to get it on there, I took the easy way out and just used the 5V pin on the ICSP header. I will now for next time.

To clean up the jumper wire mess I tried making a ribbon cable using standard male connector pins, with heat shrink around each connection, but I could tell it wasn’t going to hold up to use. It also looked like crap.

I didn’t have any pre-made 1x5 cables but I realized I did have 2x5 cables, and who cares if you don’t happen to actually connect one row of the pins to anything? One of those cleaned up the display connection nicely.

The radio was more problematic since I had screwed up the 5V and GND connections—if they’d been right I could have plugged the radio directly into a female socket on the board as originally intended. Instead I used a 1x3 servo cable and 3 jumper wires. Not ideal, but much better than the mess I had before.

This left me with:

After Cable Cleanup

Field Test

I took the roughly assembled version to our next badminton evening to try it out. The range of the key fobs was much greater than it had been on the breadboard: they worked from every corner of the gym. I suspect the difference is due to interference from the breadboard’s many connections, but whatever it was the real-world range with the custom board meant the key fobs were actually going to be practical.

The scoreboard worked pretty much perfectly, except that sometimes if you released the button too quickly it wouldn’t register the button press. That meant we ended up having to look at the scoreboard while pressing the key to make sure it registered. By the end of the evening it was clear that adding a beep when it recognized a button press would make it more user friendly.

Adding a Buzzer

A piezo buzzer ought to do the job just fine, but I hadn’t broken out any of the other digital I/O pins. However the ICSP header has connections to MOSI, MISO and SCK. These correspond to digital pins 11, 12 and 13 of the Arduino respectively, so I was able to hook up the buzzer between SCK and GND and add a tone() call for D13. It seems like it will be loud enough, but I won’t know until we play next if it really is.

Updating the Firmware

I updated the code to add the beep then tried to upload it using my AVRISP mkii, via the File/Upload Using Programmer menu item in the Arduino IDE. It kept failing with a “bad AVRISPmkII connection status: MOSI fail” error. It took me a really long time to figure out why: I probed the pins, double checked the schematic, compared it to a SparkFun arduino clone design, asked a question on the Electronics Stack Exchange and got nowhere. Then, a week later as I was redoing the cables I noticed a solder bridge between MOSI and GND on the underside of the board, where I’d soldered the ICSP header pins. I fixed the bridge and it started working. I can’t believe I didn’t find that earlier!

Fin

Here’s the final state of the connections, including the buzzer:

Final

And here it is in action (taken before I added the buzzer):

In Action


Lessons Learned

  • Get the schematic right!
  • Allow more room around the outside so the lettering isn’t chopped off.
  • Check for solder bridges when things don’t work.
  • Make room for strain relief for the battery power connection cables.
  • Make room for mounting holes.
  • Make room for bending capacitors flat to the board.
  • Think harder about whether male or female connectors are what’s needed before soldering them.