HARDWARE HACKEN – Maak een Linux-terminal met Minitel en Raspberry Pi
- August 1, 2013
- 0
De Minitel is een dumb terminal met een modem. Dertig jaar lang konden mensen in Frankrijk hiermee op een voorloper van het World Wide Web. Halverwege 2012 heeft France Telecom de stekker uit de dienst getrokken. Wat rest is een erg leuk apparaat voor de beginnende hardware-hacker.
In deze workshop laat ik zien hoe je een Raspberry Pi kunt gebruiken voor het omtoveren van een Minitel1b in een Linux-computer. De Minitel is een terminal van Franse makelij die dertig jaar lang werd gebruikt om op een soort voorloper van het World Wide Web te kunnen. Klanten van France Telecom kregen hem gratis bij hun telefoonaansluiting en konden ermee inbellen en zo gebruikmaken van Videotex, een broertje van Teletekst met tweerichtingsverkeer. Het apparaat maakte het mogelijk om onder andere de telefoongids te doorzoeken, reizen te boeken, aandelenbeurzen te volgen en zelfs te chatten. Zonder telefoonverbinding kon het beige kastje niets, want hij is feitelijk niet meer dan een samenvoeging van toetsenbord, beeldscherm en modem. Nu France Telecom alle Miniteldiensten heeft gestaakt, lijkt het apparaat rijp voor de schroothoop. Maar niet voor een hardware-hacker, want de oude, makkelijk bereikbare techniek van het apparaat leent zich perfect voor knutselprojectjes. Je hoeft niet veel elektronicakennis te hebben om aan de slag te kunnen. Als je zelf online op zoek gaat naar informatie over de Minitel, dan is het handig als je de Franse taal enigszins machtig bent. Mijn camping-Frans kan slechts op gefrons van francofielen rekenen, maar Google Translate bood gelukkig uitkomst. Dit voegt bovendien een extra dimensie aan de pret toe, want van een eenvoudige soldeerinstructie wordt bijvoorbeeld dit gemaakt: “U bent niet verplicht om een storing knaagde tot op het bot hebben en het te lassen als een varken door oplichters.”
KOPEN
Allereerst moeten we natuurlijk aan een Minitel zien te komen. Om precies te zijn wil je een Minitel 1 Bistandard kopen, ook wel aangeduid als Minitel1b. Deze heeft een seriële poort en daarmee kun je hem verbinden aan de Raspberry Pi. Ik heb zelf via het Franse eBay een Minitel Matra en een Minitel Telic aangeschaft. Ze kosten ongeveer evenveel als de verzending, dus voor een paar tientjes heb je er eentje in huis. Het voordeel van eBay is ook dat taalbarrières niet zo’n probleem zijn, omdat het online systeem alles regelt. Naast de Minitel heb je uiteraard een Raspberry Pi nodig. Deze kun je tegenwoordig eenvoudig online vinden. Hoe je Linux op de Pi kunt zetten, heb je in het vorige nummer kunnen lezen. Voor de door mij gemaakte elektronische schakeling kun je op de website van Linux Magazine de gedetailleerde schema’s en boodschappenlijstjes vinden. Via een online elektronicawebshop als Conrad of Circuitsonline kun je alle benodigde weerstandjes, transistortjes en ander klein grut aanschaffen. Het is daarnaast handig om een soldeerbout te hebben met een klein puntje en een multimeter, zodat je kabeltjes kunt doormeten. Als je alles in huis hebt, kun je aan de slag. Ik hoopte dat ik simpelweg de seriële poort van de Minitel aan de Pi kon hangen en voilà, maar het ligt iets lastiger. Allereerst heeft de Pi van zichzelf geen seriële aansluiting en ook is het voltage van het kleine computerbordje lager dan wat gebruikelijk is in serieelverbindingsland. De Minitel heeft wel zo’n aansluiting, in de handleiding aangeduid met de mooie naam péri-informatique. Maar ook dit beestje laat zich niet zo eenvoudig temmen, want het voltage dat hieruit komt, wijkt met zijn 8,5 volt af van de standaard. Tenzij we Raspberry Pi willen bakken, moet je dus eerst de spanning van beide apparaten gelijktrekken.
DRIE MOGELIJKHEDEN
Eerst heb ik ervoor gezorgd dat er met de Pi serieel is te praten. Je hebt hiervoor drie mogelijkheden. De eenvoudigste is om voor ongeveer een tientje een USB-adapter met ingebouwde seriële poort te kopen. Als je daarentegen USBpoorten wilt besparen, dan kun je ook een expansion board kopen en die bovenop de Pi sandwichen. Je gebruikt hiervoor de UART, de rij pinnetjes die het kaboutercomputertje voor externe communicatie aan boord heeft. De laatste mogelijkheid is om er één zelf te maken aan de hand van een MAX3232-chip. Deze verbind je dan aan de ene kant met de UART en aan de andere kant met de Minitel. Je hebt hiervoor naast de chip ook een handvol condensators nodig. Als je zelf aan het knutselen gaat, dan raad ik je aan om verstandiger te zijn dan ik en gelijk kunststof condensators te kopen. Bij deze speelt de polariteit namelijk geen rol. Zo maakt het niet uit hoe je ze draait als je ze in deschakeling opneemt. Voor de seriële verbinding met de Minitel bestaan er geen kant-enklaar oplossingen. Gelukkig zijn er wel schakelingen die je kunt maken. Je kunt ervoor kiezen om het kleine broertje van de MAX3232, de MAX232, te gebruiken, maar ik heb ervoor gekozen om met drie weerstandjes en twee transistors een klein circuitje te bouwen dat hetzelfde doet. Voor het maken van het circuit heb ik een breadboard gebruikt. Dit is een soort dikke printplaat met gaatjes waar je componenten in kunt drukken. Doordat de rijen van gaatjes al met elkaar zijn verbonden, hoef je niet te solderen om je schakeling te testen. Als je het schema op de website volgt, dan kan er in theorie weinig misgaan, maar ik heb door schade en schande nog wel wat handige tijdbesparende tips voor je opgedaan.
1 De schakeling waarmee je het voltage van de seriële aansluiting van de Minitel kunt aanpassen
DE TIPS
De eerste tip betreft de transistors. Deze klassieke digitale componenten hebben drie potjes, en net als bij de keramische condensators is het erg belangrijk om die niet in de war te maken. Op de website staat een heel duidelijk schema, inclusief waar welk pootje hoort. De tweede tip betreft de nummering van de pinnetjes van de seriële poort van de Minitel. Het is belangrijk om deze nummering niet door elkaar te halen. Als je die pinnetjes van links naar rechts gaat tellen, dan zijn er namelijk twee manieren om dat te doen. Je kunt de pinnetjes tellen vanaf de kant waar de stekker erin gaat, of je kunt ze tellen aan de kant waaraan de poort is gesoldeerd. Het door elkaar halen van deze volgorde is wellicht voor sommigen een welkome oefening in zenmeditatie, maar voor de rustelozen heb ik dit toch maar op de website gezet. De ene kant van de schakeling heb ik verbonden met de Raspberry Pi en de andere kant met de Minitel. De seriële poort van de Minitel is van het type DIN-5 en als je toevallig een MIDI-kabel hebt liggen, dan kun je die hier handig insteken. Als je thuis nog een bescheiden computerkerkhofje hebt, dan kun je misschien nog de stekker van een oud AT-toetsenbord gebruiken van de eerste generatie IBM-pc’s. Ik heb voor dit project ook allerhande kabeltjes en stekkertjes hergebruikt, of om in recycletermen te spreken: een tweede leven gegeven. Als je zowel de Pi als de Minitel hebt voorzien van de goede aansluitingen, dan kunnen we ze gaan verbinden en ermee aan de slag. Zodra je de Minitel aanzet, dan laat hij vrij grote tekens zien waarvan er maar veertig in de breedte op het scherm passen. Om het apparaat in de ASCIIstand te zetten kun je de knoppencombinatie Fnct+t en daarna a gebruiken. Op deze manier krijg je 80 x 25 tekens tot je beschikking. Standaard staat de snelheid van de seriële poort vrij laag ingesteld. Om het maximum van een whopping 4800 baud te halen toets je eerst Fnct+p en daarna 4. De lokale echo van alles wat je intypt, zet je uit via Fnct+t en e.
SPELEN MET LINUX
Als je de seriële verbinding hebt gemaakt en de Minitel in de juiste stand hebt gezet, dan kun je eindelijk met Linux gaan spelen en kijken hoe het één en ander werkt. Als je inlogt op de Raspbery Pi en een commandline oproept, dan tref je onder /dev/ tty* de verschillende beschikbare consoles (* verwijst naar de console in kwestie). De console via UART tref je bij een standaardinstallatie van Raspbian aan op / dev/ttyAMA0. Als je een USBinterface gebruikt, dan vind je die via /dev/ttyUSB0. Als je de Minitel via een USBinterface hebt gekoppeld, dan kun je de verbinding testen met een verzameling willekeurige tekens via:
cat /dev/random > /dev ttyUSB0
Om ervoor te zorgen dat je een login shell krijgt zodra je de Minitel aan de Raspberry Pi hangt, kun je de volgende regel toevoegen aan /etc/inittab:
S1:2345:respawn:/sbin
getty -L ttyUSB0 4800
vt100
De 4800 slaat op de baud-rate en vt100 op de tekenset. Het is belangrijk de goede tekenset te kiezen. Ik had mij eerst laten verleiden een speciale Minitel-tekenset te downloaden, maar die maakte uiteindelijk alleen maar blokjes op het scherm. Voor de standaard seriële poort ttyAMA0 staat er al een regel in. Deze moet je echter wel eerst aanpassen om hem te kunnen gebruiken. Je kunt hiervoor het voorbeeld van de USB-adapter gebruiken. Het zou best kunnen dat je verbinding niet gelijk werkt. Sterker nog, ik denk dat je serieus een carrièreswitch moet overwegen als je de schakeling inclusief alle draadjes in één keer goed hebt. Ik raad je dan ook aan om alle draadjes en stekkertjes die je hebt, door te meten met een multimeter. Bij mij bleek een versgekocht kabeltje met handige krokodillenbekjes niet te werken vanwege een kabelbreuk. Als je echt zeker wilt zijn, dan kan het ook lonen om je breadboard helemaal door te meten door steeds twee draadjes aan de uiteinden van de rijen te steken en daar je multimeter tegenaan te houden. Het kan gebeuren dat er een verbinding niet werkt en dan kun je daar maar beter achter komen voordat je al je hoofdhaar hebt uitgetrokken. Als je de verbinding zelf wilt testen, dan kun je verder gebruikmaken van het handige programmaatje Minicom. Als je de standaardinstallatie van Raspbian op de Pi hebt gezet, dan installeer je die via:
sudo apt-get install m nicom
Daarna kun je hem instrueren om contact te maken via de seriële poort aan de hand van het volgende commando:
minicom -b 4800 -o -D dev/ttyAMA0 2
2 De DIN-5 poort van de Minitel
TOT SLOT
Als je uiteindelijk een succesvolle verbinding hebt, dan kun je je gaan uitleven met het apparaat. We kunnen de Minitel bijvoorbeeld ombouwen tot jukebox en in de kast kleine boxjes plaatsen, of uitsparingen maken voor led-lampjes en die aansturen met de Pi voor een lichtshow. De Raspberry Pi zelf kun je makkelijk kwijt in de kast en verbinden aan de interne stroombron. Op die manier maken we een unieke retroterminal met ons favoriete besturingssysteem.
LINKS
Minitel Research Lab, USA www.minitel.us
Franse site over Minitel www.minitel.org
Miniterm https://bitbucket.org/floren/inferno/ src/75008e7031e1/appl/wm/minitel