Stop the Light: 2-Player Cyclone Game
by bar513 in Circuits > Arduino
41 Views, 0 Favorites, 0 Comments
Stop the Light: 2-Player Cyclone Game

Stop the light is a 2-player game based on the cyclone arcade game - where one should hit the button exactly when the main bulb is on. This version is for 2 players - the first one to get 3 points is the winner! (but watch out, missing the right LED will lose points).
We try our best to document this project and we made two versions, one that works directly on a simple breadboard with a wood case and the second one with self-designed PCB and 3D printed case, so it's easy to make this cool game without any expensive equipment.
We really enjoyed making this project which involved everything, from electronics to PCB design and 3D modeling and printing and of course some code to bring the game to life. I made this game with Ofek Shaybet, an awesome electrical engineer (who happens to be my cousin).
Supplies

- Arduino Uno (any MCU will do the job)
- 32 RGB LEDs (regular LEDs are also fine)
- 2 buttons with LEDs inside
- 4 register shifters SN74HC595N
- 4 resistors 370R
- active buzzer (optional)
- Lots of wires
code can be found on github and all 3d models and PCB designs are attached.
POC - Electronics




My first step is always to test the idea. First, a few RGB LEDs were connected directly to Arduino to test their current direction. We figured out that we needed more LEDs than the available Arduino pins so we chose the SN74HC595N shift register to minimize pin usage. These registers can be controlled with 4 pins and output 8 digital signals each. One register is not a huge difference, but when 4 are concatenated, 32 digital output are controlled with only 4 pins and that's a big saving. We had to connect to each led 330Ohm resistor but we had only had a few so we came up with the idea of placing the resistors between the shifters and the power supply. That way we used only 4 resistors and the power to the leds was limited. While this idea has it drawbacks, we found out that it is perfectly good for our needs. After we overcame the resistors problem, we planned how to spread the leds, 26 leds for the game itself, 2 of them are the leds of the buttons. the other 6 leds are used for scoring - 3 for each player. We wrote test files for each main component - test32leds, test_74HC595 and so on. Only after all had positive results, we wrote a small sketch to make a possible game.
POC - Case + Assemble




The electronics were all working, so we built a small case to test user experience and engagement. While most of the focus usually goes into making a functional product, the idea of a fun and smooth experience is overlooked in my opinion. I think that, as a game developer in my free time, creating a great experience is ultimately what matters. I wrote a full description of how I made my claw machine engaging, and I highly recommend the book The Gamer’s Brain by Celia Hodent, which helps readers understand the user’s perspective.
So, back to the case! We bought a cheap wooden box and threw everything inside. We drilled holes for the buttons, the game’s LEDs, and the score LEDs. We chose which colors to display (this is why we chose RGB LEDs—so we could easily select different colors) and checked that we had a smooth gaming experience. We found several interesting missing features that we later added (in Step 8), and we made big decisions for the final design: a larger case and buttons at a higher level. Brightness and LED placement were already good, so we kept them in the final version.
POC Is Ready!

PCB Design




We could have used a breadboard for the final version, but we decided to order a PCB because—why not? Today, PCBs are inexpensive, and designing one didn't take us much time. We added an option for a buzzer and access to extra pins on the PCB in case we needed them. The PCB works well, but it was designed quickly due to time constraints, so it’s more practical than visually appealing. We designed the PCB using KiCad and ordered it from JLCPCB.
3D Modeling




While the PCB was on its way, I designed the final case for the Stop the Light game using Autodesk Fusion. It was my first time using a PolyJet 3D printer (Stratasys J850 Prime), and I wasn’t sure about the hole clearance sizes. I printed small test pieces with different hole sizes to find the best fit for the LEDs and buttons. The PolyJet 3D printer supports several materials, but I used a brittle material, so I wanted to avoid cutting and other operations that might damage the model.
3D Printing in PolyJet Printer



I’m dedicating a full step to 3D printing because it took more than two days—and it was a pleasure to watch. We used an opaque material for most of the case and a smooth, transparent material around the LEDs. This created a beautiful effect, making the LEDs appear sunken in "water", with the light spreading softly around them. (The photos don’t fully capture it, so you’ll have to use your imagination.)
In contrast to FDM 3D printers, PolyJet printers are less common, so I’ll share some tips I learned through the process:
- Printing time and passes: The machine’s speed depends on the number of “passes” it makes. A pass is when the print head (with multiple nozzles) moves from one side to the other. The head is about 6 cm long, so a 1 cm or 6 cm object takes the same time per pass, as the printer must always complete a full pass. A 7 cm object would take roughly twice as long as a 5 cm object. By carefully designing the object’s dimensions and orientation in the XY plane to match the print head size, you can save hours of print time. (Even 1 mm less can save a full pass per layer!) I optimize rotation only, so my print took 2 days and 3 hours. If I had placed the object differently, as shown in the image, it would have taken 3 days and 5 hours.
- Support material: PolyJet printers use a water-soluble support material that is easy to wash away. The printer applies support under and around the object to create a uniform surface, and every small overhang needs it (no bridges exists like in FDM). Printing time isn’t greatly affected because hollow and solid objects take roughly the same number of passes, but you must ensure supports can be removed later. Always consider support removal during design to avoid trapped support material.
- Color capabilities: FDM printers typically support only a few colors, but PolyJet printers can print high-resolution, full-color objects because they can mix up to 8 materials at once. This feature wasn’t available to me when I did this project, and if it would, it would probably change my design approach.
Combine Everything Together



This step is mostly about assembling the entire game. If everything was designed correctly, it’s just a matter of soldering the PCB and placing all the components into the case. No glue was necessary because all the parts fit with the right amount of pressure.
We made a small mistake during printing, so the case ended up with no bottom (yes, I know...), and we couldn’t reprint it due to limited resources. Still, after all the wiring and soldering, we had a cool, physical, ‘cyclone-like’ game for two players. The next step was to make it awesome.
Engagement and Fun
We wrote the basic code for the proof of concept (all here and it’s open source), but we wanted to improve it. After several test games, we enhanced the gameplay:
- Added a buzzer that plays 8-bit music, with different tunes for winning and losing.
- Created a short animation when a new game begins, which also helps us check that all the LEDs are working.
- Randomized the starting position and direction after each win to avoid predictable patterns.
- Planned a time penalty for pressing the button at the wrong time, to discourage spamming before scoring the first point (not yet implemented).
- We kept the speed constant because found it challenging enough, but this system could easily support different difficulty levels.
- Used interrupts for button presses, ensuring no priority for either player (unlike checking buttons' states in the main loop).
- We did not add any artificial delays, making this purely a skill-based game (whereas in arcades, it often feels more like gambling).
Enjoy Playing

We really enjoyed making this project because it contained a bit of everything—coding, 3D modeling and printing, PCB design, and a lot of soldering. But the best part is actually playing it and discovering that it’s not as simple as it looks. Build it yourself, see for yourself, and enjoy the game!