Finally I got my Spectrum Analyzer to work.
At first I was curious if I could use the display from an old Nokia cellphone I disassembled in conjunction with the Arduino. So I was looking for anything that could help me in doing so.
Then I stumbled across Miguel A. Vallejo’s Handheld 2.4GHz Spectrum Analyzer.
Putting it into a cellphone case would be too cool, but I don’t solder SMD, and I had an Arduino Nano lying around. So I ported the project to the Arduino platform. As the Arduino Nano operates at 5V and the display and the radio both at 3.3V, I had to use voltage dividers on the signal lines.
The CYWM6935 is kind of hard to get in Switzerland. Either you pay 3 or 4 times the regular price for the device or ridiculous shipping fees or both. I ended up ordering one from Farnell for CHF 48 including shipping.
The main problem I was chasing for a while resembled to the following: I made a voltage divider for the 3.3V to power the display and radio without considering the resistance of the circuits. So the driving voltage was too low for operation. Ha, out of training in designing electronics… In the end I’m using the 3.3V from the Arduino. I thought I read somewhere that it works only when powered from USB, but in my tests it works on battery as well.
Then I used the delay() function common in arduino instead of _delay_us() in Miguel’s code. Until I figured out the difference, It took about 30 seconds for a full sweep. Now it does about five sweeps a second.
Now, It works! I can see Bluetooth, Wifi and microwave oven radiation. The only drawback is that it doesnt always pick up very short transmissions like beakons.
Here is the source code for Arduino on github. Make sure to also look at the forks that improved my design.
It’s now also on the Arduino Playground.