14 Juni, 2017

Gör ditt Filco Majestouch 2 programmerbart med ny kontroller

För den som känner ett behov av att kunna programmera sitt tangentbord finns två alternativ, en mjukvarubaserad lösning och en hårdvarubaserad lösning. Den mjukvarubaserade lösningen är något som du kan komma igång med på en gång, det är enkelt och helt gratis. Nackdelen är dock att det bara fungerar i den miljö som du satt upp det i och du är ganska begränsad med vad du kan göra. Men det är ett fullgott alternativ om du bara vill skapa något enkelt macro eller kanske binda om Caps Lock till Esc. För det rekommenderar jag xbindkeys i kombination med xdotool om du använder Linux och till Windows finns AutoHotkey (open source).

Ett annat och mer avancerat alternativ är programmerbara tangentbord. Det innebär att du kan skapa en egen layout med flera olika lager och macros, som du sedan flashar till kontrollern på tangentbordet. Detta innebär att din layout finns permanent lagrad på ditt tangentbord. Vilket är väldigt smidigt om du exempelvis använder flera datorer eller bara känner att du vill ha mer kontroll över att kunna anpassa ditt tangentbord precis så som du vill ha det.

Jag har till exempelvis bundit om Caps Lock till att fungera som Fn, vilket aktiverar mitt första lager (så länge den är nedtryckt). Och på mitt första lager har jag bland annat piltangenterna på h,j.k och l och detta för att det som Vim-användare känns naturligare. Och på standardlagret har jag exempelvis bytt plats på Esc och Section (den vänster om 1). Som Vim-användare använder man Esc hela tiden och detta gör att jag inte behöver flytta handen för att nå Esc.

Men i princip alla tangentbord som är programmeringsbara är också custombyggen - du köper delar, bygger och löder själv. Men det är ju såklart inte för alla och därför anser jag personligen att Filco Majestouch 2 med en ersättningskontroller från svenska Bathroom Epiphanies ett väldigt bra alternativ.

Dessa ersättningskontrollers förvandlar ditt Filco-tangentbord till ett fullt programmeringsbart tangentbord. Installationen är enkel och du behöver inte löda något! Och mjukvaran är öppen källkod. :)

Till min tenkeyless-version heter ersättningskontrollern The Pegasus Hoof. Till den fullstora versionen heter ersättningskontrollerna The Tiger Lily och The Kitten Paw. Jag vet inte vad som skiljer dessa två åt, men om du är intresserad av den fullstora modellen av Filco Majestouch 2 kan du ju slänga iväg ett e-postmeddelande till killen bakom Bathroom Epiphanies och fråga vad som gäller.

Vad kostar det? Filco Majestouch 2 kostar drygt 1500 kr och säljs (som enda Svenska återförsäljare) av Maxgaming. Men går också att få tag på via Brittiska The Keyboard Company. Det var där jag köpte mitt exemplar en gång i tiden och det är också de som har flest modeller med Filco.

The Pegasus Hoof köpte jag via 1UP Keyboards för 35 dollar plus frakt, vilket blev 358 kr med frakten inräknad. Men kan tydligen köpas direkt via Bathroom Epiphanies, vilket jag upptäckte efteråt.

Det ska också tilläggas att det finns semi-programmerbara tangentbord. Ett av dessa är Vortex Pok3r. På Pok3r har du tillgång till 3 lager som du kan programera on the fly via ett programmeringsläge du aktiverar direkt på tangentbordet. Nackdelen är att du inte kan ändra standardlagret och du kan inte tillfälligt aktivera de lager du kan programmera. Vilket innebär att till exempelvis båda mina exempel som jag tidigare nämnde inte är möjligt på ett Pok3r.

Förberedelser

Och du ska köpa en ersättningskontroller är det bra om du kontrollerar att ditt tangentbord fungerar till ditt exemplar. Det gör du genom att öppna tangentbordet och på baksidan av kretskortet har du ett modellnummer. Tänk bara på att du förlorar din garanti när öppnar tangentbordet. 1UP Keyboards listar CST-F87/88/89/91-MB V1.1, men det är bekräftat att den nyare modellen CST-F87/88/89/91-MB V2.0 också fungerar.

Och har du några frågor eller funderingar kring kompatibilitet rekommenderar jag att du kontaktar Bathroom Epiphanies och frågar innan du köper eller gör några ingrepp.

(Som bilden visar har jag den nyare versionen och det fungerar alldeles utmärkt.)

Utöver sin ersättningskontroller behöver man också:

  • En normalstor Philips-skruvmejsel (stjärnmejsel)
  • Ett plastkort (kontokort eller liknande), som du inte är rädd om då den kan bli lite nött i kanterna.
  • Ett extra tangentbord, till när du senare försätter ditt tangentbord i boot-läget och är tillfälligt obrukbart.

