This is a project that DASPRiD and I came up with at the end of NFC 2019 – it actually was inspired by NFCs Blip System. We – and probably most attendees – love what they have done with it and got the idea to implement something similar for Furvester while trying not to create a blatant copy.
Our first idea was to implement the whole system using microcontrollers, namely ESP32, mostly because they have an extremely short boot time and usually run very stable. NFC is using Raspberry Pis for theirs and their boxes unfortunately need regular reboots when Furries start abusing them. And being Furries, that’s what they do…
The problem was: It turned out harder than expected. We would have needed at least 3 microcontrollers in each box to get it running smoothly so we changed plan and also went with Raspis, though we are using the Zero W model which has a way smaller form factor, built in WiFi, and can easily be mounted on a pcb which was another thing I wanted to do: Give it a clean, modular construction which allows easy replacement of parts if needed and survives certain degrees of furry abuse.
While DASPRiD was working on the software and recorded tons of sounds, I started designing the hardware. We made a rough list of features that are needed:
- The Raspberry Pi of course
- NFC Reader
- Some kind of status LED
- Volume controls
- Proper, stable power supply
- Rigid case
The next problem we encountered was sound. The Raspi Zero has no analog sound output! My first try with running sound through the GPIO did not get the expected result. To be blunt, it was horrible. The “quality” of the sound was definitely not acceptable. While looking for alternatives I found the MAX98357 which seemed perfect for the task: A fully integrated solution which can be run by the Raspberry Pi through I²S and has a built in amplifier. And since there are ready to use breakout boards available I got one and tested it. With a proper 3W speaker we suddenly got crystal clear sound with quite high volume! I immediately ordered more of them…
The NFC Reader is also a module that’s available everywhere and well supported: We’re using a PN532 board with integraded Antenna and SPI support which is fast and reliable.
For the LED I chose a simple standard common annode RGB LED which is controlled by three GPIO pins of the Raspberry Pi through BC817 transistors and a few potentiometers to calibrate the colors
I added two push buttons to the design that are also hooked to GPIOs to control the volume through software. That way it can be locked to certain levels without touching the box itself (Did I mention it needs to survive furries?)
The power supply is solved in a slightly unconventional, but very reliable and safe way: I have tons of robust 12V power supplies available that are originally made to run consumer grade routers. They are built to last and fulfill all the needed requirements to be used in a public area. Internally I am using a little switching supply that turns the incoming 12V into stable 5V with a maximum of 3A – more than enough to run the whole system.
After deciding on all parts and also getting some cases it was time to design a board. I didn’t want to just solder everything together but have a clean solution that keeps everything in place and makes it easy to service if needed.
All modules – the Raspi, NFC, and the sound module – are plugged into the board with headers. Power supply and the buttons are connected through screw terminals. Only the small bits and pieces get soldered in directly. All together assembling each box cost around four hours, not counting all the planning and design work.
Now that Furvester started and four boxes are running all around the clock I can say that the whole system runs very stable and it seems to be a blast for our attendees to play with them! We already found flaws that need to be fixed for next year since some furs found ways to cheat the system and one big lesson learned is to use stop nuts since the vibrations from the speaker are enough to loosen them. Overall it is a big success though and the Boop System will get more stuff for next year!