TI Calculator Spectrum Analyzer

After I read about the potential for building a 2.4 GHz spectrum analyzer using a radio transceiver module, I was determined to create an analyzer that used a TI calculator. The analyzer scans the 2.4 GHz band from 2.400 to 2.495 GHz, checking the signal strength for each 1 MHz channel, and then plotting them on the calculator screen. It will detect wireless networks, microwave ovens, keyboards, cordless phones, and any other devices using the 2.4 GHz band. The total cost is about $20.

As the link port lines are TTL logic, and thus compatible with the I2C protocol, I settled on using a PCA8574 8-bit I/O expander chip as the basis of my design. The PCA8574 (and its predecessor, the PCF8574) are I2C expanders which control 8 bidirectional I/O lines. This allows the calculator to interface with any SPI or other TTL logic digital device, including LCDs, EEPROMs, and in this case, the CYWM6935 SPI transceiver module.


The schematic (click to enlarge) is fairly simple. The input power source (5 - 15 VDC) is regulated to 3.3 V which is fed into the transceiver and the PCA8574. The rest of the connections are largely just wires from the PCA8574 to the CYWM6935.

Parts Hardware

I used a solderless breadboard to initially connect the components. After initial testing, I soldered the circuit on perfboard and squeezed it into a RadioShack project box. A 9V battery provides power and the box has a jack for the calculator link cable.

[prototyping][wiring][installed circuit]
[finished box]


The software is for the 83+/83+ SE/84+, however with minor modifications it will work on any TI calculator. The source code is designed to be modular and is broken into sections. At the end of the file are the I2C routines to send a START bit, send/receive a byte, and send a STOP bit. These I2C communication routines are then used by the SPI routines to implement SPI through the PCA8574. Lastly, the CYWM6935 routines use the SPI routines.

After connecting the analyzer to the calculator and turning it on, run the program either by Asm(prgmSPECTRUM) or through MirageOS. The default frequency scan range is 2.400-2.495 GHz and a plot of this range will be displayed and updated in real time. Each screen column corresponds to 1 MHz, and is delineated with 5 MHz minor tick marks and 10 MHz labels where a label of xx corresponds to 2.4xx GHz.

For maximum speed, the keypad is only scanned once per screen update, so keys must be held down to take effect. Pressing Y= (F1) will change the display mode. The current mode is displayed in the lower right corner of the display. Available modes are:

Pressing WINDOW (F2) for RNGE will adjust the scan range. Shrinking the range will proportionally increase the update frequency. The top and right arrows adjust the end frequency, and the left and down arrows adjust the start frequency. Press the MODE key to return to the main screen.

Pressing TRACE (F4) will enter the WIFI mode, in which the center band frequencies for wireless channels 1-11 are scanned. While in this mode, the FAST/SLOW/EXPOSURE settings are still available. Press the MODE key to return to the main screen.

Pressing the 2nd key will, on 83+ SE and 84+ calculators, toggle 15 MHz mode. This requires aggressive timings between the calculator and the PCA8574 and may or may not work. Press and hold 2nd until the next screen update and then release. This will toggle the mode. If you hold down 2nd for too long, it will toggle twice and not change the speed. Once in 15 MHz mode, the update frequency will be 2.5x faster.

In the image above, you can see my wireless router. Channel 2 is centered at 2.417 GHz and extends +/- 11 MHz.


This was inspired by Miguel A. Vallejo's cell phone analyzer.