2.4GHz spectrum analyzer

Nokia analyzer thmb

Nokia analyzer thmbMiguel, EA4EOZ, laat zien dat je je historische telefoon niet weg hoeft te gooien. Hij transformeerde een historische Nokia telefoon naar een spectrum analyzer voor de 2.4GHz ISM band. Portable, uiteraard…

 

 

 

ISM staat voor Industrial, Science en Medical, en bestaat uit een aantal bandjes waar zonder machtiging of licentie met laag vermogen niet-continue data verzonden mag worden. Voorbeelden zijn de 27MHz band, 40MHz band (modelbesturing) 70cm band (de afstandsbedieningen van je auto werken erop) etc. Maar ook de 2.4GHz band heeft een ISM-stukje. Miguel schrijft daarover:

Na het lezen van wat websites over 2.4 GHz ISM band spectrum analyzers gebaseerd op de CYWM6935 module, heb ik geprobeerd mijn eigen analyzer te bouwen, maar met wat verbeteringen. De verwijzingen die ik op het internet vond, gebruikten de parallel poort of een seriële verbinding met een host computer. Ik wilde een portable analyzer, makkelijk mee te nemen, dus gebruik ik een microcontroller en een grafische LCD.

Nokia groot 

Ik had daarnaast nog wat oude Nokia telefoons, waarvan misschien de behuizing en de LCD bruikbaar waren om mijn eigen portable analyzer te maken. Maar werkt dat ook? Laat eens kijken:

Microcontroller: De microcontroller zou een ATMega8 moeten worden die op 3.3 Volt moet lopen omdat zowel de LCD module als de CYWM6935 gebruik maken van 3.3 Volt voedingsspanning. De ATMega8 voldoet prima, zelfs met lage interne kloksnelheden, dus koos ik voor 4 MHz gebruik makend van de interne oscillator.

LCD: De LCD wordt degene die in de telefoon zit, in dit geval een Nokia 3410. De LCD gebruikt een PCD8544, dus daar moet makkelijk mee te werken zijn. Er is een hoop programmatuur te vinden voor het aansturen van dit type LCD controllers

Accu: Deze telefoon kent twee typen accu's: Li-ion en Ni-Mh, maar voor wat betreft de telefoon zijn die hetzelfde. De bruikbare voedingsspanning ligt tussen de 4.2 en 3.6 Volt. Mijn eerste idee was om een spanningsstabilisator voor 3.3 Volt toe te passen, maar ik kon geen geschikte vinden, dus koos ik ervoor een enkele 1N4004 tussen de accu en de schakeling op te nemen. Het bruikbare spanningsgebied (4.2 tot 3.6 Volt bij minimale accu) min de 0.6 Volt spanningsval over de diode levert aan de schakeling 3.6 tot 3.0 Volt bij ontladen accu. De LCD en de CYWM6935 module kunnen werken tussen 2.7 en 3.6 Volt, dus zit alles in het veilige gebied.

Het prototype

Ik maakte een prototype om de LCD module en de microntroller functies te testen en liep daarbij tegen mijn eerste probleem aan. Volgens de informatie op Internet gebruikt Nokia's 3410 LCD een PCD8544 controller, dezelfde als van het Nokia 3310 LCD, dus kunnen beide LCD's aangestuurd worden met dezelfde firmware. Ja en nee. Beide LCD's gebruiken dezelfde PCD8544 instructieset, maar de scherm resoluties zijn anders. De originele Nokia 3310 LCD is 84 x 48 pixels, maar Nokia's 3410 LCD is 96 x 65 pixels, dus moeten de LCD routines herschreven worden om de nieuwe resolutie te kunnen gebruiken.

Na het herschrijven van de routines zou je een werkende LCD verwachten, nietwaar? Nee dus. Het Nokia 3410 LCD heeft een zichtbare resolutie van 96 x 65 pixels, maar de echte resolutie binnen de LCD controller is 102 x 72 pixels, en dat moet je in het achterhoofd houden bij het schrijven van je software.

display test

Het tweede probleem was de CYWM6935 module. Timing en een correcte initialisatie van de module is erg belangrijk voor optimale prestaties, dus toen alles eenmaal OK was, zag ik mijn eerste 2.4 GHz spectrum display met mijn testsignaal: een draadloze camera op 2468 MHz.

Testing

