Akko 5075S VIAL/QMK firmware

Akko 5075S VIAL/QMK firmware

A mechanikus billentyűzetek hypeja engem kicsit későn ért el, de amikor elkapott, teljesen beszippantott. Azonnal vásároltam egy Akko 5075S VIA típusú barebone billentyűzetet (barebone = csupasz, gombok és műanyag billentyűsapkák nélkül), amit aztán fel is szereltem a számomra legjobban tetsző gombokkal és a témához illő sapkákkal (Error 404 keycaps és Outemu Silent Peach V3 kapcsolók). Ezt követően beleástam magam a QMK firmware világába, rájöttem, hogy miért jobb számomra a VIAL nyílt forráskódú firmware, és elkészítettem a saját buildemet. Az első próbálkozás nem ment túl könnyen, ezért úgy döntöttem, leírom a lépéseket, hogy legközelebb egyszerűbb legyen, és talán másoknak is segíthetek vele.

Mi az a QMK?

A QMK (Quantum Mechanical Keyboard) egy nyílt forráskódú firmware mikrokontrollerekhez, amelyek számítógépes billentyűzeteket irányítanak. A QMK Configurator egy szabadon elérhető szoftver, amely megkönnyíti a billentyűzetkiosztások tervezését, majd azok firmware fájlokká alakítását. A QMK Toolkit egy szabadon elérhető szoftver, amely megkönnyíti a firmware kiírását vagy alkalmazását programozható billentyűzetekre.

Mi az a VIAL?

A VIAL egy olyan nyílt forráskódú billentyűzet-programozó szoftver, amely a VIA-ra épül, de több fejlesztés van mögötte, rögtön nyílt forráskódú volt és új funkciókat kínál, amelyek kényelmesebbé teszik a billentyűzetek konfigurálását és testreszabását. A VIA egy hasonló programozó szoftver, amely lehetővé teszi a billentyűzetek könnyű testreszabását anélkül, hogy szükség lenne firmware-feltöltésre.

A VIAL számos előnyt kínál a VIA-hoz képest:

  1. Többfunkciós támogatás: A VIAL sokkal több funkciót kínál a billentyűzetek számára, mint a VIA. Például támogatja a többszörös rétegeket és dinamikus billentyűkiosztásokat is, amelyek sokkal rugalmasabbá teszik a billentyűzetek beállítását.
  2. Több billentyűzettípus támogatása: A VIAL szélesebb körben támogatja a különböző billentyűzetmodelleket, így nem csak a VIA-kompatibilis eszközöket, hanem más típusokat is könnyen beállíthatsz vele.
  3. Hibatűrés és stabilitás: A VIAL gyorsabb és stabilabb működést kínál a VIA-hoz képest, mivel gyakrabban frissítik, és gyorsabban reagálnak a felhasználói visszajelzésekre.
  4. Jobb fejlesztői támogatás: A VIAL fejlesztői közössége aktívan dolgozik a szoftver további javításán és bővítésén, miközben teljes mértékben nyílt forráskódú, így bárki hozzájárulhat a fejlesztéshez.

Összességében a VIAL előnyei közé tartozik a nagyobb testreszabhatóság, többféle billentyűzettípus támogatása, és a jobb felhasználói élmény, különösen azoknak, akik komplexebb billentyűzet-konfigurációkat szeretnének létrehozni.

VIA vs VIAL

Vannak különbségek, amelyek relevánsak lehetnek számodra. A VIA és a Vial egyaránt lehetővé teszi a billentyűk átprogramozását valós időben, tehát nagyjából ugyanazt csinálják. Azonban amikor a Vial-t létrehozták (néhány évvel ezelőtt), a VIA még zárt forráskódú szoftver volt, és nem támogatta megfelelően a forgó enkódereket, míg a Vial nyílt forráskódú volt és megfelelően támogatta ezeket. Most, hogy a VIA is nyílt forráskódú és támogatja a forgó enkódereket, ezek a különbségek már nem relevánsak, de akkoriban elég jelentősek voltak.

