NES Radar is een technisch project dat een Nintendo Entertainment System (NES) ombouwt tot een live luchtverkeersradar. Via een externe server worden live ADS-B-gegevens van adsb.fi opgehaald en via een seriële verbinding naar de console gestuurd, waarna de NES de vliegtuigen als bewegende stippen op het scherm plot.
Belangrijke technische details:
- Hardware: Er is een NES nodig met een flash-cartridge, een 5V FTDI USB-seriële kabel en twee 1 kΩ weerstanden.
- Communicatie: De dataverkeer vindt plaats via controllerpoort 2 op 9600 baud. De gebruiker kan via controllerpoort 1 een ICAO-luchthavencode invoeren om de regio te bepalen.
- Software: Het project maakt gebruik van een Python-script (voor Windows, Linux en macOS) en een specifieke NES-ROM.
- Waarschuwing: Het gebruik van 3,3V-adapters wordt afgeraden; een 5V-signaal is essentieel voor een betrouwbare werking van de NES-ingangsbuffer.
NES Radar: Vluchttracking in 8-bit
Beschrijving
Door de vierletterige ICAO-code van een willekeurige luchthaven in te voeren via een NES-controller en op Start te drukken, verschijnen de vliegtuigen die op dat moment in de buurt van die luchthaven vliegen als bewegende stippen op een CRT-televisie. Het systeem werkt wereldwijd; je kunt het richten op een lokale landingsstrip of KLAX (Los Angeles) instellen om te zien hoe druk het daar is.
Dit project is een proof-of-concept voor bidirectionele communicatie van 9600 baud via de controllerpoort. Aangezien de NES geen eigen internetverbinding heeft, haalt een kleine server op een nabijgelegen computer live ADS-B-verkeer op van adsb.fi en stuurt dit via de controllerkabel naar de console. De NES plot de gegevens en stuurt de gekozen luchthavencode via dezelfde kabel terug naar de computer.
Details
NES Radar maakt van een echte Nintendo Entertainment System een live luchtverkeersscope. Het project is gebaseerd op c64u-radar, een soortgelijk programma voor de Commodore 64.
Voor de nieuwste software (het Python-script en het NES-ROM-bestand) kan het GitHub-repository worden geraadpleegd.
Benodigdheden
Dit is een hardwareproject en geen ROM die je simpelweg kunt downloaden en spelen. De volgende zaken zijn vereist:
- Een echte NES en een flash-cartridge om de ROM te laden.
- Een 5V FTDI USB-seriële kabel, aangesloten op controllerpoort 2.
- Twee 1 kΩ weerstanden.
- Een computer om de server te draaien:
- Op macOS is dit een zelfstandig binair bestand.
- Op Windows en Linux wordt dit uitgevoerd vanuit de Python-broncode.
- Een internetverbinding.
- Een FT232R-compatibele adapter (hiermee is het project getest). De server geeft alle gevonden seriële apparaten weer en laat je er een kiezen, maar andere adapters kunnen elektrisch of qua timing anders reageren.
De ROM, het macOS Universal binary en het Python-broncode-archief zijn beschikbaar op de GitHub Releases-pagina.
Waarschuwing
Het verbinden van een vintage NES met een moderne computer gebeurt op eigen risico. De auteurs zijn niet verantwoordelijk voor schade veroorzaakt door dit experimentele project.
De juiste TTL-kabel kiezen
Gebruik een 5V USB-naar-TTL-seriële kabel. Het aanbevolen onderdeel is de originele FTDI TTL-232R-5V-WE. Er is getest met FT232R-compatibele adapters op 5V; andere adapters kunnen mogelijk werken, maar dit is op eigen risico.
Gebruik geen 3,3V-adapter. De 3,3V TX-uitgang garandeert niet altijd een betrouwbaar 'logic high'-signaal voor elke 5V NES-ingangsbuffer. Een originele FTDI TTL-232R-3V3 heeft wel 5V-tolerante ingangen, maar kan de NES mogelijk niet betrouwbaar aansturen. Let op dat de USB ID 0403:6001 de FT232R-familie identificeert, maar niet aangeeft of de kabel 3,3V of 5V is.
Voor de verbinding kan een oude controllerkabel worden gebruikt, of een nieuwe vervangende controllerkabel/extensie die op maat wordt gesneden.
Aansluitingen
Schakel de NES uit en koppel de USB-kabel los voordat je de verbindingen maakt met controllerpoort 2:
| FTDI pin | NES controllerpoort 2 | Verbinding |
| GND | pin 1 — GND | direct |
| RXD | pin 3 — OUT0/LATCH | via een eigen 1 kΩ serieweerstand |
| TXD | pin 4 — D0 | via een aparte 1 kΩ serieweerstand |
| VCC +5V | — | niet verbinden; isoleren |
| CTS# | — | niet verbinden; isoleren |
| RTS# | — | niet verbinden; isoleren |
Belangrijke opmerkingen
- Er moeten twee aparte 1 kΩ weerstanden worden gebruikt, één voor elke signaalrichting.
- Verbind RXD en TXD niet met elkaar en verbind OUT0 niet met CTS.
- Isoleer de ongebruikte VCC-, CTS- en RTS-leidingen individueel.
- Sluit een normale controller aan op poort 1; deze wordt gebruikt om de luchthavencode in te voeren.
Pinout van de poort
Gezien vanaf de voorkant van de console (in de aansluiting kijkend):
- Pin 1: GND
- Pin 2: CLK
- Pin 3: OUT0
- Pin 4: D0
- Pin 5: +5V
- Pin 6: D3
- Pin 7: D4
Controleer de oriëntatie zorgvuldig voordat je gaat solderen. De voorkant van de stekker en de soldeerzijde zijn gespiegeld. Bevestig dat je de pinnen telt in de bovenstaande volgorde en niet vanaf de achterkant van de connector. Raadpleeg bij twijfel de NESdev controller port pinout.
Controleer altijd de continuïteit van de pinnen. Vertrouw niet alleen op de draadkleur, aangezien NES-controllerkabels verschillende kleuren gebruiken. Identificeer de draden aan de NES-zijde via continuïteitsmeting en pinnummer, nooit enkel op basis van kleur. Een correct gebouwde kabel meet ongeveer 1 kΩ per signaal.
NES Radar: Vluchttracking in 8-bit
Beschrijving
Door de vierletterige ICAO-code van een willekeurige luchthaven in te voeren via een NES-controller en op Start te drukken, verschijnen de vliegtuigen die op dat moment in de buurt van die luchthaven vliegen als bewegende stippen op een CRT-televisie. Het systeem werkt wereldwijd; je kunt het richten op een lokale landingsstrip of KLAX (Los Angeles) instellen om te zien hoe druk het daar is.
Dit project is een proof-of-concept voor bidirectionele communicatie van 9600 baud via de controllerpoort. Aangezien de NES geen eigen internetverbinding heeft, haalt een kleine server op een nabijgelegen computer live ADS-B-verkeer op van adsb.fi en stuurt dit via de controllerkabel naar de console. De NES plot de gegevens en stuurt de gekozen luchthavencode via dezelfde kabel terug naar de computer.
Details
NES Radar maakt van een echte Nintendo Entertainment System een live luchtverkeersscope. Het project is gebaseerd op c64u-radar, een soortgelijk programma voor de Commodore 64.
Voor de nieuwste software (het Python-script en het NES-ROM-bestand) kan het GitHub-repository worden geraadpleegd.
Benodigdheden
Dit is een hardwareproject en geen ROM die je simpelweg kunt downloaden en spelen. De volgende zaken zijn vereist:
- Een echte NES en een flash-cartridge om de ROM te laden.
- Een 5V FTDI USB-seriële kabel, aangesloten op controllerpoort 2.
- Twee 1 kΩ weerstanden.
- Een computer om de server te draaien:
- Op macOS is dit een zelfstandig binair bestand.
- Op Windows en Linux wordt dit uitgevoerd vanuit de Python-broncode.
- Een internetverbinding.
- Een FT232R-compatibele adapter (hiermee is het project getest). De server geeft alle gevonden seriële apparaten weer en laat je er een kiezen, maar andere adapters kunnen elektrisch of qua timing anders reageren.
De ROM, het macOS Universal binary en het Python-broncode-archief zijn beschikbaar op de GitHub Releases-pagina.
Waarschuwing
Het verbinden van een vintage NES met een moderne computer gebeurt op eigen risico. De auteurs zijn niet verantwoordelijk voor schade veroorzaakt door dit experimentele project.
De juiste TTL-kabel kiezen
Gebruik een 5V USB-naar-TTL-seriële kabel. Het aanbevolen onderdeel is de originele FTDI TTL-232R-5V-WE. Er is getest met FT232R-compatibele adapters op 5V; andere adapters kunnen mogelijk werken, maar dit is op eigen risico.
Gebruik geen 3,3V-adapter. De 3,3V TX-uitgang garandeert niet altijd een betrouwbaar 'logic high'-signaal voor elke 5V NES-ingangsbuffer. Een originele FTDI TTL-232R-3V3 heeft wel 5V-tolerante ingangen, maar kan de NES mogelijk niet betrouwbaar aansturen. Let op dat de USB ID 0403:6001 de FT232R-familie identificeert, maar niet aangeeft of de kabel 3,3V of 5V is.
Voor de verbinding kan een oude controllerkabel worden gebruikt, of een nieuwe vervangende controllerkabel/extensie die op maat wordt gesneden.
Aansluitingen
Schakel de NES uit en koppel de USB-kabel los voordat je de verbindingen maakt met controllerpoort 2:
| FTDI pin | NES controllerpoort 2 | Verbinding |
| GND | pin 1 — GND | direct |
| RXD | pin 3 — OUT0/LATCH | via een eigen 1 kΩ serieweerstand |
| TXD | pin 4 — D0 | via een aparte 1 kΩ serieweerstand |
| VCC +5V | — | niet verbinden; isoleren |
| CTS# | — | niet verbinden; isoleren |
| RTS# | — | niet verbinden; isoleren |
Belangrijke opmerkingen
- Er moeten twee aparte 1 kΩ weerstanden worden gebruikt, één voor elke signaalrichting.
- Verbind RXD en TXD niet met elkaar en verbind OUT0 niet met CTS.
- Isoleer de ongebruikte VCC-, CTS- en RTS-leidingen individueel.
- Sluit een normale controller aan op poort 1; deze wordt gebruikt om de luchthavencode in te voeren.
Pinout van de poort
Gezien vanaf de voorkant van de console (in de aansluiting kijkend):
- Pin 1: GND
- Pin 2: CLK
- Pin 3: OUT0
- Pin 4: D0
- Pin 5: +5V
- Pin 6: D3
- Pin 7: D4
Controleer de oriëntatie zorgvuldig voordat je gaat solderen. De voorkant van de stekker en de soldeerzijde zijn gespiegeld. Bevestig dat je de pinnen telt in de bovenstaande volgorde en niet vanaf de achterkant van de connector. Raadpleeg bij twijfel de NESdev controller port pinout.
Controleer altijd de continuïteit van de pinnen. Vertrouw niet alleen op de draadkleur, aangezien NES-controllerkabels verschillende kleuren gebruiken. Identificeer de draden aan de NES-zijde via continuïteitsmeting en pinnummer, nooit enkel op basis van kleur. Een correct gebouwde kabel meet ongeveer 1 kΩ per signaal.