En gammal traditionell morsesändare sänder morse via en radiosändare. Om vi går mer än hundra år tillbaka i tiden så kunde sändningen gå över en enda tråd d.v.s. mellan två punkter vilket är ganska begränsat … så långt tillbaka går vi dock inte.
Om jag vill skicka iväg ett meddelande till i princip hela världen så hur gör jag? Problemet är främst hur jag skall kunna lagra den skapade ljudfilen automatiskt på en åtkomlig plats ute på nätet. Jag hade ursprungligen tänkt mig att jag lagrar filen på spegling.blog men jag råkade ut för en del tekniska komplikationer då jag försökte göra detta automatiskt. Jag kom då på att jag har en urgammal blog http://www.kolumbus.fi/larsil som stöder ftp-protokoll. Jag kan alltså flytta morse ljudfilen till kolumbus servern med ftp på samma sätt som jag flyttade filen från PDP11 till min huvuddator deNeb.
Att flytta en nygenererad morse ljudfil till kolumbus betyder att jag kör ett skript send.ftp som automatiskt flyttar filen upp till kolumbus där den är ”synlig för hela världen”.
#!/bin/bash
HOST=www.kolumbus.fi
USER=xxxxxxxx
PASSWORD=xxxxxxxxxxxx
ftp -inv $HOST <<EOF
user $USER $PASSWORD
put morse_message.mp3
bye
EOF
echo "Cleaning system variables"
unset HOST
unset USER
unset PASSWORD
Orsaken till att jag använder unset HOST etc. är att jag inte vill att dessa systemvariabler skall bli liggande i maskinen trots att maskinen naturligtvis är skyddad. Utan unset kunde en person som har vägen förbi, och terminalfönstret är öppet, får reda på t.ex. kolumbusserverns användarnamn och password genom att ge kommandona:
echo HOST
echo USER
echo PASSWORD
För att översätta en textrad till morse och flytta resultatet till Internet ger jag följande kommandon:
./smorse.run
Skriv text att sända som morse:sssss lars silen sssss
Ord=sssss
s *** ti ti ti
s *** ti ti ti
s *** ti ti ti
s *** ti ti ti
s *** ti ti ti
Ord=lars
l *-** ti taa ti ti
a *- ti taa
r *-* ti taa ti
s *** ti ti ti
--- etc ...
Jag valde att omge namnet med 's' eftersom bokstanen 's' i morsealfabetet är '***' d.v.s. ti ti ti vilket är lätt att känna igen.
Flyttning till servern kolumbus:
./send.ftp
Connected to xxxxxxxxxxxxxxxxxxx
220 ProFTPD Server (Elisa Oyj FTP Service)
331 Password required for xxxxxxxx
230 User xxxxxxxx logged in
Remote system type is UNIX.
Using binary mode to transfer files.
local: morse_message.mp3 remote: morse_message.mp3
200 PORT command successful
150 Opening BINARY mode data connection for morse_message.mp3
226 Transfer complete
169291 bytes sent in 0.10 secs (1.6789 MB/s)
221 Goodbye.
Cleaning system variables
Läsaren kan lyssna på hur morsesändaren låter nedan:
Dessa funderingar skrev jag som ett Facebook inlägg men de kan eventuellt intressera någon läsare på bloggen varför jag kopierar över inlägget också hit.
Jag bekantar mig med hur det känns att köra en dator från mitten av 1970-talet. Maskinen är en Digital PDP-11/70 minidator som kostade ca. $14000 då jag var en fattig student på Helsingfors Universitet. Det är fråga om en relativt sen variant med mycket centralminne som vid denna tid var RAM och inte ferritkärnminne.
Mycket centralminne i maxkonfiguration betyder 4 megabyte minne vilket dock skall jämföras med IBM:s första PC som kom ca. 10 år senare och rätt länge hade en max konfiguration på 640 kilobyte d.v.s. 1/6 av PDP-11. PDP-11 kördes ofta med tidsdelning d.v.s. flera terminaler var kopplade till samma maskin och flera personer kunde alltså samtidigt dela på maskinen.
Då jag i början av 1980-talet fungerade som data-assistent på Ammattikoulujen opettajaopisto i Tavastehus så hade man en, om jag kommer rätt ihåg, Eclipse Nova minidator (motsvarade ungefär PDP-11) som en hel dataklass i den tekniska skolan bredvid kompilerade Fortran mot … 20 elever per klass. Resultatet var att maskinen kroknade d.v.s. man kunde vänta flera minuter på något livstecken på den egna terminalen men maskinen kraschade inte! Resultatet var att jag skrev en del program på en åtta bitars CP/M maskin (som ungefär motsvarade en Commodore 64) som var härlig att jobba med eftersom jag hade tillgång till den helt ensam.
Min PDP-11/70 kostar idag ungefär 50E. Maskinen emuleras i en Raspberry Pi model 3 med 1 Gigabyte minne och 16 Gigabyte ”skivminne” på ett mikro sd-kort. Vid den här tiden hade en hårdskiva typiskt en kapacitet på 5-10 Megabyte d.v.s. 1/1000 av Raspberry Pi:s mikro SD korts kapacitet. Den lilla Raspberry Pi maskinen har en kapacitet som man sannolikt endast kunde drömma om på Tekniska högskolan på den tiden. På SD-kortet ryms mängder med operativsystem och program för PDP-11.
För tillfället kör jag BSD 2.11 från slutet av 1980-talet. Som linuxanvändare är det inget problem att köra BSD-unix. Kommandona, då man kör i terminal, är de samma. Ett grafiskt användargränssnitt saknas men jag kan köra grafiska program i en emulerad vektorgrafisk terminal på Linuxsidan i ett fönster.
Jag jobbar mot PDP-11 så att jag från min vanliga dator loggar in över nätet med ssh. Till planerna hör att då nästa sats komponenter fås fram så bygger jag en frontpanel med blinkande ledar med plats för Raspberry Pi. Det är främst strömbrytarna på fronten som ger problem, de är specialkonstruerade för den här byggsatsen för att möjligast väl matcha den ursprungliga modellen. Det är intressant att se att emuleringen är så exakt att det är möjligt att via ett adapterkort använda ursprungliga kort för en riktig PDP-11. Man har t.ex. kopplat in ett ursprungligt kärnminne (ferritringminne) och kört program från detta.
Man får en bild av den extrema utvecklingen på datorområdet då man jämför en modern Raspberry Pi med PDP-11 (jag använder en äldre Raspberry Pi modell 3 som jag råkade ha liggande). Raspberry Pi har fyra processorkärnor med ordlängden 64 bitar jämfört med PDP-11 som hade 16 bitar. Ordlängden som sådan betyder att RPi är kanske 4x effektivare och då vi har fyra processorer i RPi så kan processorn utföra 4x mera arbete.Ursprungligen så körde PDP-11 med en cykeltid på 800 ns vilket betyder en klockfrekvens på ca. 1,25 MHz vilket skall jämföras med RPi som klockas ca. 1000 ggr högre. Jag nämnde att PDP-11/70 hade ett maximalt minne på ca. 4 megabyte vilket skall jämföras med dagens RPi modell 4 som har 4 gigabyte (1000 ggr mer).
Om vi lägger ihop skillnaden mellan dagens 50Euros RPi och gårdagens $14000 minidator så ser vi att RPi totalt sett har en kapacitet som är ungefär 4x4x1000x1000 = 16 000 000 större än gårdagens PDP-11/70. Vi förstår också hur stor kapaciteten hos en Raspberry Pi är idag då vi noterar att jag kör Linux på RPi med grafiskt användargränssnitt och under Linux på RPi kör PDP-11 emulatorn SIMH som alltså låtsas vara en äkta PDP-11/70 och på den emulerade PDP-11/70:an kör jag BSD Unix v. 2.11. Den emulerade PDP-11/70 kör med ungefär dubbel hastighet mot orginalet!
En annan intressant jämförelse är att en normal Android mobiltelefon har ungefär samma hårdvara som en Raspberry Pi (eventuellt något bättre). Mobiltelefonen har alltså en total beräkningskapacitet som är miljoner gånger större än hos 1970-talets minidator. Största delen av processorkraften i dagens datorer/telefoner bränns dock på all världens bling bling och gårdagens maskin känns förvånande OK bara man inte tvingar den att rita ett grafiskt användargränssnitt med halvtransparenta fönster etc.
Jag kör ”adventure” som är ett textbaserat spel med något som påminner om Morias grottor i Sagan om ringen. Programmet körs under UNIX (BSD 2.11 som de facto är detsamma som BSD 4.3 med alla PDP-11 upgraderingar). Fönstret finns på min vanliga bordsdator som kör Linux och jag kopplar upp mot PDP-11/70 över nätverket med ssh.
Dagens ”Minidator” en Raspberry Pi model 3 emulerar gårdagens mycket använda Minidator PDP-11/70 i dubbel hastighet. Notera att det inte finns någon fläkt då Raspberry Pi förbrukar endast ca. 5W. Orginalet d.v.s. den riktiga PDP-11:n var högljudd eftersom hela maskinen ursprungligen var byggd från diskreta TTL-kretsar med mycket låg integrationsgrad. Senare modeller av PDP-11 hade processorer integrerade i en eller ett litet antal kretsar. Med högre integrationsgrad så minskade också strömförbrukningen.
Några källor:
Om någon är intresserad av att försöka sig på lödning så är detta ett relativt enkelt projekt:
Jag gjorde mig ett nytt verktyg idag. Bilden nedan visar hur verktyget ser ut. Jag gissar att man för 50-100 år sedan utan problem skulle ha identifierat verktyget som något välbekant och väldigt användbart.
Vad använder man verktyget till? Jag fyller på artikeln efter några dagar med mera info.
Fig. Ett gammalt även idag användbart verktyg tillverkat av en ”vantskruv” dock icke marin sådan. Vantskruven har modifierats med vinkelslip och 3D-skrivare (handtag). Kostnad totalt ca. 10 Euro (100 SEK).
Pentax har i många år byggt fina systemkameror som ofta har varit vattentäta/väderskyddade. Statusmässigt ligger Pentax antagligen lite i skuggan av Nikon och Canon samt engefär jämbördigt med Sony. Pentax sägs ha en mycket pålitlig användargrupp som sägs bestå främst av äldre män som använde Pentax i sin ungdom. Pentax var en av de stora tekniska innovatörerna på 1960-70-talet dock så att Nikon på det professionella området körde förbi.
I likhet med alla moderna systemkameror så monteras objektiv via en snabbfattning, bajonett. Den av Pentax utvecklade K-bajonetten har använts på licens av flera andra tillverkare vilket betyder att man har tillgång till mängder av högklassig optik på den begagnade marknaden ofta för en spottstyver.
Min Pentax K5 stomme fick plötsligt ett fel. Den tryck-knapp som frigör objektivet lossnade och försvann. Kameran är helt användbar men för att byta objektiv behövdes en liten bit tex. pianotråd som man kunde använda för att trycka ner ett frigöringslås. Inte bekvämt och allt annat än vattentätt.
Jag vet att somliga Pentaxägare har fått reservdel gratis via Pentax men det har varit oklart vilka vägar detta har skett. Då jag googlade kring detta stötte jag på nedanstående länk:
Länken går till en 3D-utskriven frigöringstangent. Eftersom jag har en egen 3D-skrivare så var det naturligt att testa om det här kunde vara en lösning.
Den 3D-utskrivna nya tangenten har en axel som är mycket tunn. Detta är oftast ett stort problem vid utskrift. Utskriften av en tunn spets går så snabbt att plasten inte hinner stelna mellan plastlagren vilket leder till att komponenten ändrar form och sjunker ihop. Lösningen på detta är väldigt enkel. Om man har något annat storre objekt som man kan skriva ut samtidigt så lönar det sig att göra detta. Det större föremålet ger tid för det lilla att svalna vilket höjer kvaliteten. Ett annat lika enkelt alternativ är att i stället för att skriva ut endast ett enda litet föremål så skriver man ut, i mitt fall nio st. Efter utskrift väljer man det exemplar som blev bäst.
Frigöringsknappen för objektivet syns nere yngeför vid kl. 7 strax vänster om objektivet. Den utskrivna delen är redan på plats då jag glömde att ta en bild av situationen före den nya komponenten monterades.
Notera hur jag skrev ut 9 st nya tryck-knappar av vilka jag använde endast en.
Belysningen råkar framhäva den sandpapprade sidan av den nya frigöringsknappen. I normal belysning reagerar man inte på att delen är 3D-utskriven och inte orginal.
Lyckat ”hack”! Det är alltid trevligt då man lyckas förlänga livet på en teknisk mojäng som har ett litet men mycket störande fel. Nu blir det naturligtvis intressant att se hur länge den nya delen håller.