Jelenleg a legnagyobb különbségek, amikről tudomásom van, azok, hogy a Vial támogatja a billentyűzetek átprogramozásának zárolását/oldását, és hogy a Vial nem igényel harmadik fél általi jóváhagyást a billentyűzet natív támogatásához.

A zárolás/oldás esetében a programok és a Chromium alapú böngészők hozzáférhetnek az USB HID protokollokhoz, ami az a módszer, amellyel a VIA és a Vial kommunikálnak a billentyűzetekkel az átprogramozáshoz. A VIA esetében nincs sok, ami megakadályozza, hogy egy rogue program vagy weboldal rosszindulatúan átprogramozza a billentyűidet (de legalább a weboldalak esetében jóvá kell hagynod az eszközhöz való hozzáférést a böngészőn keresztül). A zárolási mechanizmusok arra kényszerítenek, hogy egy bizonyos billentyűkombinációt nyomj le, mielőtt engedélyeznéd az átprogramozást. Szóval ez gyakorlatilag egy biztonsági funkció, és a Vial támogatja ezt a képességet, míg a VIA nem.

A harmadik fél általi jóváhagyásokkal kapcsolatban, ha a VIA esetében szeretnéd, hogy a billentyűzetet a VIA felismerje, akkor vagy hivatalosan jóvá kell hagyatnod egy VIA JSON fájlt a VIA karbantartókkal (ami azt igényli, hogy már megkapta a QMK jóváhagyást), vagy el kell várnod a billentyűzet felhasználóitól, hogy manuálisan telepítsenek egy VIA JSON fájlt. Ezzel szemben a Vial esetében a JSON fájl információit a billentyűzet programmemóriájában tárolják, és a Vial közvetlenül a billentyűzetről szerzi be. Ez a megközelítés azt jelenti, hogy nincs szükség jóváhagyási folyamatra… ha a billentyűzet biztosítja a JSON információkat, akkor a Vialnak nincs szüksége előzetes tudásra a billentyűzetről (kiosztás, név stb.), mert ezeket az információkat a billentyűzet csatlakoztatásakor szerzi meg.

Természetesen vannak más különbségek is, de ezek azok, amelyekről tudomásom van és a legnagyobbak.

Készítsük el a firmware-t

Minden elismerés a VIAL fájlokért jonylee1986-nak (https://github.com/jonylee1986).

Mivel ez egy nyílt forráskódú közösségi projekt, ezért a firmwaret egyedül kell kompilálnunk és megépítenünk, amihez egy fejlesztői környezetre van szükség.

A QMK WSL telepítése

A QMK WSL egy előre konfigurált WSL disztró a QMK CLI-vel való munkához

Többszöri próbálkozás után ennél a megoldásnál maradtam, mert a python3 és a többi szükséges csomag ebben a disztróban már előre fel vanak telepítve és a Windows 11 Pro alatt könnyen be is tudtam húzni a WSL alá.

A WSL telepítéséről egy másik bejegyzésben írtam.

  1. Töltsük le a QMK WSL telepítőjét a https://wsl.qmk.fm/ webhelyen is megtalálható GitHub reporól

  2. Telepítsük fel úgy, hogy kiválasszuk az Install drivers lehetőséget. Más egyéb beállításra a telepítés során nincs szükség.

    image-20250220232538340

  3. Miután véget ért a telepítés a Terminálban a wsl -d QMK paranccsal el is tudjuk indítani a WSL disztrót, de a telepítés sikerességét előbb a wsl --list parancs segítségével is leellenőrizhetjük.

    PS C:\Users\szabi> wsl --list
    Linuxos Windows-alrendszer disztribúciók:
    Ubuntu (alapértelmezett)
    QMK <<< itt van :)
    

