Having light up buttons without custom labels feels like a wasted opportunity, and tying back in with the Potty Training theme, I've used some appropriate Emoji labels (recommended to me 😁) for the buttons.
This project will count number 1's (💦) and number 2's (💩), when nothing came (❌), and "told an adult" (🔔).
Grab your emojis, or images, then paste them in a document or your favourite graphics program. You can copy them from a webpage (they're in the paragraph above) or another page / app.
You can also hand type emojis! I used the Windows Key and Period (.) to bring up the Emoji keyboard (Command + Control + Space on mac), and then searched for the emojis. Try searching for 'sweat', 'poo', 'cross', and 'bell'.
Issues? Try emailing yourself emojis using your mobile phone, and then copy from the email once back on the computer.
Use a large font size (I used 80pt) and print them out.
If you find the characters/emojis are not displaying correctly in your software then try changing the font, or switching software.
You're aiming for images/labels that are a maximum of 37.4mm (1.472" or 1 15/32") width and height, but you can make them with a larger edge and use the inside diffuser piece of the button as a template for cutting.
Simple printed paper works fine, as do sticky labels, but transparent versions might block less light.
I've used whole A4 or Letter sheet sized labels suitable for inkjet printers and added some extra emojis for later projects.
Read the guide (linked below) for details on how to safely remove the button from it's case.
I used a plastic dental spatula (like a spudger) to help the clips over the inner lip, and to then carefully split the inner button to remove the transparent lid and reveal the label location.
Place the label into the transparent button lid, or apply the sticker to the inner button light diffuser (with the domed back side, resting on the tweezers in this image), then reassemble the arcade button.
It can a be a tight fit if the label is poorly trimmed, so use a moderate amount of force if needed. It will then be extra hard to remove again, but not impossible if you carefully lift from the corners.
If you need a bit of help with assembly and disassembly of the buttons, then check this guide dedicated to Arcade Buttons:
Make a case - 3D Print / Laser cut / Drill
If you're making your own case then you'll need to mark out a template for the holes to cut, or use CAD.
The arcade buttons have two nubs / pegs approximately 4 mm in diameter and 42 mm from furthest edge to furthest edge (38 mm center to center). They stop the button being rotated, but can be cut off.
Then you need a 26mm hole for the big screw thread, or 23.5-24 mm with a chamfered edge at the front.
The spade terminals add a few extra millimeters to an already deep bolt and switch unit, approximately 60mm from the back of the button to the end of the spade plus a sharply bent (almost 90 degree) wire.
While reassembling later (after dealing with mounting to the wall), it may be easier to remove one or two spade connectors that are close to the struts.
Prototyping is important, as it's a risky idea to assume everything will work out perfectly first attempt.
A friend and I had great fun testing a single button version of the potty trainer. It's top is too flexible, although that is still strangely enjoyable!
Initially I used the laser cutter, due to its rapid speed, to see how the fit and spacing felt. A quick project box followed, with top plate for hygiene reasons.
Switching back to PETG for 3D printing, and using a Brim for support, the case prints on it's side for maximum strength, with the Terminal PiCowbell clips closest to the bed. I printed with a 0.6mm nozzle.
Here is the 3D model in STL format, oriented correctly:
My first clips for the Terminal PiCowbell worked well, but self-destructed in the CAD model when I moved them.
It's important to be thoughtful about relative references in parametric CAD designs. Use offset planes and variables based on other dimensions if possible.
The second version now works when the PiCowbell is moved in the design, but I initially forgot the offset for easy insertion. Now it has that satisfying ease and a good snap into place.
You can modify the model configuration, but you'll need to setup an OnShape account (free for public designs).
Attaching to the wall
Listen when Ladyada says something! She told me under no circumstances use double sided tape for the project, as people have so many problems with poor quality tape or humidity affecting stickiness.
It's quite a heavy project to be sticking on the bathroom wall, so Ladyada suggested using strong magnetic strips, or magnetic tape, instead of risking it with double-sided tape.
Using the magnet strips is a great idea as they are really easy to apply and super strong, while also being removable!
They usually arrive in pairs, magnetically attracted to each other, with sticky on the back sides.
Simply leave the two magnetic strips attracted together with the sticky side on the outside / backs, then remove one piece of backing paper and stick that side to the project enclosure.
Locate the first pair of strips at the top edge of the back side.
Use a second pair too, along the bottom edge this time.
Leaving the backing paper in place is a good idea until final installation.
Now bring your project into the final installation location. Remember that this project is only splash resistant, so should be positioned accordingly. Remove the remaining backing paper, and stick the project to the wall.
Apply a good amount of force and squidging where the sticky magnetic strips are located. I like to imagine squeezing bubbles out of the newly applied sticky magnetic tape. I also removed the wiring first!
Leave it for a minute or so before testing the removal.
If you're in rented accommodation then you'll need to remove the sticky magnetic strip eventually, but don't worry as there is a Sticker Removal spray which can make a light job of such things.
After you're done potty training, the same enclosure can be turned on its back, some grippy feet attached, and you have a wonderful table-top button console! Why not try CircuitPython and make a custom controller!
Page last edited June 18, 2025
Text editor powered by tinymce.