Table of Contents
Universal Autofire
This project is the result of a specific need: autofire for any arcade cab or joystick where 5 Volts is available, and buttons are connected to ground when active. Which is most joysticks and console controllers.
This is not a complicated circuit, nor is it particularly creative or innovative. But when I wanted to build something that simply made button ground available or not, I couldn't find anything. Hence, this.
Theory
This circuit uses two primary components: a 555 timer chip and a transistor.
The 555 chip is a timer. It outputs an alternating logical high and low signal at a specific interval, but since the high output isn't required a transistor is used to connect the buttons to ground when the 555's output is high and effectively disconnect when the output is low.
Put another way: the 555 sends a signal and the transistor throws a switch.
The Circuit
Parts List:
- 555 IC
- 100Ω resistor
- 1000Ω resistor
- 22µF capacitor
- 2N2222 transistor (any NPN transistor will do)
Modifications
LED Indicator
The LED and resistor are optional, but if you want a flashing indicator of the current speed, this is how you set it up. The LED draws its power through the resistor, and connects to ground when the transistor flicks the switch.
Different Speeds
The circuit was designed to be easily adjusted. You can change the speeds by swapping in different capacitors or resistors. As shown above it creates a 31Hz autofire. By swapping out the resistors or capacitors for different values different speeds can be achieved: 31, 20, 15 or 10Hz respectively. More or less, they're not exactly these speeds but they're very close.
The different values and speeds are:
| Resistor Change | Capacitor Change | ||||
|---|---|---|---|---|---|
| Speed | R2 | C1 | Speed | R2 | C1 |
| 31Hz | 680Ω | 33µF | 31Hz | 1kΩ | 22µF |
| 21Hz | 1k | 33µF | 21Hz | 1kΩ | 33µF |
| 14Hz | 1.5k | 33µF | 15Hz | 1kΩ | 47µF |
| 10Hz | 2.2k | 33µF | 10Hz | 1kΩ | 68µF |
| Note: Change the capacitor or resistor. | |||||
You may replace the part, or put several into the circuit and select the active one with a switch. If you use a variable resistor for R2 you can dial in all the intermediate speeds as desired.
A dual 555 chip (or multiple 555s) could be used to provide several different ground points for different speeds on different buttons.
If desired, a circuit could be made where all four of these capacitors are included and a switch chooses between them. Or a dual 555 chip can be used to create two different speeds for different buttons, etc.
Credits
This design is released by NFG as CC Zero. It's public domain, free, do what you want with it. Credit NFG, and/or link to this page if you want, it's not required.
To generate the values for this circuit the rather excellent 555 Timer Calculator was used.
There is a great explainer about the 555 chip on eleccircuit.com.
The image of a transistor was yanked from the On Semiconductor PDF for the part.