A VIAL firmware építése

  1. Immár a QMK disztrón belül klónozzuk git clone segítségével a VIAL firmware repozitóriumát a home könyvtárunkba:

    git clone https://github.com/vial-kb/vial-qmk /home/qmk/qmk_firmware
    
  2. Ezután lépjünk be a könyvtárba és futtassuk le sorban az alábbi parancsokat:

    cd qmk_firmware
    make git-submodule
    

    Ezután megkérdezi tőlünk, hogy:

    Could not find module appdirs!
    Would you like to install the required Python modules? [y/n] y
    

    Amire bátran nyomjunk egy Yes-t.

  3. Miután végzett a fenti make művelet (ami elég hosszúra nyúlhat) ellenőrizzük a fejlesztői környezetet a qmk doctor paranccsal, ami, ha mindent rendben talál, az alábbi üzenetet adja vissza minimális problémákat említve:

    $ qmk doctor
    Ψ QMK Doctor is checking your environment.
    Ψ CLI version: 1.1.6
    Ψ QMK home: /home/qmk/qmk_firmware
    Ψ Detected Linux (WSL, Debian GNU/Linux 11 (bullseye)).
    Ψ Userspace enabled: False
    Ψ Git branch: vial
    ⚠ The official repository does not seem to be configured as git remote "upstream".
    Ψ All dependencies are installed.
    Ψ Found arm-none-eabi-gcc version 8.3.1
    Ψ Found avr-gcc version 8.3.0
    Ψ Found avrdude version 7.0
    Ψ Found dfu-programmer version 1.1.0
    Ψ Found dfu-util version 0.11
    Ψ Submodules are up to date.
    Ψ Submodule status:
    Ψ - lib/chibios: 2024-02-17 19:20:06 +0000 --  (be44b3305f)
    Ψ - lib/chibios-contrib: 2024-04-03 20:39:24 +0800 --  (77cb0a4f)
    Ψ - lib/googletest: 2021-06-11 06:37:43 -0700 --  (e2239ee6)
    Ψ - lib/lufa: 2022-08-26 12:09:55 +1000 --  (549b97320)
    Ψ - lib/vusb: 2022-06-13 09:18:17 +1000 --  (819dbc1)
    Ψ - lib/printf: 2022-06-29 23:59:58 +0300 --  (c2e3b4e)
    Ψ - lib/pico-sdk: 2023-02-12 20:19:37 +0100 --  (a3398d8)
    Ψ - lib/lvgl: 2022-04-11 04:44:53 -0600 --  (e19410f8)
    Ψ QMK is ready to go, but minor problems were found
    
  4. A firmware végleges kompilálásához/építéséhez az alábbi parancsot szükséges kiadnunk (figyeljünk, hogy még mindig a qmk_firmware könyvtárban legyünk!)

    make akko/5075:vial
    

    Egy sikeres build után a qmk_firmware könytárban megtalálhatjuk az akko_5075_vial.bin fájlt, amit én úgy másoltam át a Windows gazdagép egyik meghajtójára, hogy telepítettem a disztróban a Midnight Commandert:

    sudo apt install mc -y
    

    Ezután mc paranccsal indítottam a Midnight Commandert, megtaláltam az /mnt/ könyvtárban a meghajtóimat és F5-el kimásoltam a .bin fájlt. image-20250221000527913

Firmware írása QMK Toolbox segítségével

  1. Első lépésben töltsük le a QMK Toolboxot a https://qmk.fm/toolbox oldalról, majd telepítsük VAGY töltsük le a GitHub repójukról a portable változatot (qmk_toolbox.exe). Én az utóbbit választottam.

  2. A QMK Toolbox is felajánlja a driverek telepítését az indítása után, én biztosra menten és Igent mondtam erre is. Ha mégsem ajánlja fel magától, akkor a Tool > Install drivers… menüpont alatt indíthatjuk el a driverek telepítését.

  3. FONTOS LÉPÉS: a firmware flasheléséhez tegyük DFU módba a billentyűzetet, vagyis az ESC billentyűt nyomva tartva csatlakoztassuk az USB-kábelt a billentyűzethez. (Persze, ha előtte már csatlakoztatva volt a géphez, akkor előtte csatlakoztassuk le :) Ha jól csináltuk a QMK Toolbox felismeri az eszközt:

    image-20250221003339280

  4. Nyomjunk a Flash gombra és várjuk meg, hogy a program feltöltse a firmware-t a billentyűzetünkre.

Itt a vége! Gratulálok az új VIAL firmware-es mechanikus billentyűzetedhez!

A Vial platform használata

A Vial platform szoftverét és részletes dokumentációját a https://get.vial.today/ oldalon találod.