Blue boxes and other associated signaling "boxes" have been used by phreaks for over half a century to manipulate the telephone system. Steve Jobs and Steve Wozniak's first big gig together was manufacturing and selling blue boxes, some of which were sold to celebrities or the mob. Today, the Arduino microcontroller is a popular choice for creating digital blue boxes which can be used to interact with various systems.
What it does
This “blue box” is a multifunctional multifrequency tone generator, used to generate the tones used for several different signaling systems. The compact Arduino-based unit allows for convenient interfacing into a standard telephone.
How we built it
This blue box has:
- 3 modes (test mode, silver box mode, blue box and red box mode)
- 16-button keypad
- Pushbutton for toggling between modes
- Headphone jack
- Telephone earpiece for high-fi audio
- Volume control (1K potentiometer)
Challenges we ran into
The biggest challenge was getting good audio. Initially, I produced square waves similar to what we did in previous labs, and the tones didn't sound all that great, and more importantly, they didn't really work. I could not even get the 2600 Hz tone to operate reliably. As a result, I made several improvements to my hardware and software:
Swapped out 10K potentiometer for 1K pot, to reduce the loss in volume caused by resistance
Obtained a U1 receiver element (i.e. standard telephone earpiece). This produces a sound far superior to that obtainable through headphones or a standard speaker, and allows for easy acoustic coupling to a standard telephone.
Switched from square waves to sine waves.
With sine waves, I found that my initial PWM frequency of 31,000 Hz was too slow in order to be accurate at all 16 frequencies needed. I tried out a few different frequencies and settled on 124 kHz, which provided sufficient accuracy at all frequencies within the maximum 1% tolerance requirement.
As code was changed, I also noticed that the frequencies kept changing, due to the effective speed of the program changing. As a result, I had to re-calculate the sine tables numerous times.
Accomplishments that we're proud of
2600 Hz works perfectly:
What we learned
Overall, I learned a lot from this project. My biggest challenges all revolved around reliable, consistent, and precise tone generation. I began using square waves to generate the needed frequencies, but I quickly found that these tones were too “dirty” and weren’t detected very well. I then switched to using sine waves, and I had to experiment with different PWM frequencies in order to find one that worked well. I ended up settling on a PWM frequency of 124 kHz. I had to refine this part several times as I tried to find the right balance of speed for frequency precision and being slow enough that the rest of my program had time to run and do other things. I learned a lot about sine wave generation and understood the theory much better as I progressed.
What's next for Blue Box
A remaining obstacle proved to be getting multifrequency tones to generate precisely, and I had difficulty in getting these to get detected. I tried different approaches for this and switched from two different sine wave outputs to an additive approach in an attempt to improve accuracy. This is an area where there is still room for improvement, and a next step for this project would be improving the precision of multifrequency tones.