Jag tänker inte förklara hur du öppnar ditt tangentbord. Jag hänvisar dig istället till en bra guide i videoformat som James från Pexon PCs har gjort för att visa hur man byter ut kabeln på tangentbordet.

Och om du vill ha lite moraliskt stöd i videoformat för hur du byter ut din kontroller har Pete från 1UP Keyboards en bra guide på hur han gjorde när han bytte sin kontroller på sitt CoolerMaster-tangentbord. Som videon visar sitter kontrollern inte fast på något vis, utan är bara fastkilad med sina stift.

Instruktioner

1. Installera nödvändiga program

Jag började med att sätta upp de två program man använder för att skapa och flasha sin layout till tangentbordet. Det kändes bra att ha det klart innan jag försatte mitt tangentbord i ett grönsaksstadie. :)

  • EasyAVR är det program man använder för att skapa en egen layout. Eftersom det är skrivet i Python, behöver du inte kompilera och installera det, utan du kan ställd dig i mappen och köra det direkt med kommandot ./easykeymap.sh.

  • dfu-programmer används för att flasha din layout till tangentbordet. Jag installerade dfu-programmer via AUR [Länk] på min dator med Arch Linux.

2. Byt ut kontrollern

Koppla ur tangentbordet från datorn, öppna upp tangentbordet och byt ut kontrollern. Jag använde mitt plastkort för att försiktigt peta upp kontrollern. Och om du är osäker på hur du gör rekommenderar jag de två videoguiderna som jag länkade till tidigare:

När du har bytt din kontroller är det bra om du också dubbelkollar att din dator hittar ditt tangentbord med den nya kontrollern:

$ lsusb
Bus 004 Device 006: ID 16c0:047d Van Ooijen Technische Informatica Teensy Keyboard+Debug

3. Skapa en egen layout med EasyAVR

Öppna EasyAVR genom att ställa dig i dess mapp och köra kommandot ./easykeymap.sh.

Välj File / New layout, i listan väljer du sedan Filco 87 (Pegasus Hoof v2) och i menyn Available layouts väljer du ISO 88.

Om du är observant ser du att du nu har den internationella ISO-layouten framför dig, inte vår Svenska ISO-layout. Du kan om du vill skapa en svensk layout, men om du är lat som mig kan du välja svensk layout i ditt operativsystem istället och allt är då som vanligt.

Viktigt!

När du programmerar ditt tangentbord måste du försätta tangentbordet i boot-läget. Som standard är genvägen för att aktivera boot-läget Left Shift+Right Shift+Break Key (Break Key?).

När du skapar din egna layout måste du se till att du har en genväg till funktionen SCANCODE_BOOT. Det är nämligen den funktionen som aktiverar boot-läget, ett läge som du måste vara i för att kunna flasha en layout. Om du flashar en ny layout som inte kan aktivera boot-läget vet jag inte hur du löser det.

Själv har jag bundit tangenten App till att aktivera mitt andra lager och på det lagret har jag bundit funktionen SCANCODE_BOOT till tangenten Esc.


När du skapat din layout sparar du den i filformatet dat. Det är en kopia som EasyAVR kan läsa om du vill göra ändringar på din layout utan att behöva börja om från början.

Skapa sedan en fil i filformatet hex via menyn File / Build firmware. Det är den filen som du ska senare ska flasha till ditt tangentbord.

Du kan nu försätta ditt tangentbord i boot-läget med Left Shift+Right Shift+Break Key. Och om du nu kör kommandot lsusb (med ditt extratangentbord) ska det synas att ditt tangentbord är försatt i boot-läget:

Bus 004 Device 006: ID 16c0:047d Van Ooijen Technische Informatica Teensy Keyboard+Debug
Bus 004 Device 007: ID 03eb:2ff0 Atmel Corp. atmega32u2 DFU bootloader

Nu är det dags att formatera ditt tangentbord!

# dfu-programmer atmega32u2 erase

Checking memory from 0x0 to 0x6FFF...  Not blank at 0x1.
Erasing flash...  Success
Checking memory from 0x0 to 0x6FFF...  Empty.

När det är klart är det dags att flasha din nya layout.

# dfu-programmer atmega32u2 flash <filnamn>.hex
                                  
Checking memory from 0x0 to 0x6CFF...  Empty.
0%                            100%  Programming 0x6D00 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
0%                            100%  Reading 0x7000 bytes...
[>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]  Success
Validating...  Success
0x6D00 bytes written into 0x7000 bytes memory (97.32%).

Och nu kan du starta ditt tangentbord och förhoppningsvis ska allting fungera som det är tänkt. :)

# sleep 10 && dfu-programmer atmega32u2 launch

Lämna en kommentar:

Namn:

Hemsida (Valfritt):

Meddelande (kramdown-markup tillåtet):

Din kommentar kommer att publiceras när den har verifierats.