na veel testen vond ik verschillende manieren om het spectrum op het display weer te geven: één om snelle digitale signalen te tonen (zoals wifi, bluetooth, etc), één om analoge signalen te tonen (draadloze camera's, draadloze telefoons, etc) en één om een gemiddelde van de hele band weer te geven. Om makkelijk tussen deze modes om te kunnen schakelen zijn een paar knoppen nodig, en omdat de zaak op accu's werkt, is een indicatie van de voedingsspanning op het display ook wel handig. Dat is makkelijk op te lossen met de ADC van de microcontroller, waarmee het schema voor de portable 2.4 GHz spectrum analyzer compleet gemaakt kan worden.

Schema

Monteren van de analyzer

montage De Nokia 3410 behuizing heeft een hoop ruimte voor het monteren van componenten, maar met één belangrijke beperking: je kunt niet hoger bouwen dan 3.3 millimeter, de hoogte van het originele Nokia PCB, dus zijn SMD componenten nodig om dit te realiseren.

 

 

 

 

 

 

 

PCB'sOm mijn componenten onder de 3.3 millimeter hoogte te houden, most ik gaten in de print maken om de PDIP ATMega8 microcontroller en de twee knopjes kwijt te kunnen. Nadat de gaten gemaakt waren, lijmde ik de print aan de plastic LCD behuizing, om zo de kleine LCD contacten met draadjes aan te kunnen sluiten.

 

 

 

 

De CYWM6935 module is ruim boven de 3.3mm limiet, maar kan op de plek van de antenne geplaatst worden als je dat stuk er afgesneden hebt; de antenne wordt toch niet meer gebruikt.

antenne unit  antenne plek 

Nadat alle componenten op hun plek gezet zijn, sloot ik alles aan met geïsoleerd draad. Het resultaat is als volgt, niet mooi, maar werkt uitstekend:

Eindresultaat

Laatste plaatjeDe laatste stap was het plaatsen van de zes schroeven, zodat de analyzer gereed was.

De software

De software is geschreven in C met behulp van arv-gcc onder Windows (WinAVR). LCD routines zijn gebaseerd op Fandi Gunawan's Nokia 3310 routines en de CYWM6935 routines zijn gebaseerd op de code van Jason Hecker (zie alle links onder aan dit artikel). Het programma loopt continu en maakt ongeveer zes à zeven scans per seconde (van 2400 tot 2495 MHz), waardoor de data bijna real time weergegeven wordt.

Er zijn drie display modes geïmplementeerd:

Fast: Geeft direct amplitude data van de module weer, zonder processing. Deze mode is geschikt voor het zoeken van analoge signalen (met draaggolf).

Slow: Update amplitude gegevens op het scherm alleen als het huidige signaal groter is dan het vorige. Zoniet, dan wordt het weergegeven signaal met 1 verminderd tot nul bereikt wordt. Deze mode is handig voor het bekijken van digitale signalen, die doorgaans in bursts optreden. De fast en slow modes werken bijna net zoals een AGC instelling in een communicatie ontvanger.

Exposure: In deze mode wordt het scherm alleen geupdate als de huidige waarde groter is dan de vorige. Als je deze mode een paar seconden tot minuten laat lopen, krijg je een soort tijdopname van het spectrum om je heen. Met de reset knop maak je het scherm weer leeg voor een volgende tijdopname.

In de praktijk

De analyzer is mijn beste reisgenoot geworden. Hij is heel discreet: iedereen denkt dat je met een mobiele telefoon aan het spelen ben! Je ziet in één oogopslag welke frequenties/kanalen op jouw locatie in gebruik zijn. Een van de interessantste dingen om te doen is 'm in je zak te stoppen en door je buurt te lopen. Op die manier vind je eenvoudig uit welke frequenties en/of kanalen nog vrij zijn. Door ervaring op te doen leer je diverse apparaten onderscheiden:

WI-FI signalen: In de exposure mode hebben ze een mooie ronde vorm van maximaal zo'n 20-22 MHz breed.

Wireless FM camera's (en ATV signalen): De modulatie en draaggolf zijn duidelijk te zien. Als het video signaal voorzien is van geluid, zie je een paar zijbanden op ongeveer 6 of 7 MHz van de hoofddraaggolf.

Bluetooth apparaten: Die zijn lastig te zien, behalve in exposure mode. Ze verschijnen als random pieken over het hele spectrum tot aan 2483 MHz.

Magnetrons: Volle bak ruis. De centrale frequentie lijkt te variëren met de belasting van de magnetron: als er niets in zit, loopt het midden enkele megahertzen omhoog. Over het algemeen zitten ze rond 2450MHz met een ruisbult van 60MHz of meer er omheen. Uiteraard zijn dit de meest voorkomende signalen rond ontbijt, lunch en diner tijden…

Andere apparaten: Er zijn een hoop ongeïdentificeerde signalen in de band. Sommigen zijn analoog, anderen digitaal, maar gewoonlijk een paar MHz breed. Vermoedelijk zijn dat incidentele gebruikers, zoals draadloze keyboards en dergelijken. Ik vond ook locaties met sterke draaggolven, de meesten rond 2440 MHz. Nog geen idee wat dat zijn.

Signalen buiten de band: De ICM band eindigt bij 2483.5 MHz, maar de analyzer scant tot 2495 MHz. Dat stuk gebruik ik als ruis referentie, maar soms zie ik signalen in dat gebied. Sommigen lijken spurs van ISM apparaten, maar anderen zijn dat niet…

De meest gebruikte frequentie is altijd het gebied van 2450 – 2470 MHz,  wifi kanaal 11. Dat lijkt het meest gebruikte default kanaal in vele draadloze routers en access points.

Verbeteringen

Als je alles tot hier gelezen hebt, zal je opgemerkt hebben dat er twee dingen ontbreken in de analyzer. De eerste is een aan/uit schakelaar. Waar is zo'n ding te monteren zonder het apparaat te beschadigen? Origineel zat deze aan de bovenzijde van de telefoon, maar daar zit nu de module, en het is geen goed idee om draden in de buurt van de antenne van de module te plaatsen. Eerlijk gezegd mis ik die schakelaar niet. De analyzer gebruikt minder dan 15 mA, dus die kan dagen achtereen werken op een voor deze telefoons gebruikelijke 900 mAh accu.

Het tweede wat ontbreekt is een ingebouwde lader. Het zou mooi zijn om een kleine Li-ion lader in te bouwen, maar dit type accu moet met zorg geladen worden. Als ik een klein Li-ion laad-IC vind, zal ik proberen het erbij te bouwen, uiteraard met gebruik van de originele laadaansluiting en de originele lader. In de tussentijd laad ik de accu extern, in een reserve Nokia 3330 die ik nog had liggen.

Documentatie

Source files en makefile voor dit project vind je hier. Deze datasheets zijn ook handig:

  • CYWM6935 datasheet vind je hier.
  • CYWUSB6935 datasheet vind je hier.
  • PCD8544 datasheet vind je hier.

Ideeën en delen van de code zijn hiervandaan gehaald: