Download available keyboard builds and matching VIA JSON definitions, grouped by product, PCB revision, and wireless backend. Each file includes its size and SHA-256 checksum.
:::warning Confirm before downloading
Firmware is not interchangeable across PCB revisions, Ortho / staggered layouts, or wireless backends. Identify your PCB before choosing QMK / VIA or Vial.
:::
1. Firmware selector
2. Firmware and VIA JSON downloads
Find your PCB and wireless backend in the table, then click UF2, HEX, or JSON to download. _via identifies a QMK / VIA build and _vial identifies a Vial build. Only existing files receive download links. These are build artifacts; not all have been tested on physical hardware.
VIA JSON files are definitions to import into VIA, not flashable firmware. Vial embeds its keyboard definition, so using Vial normally does not require importing these VIA JSON files. Choose files under the same target; similar names do not imply interchangeable firmware.
:::danger First migration from legacy BLE firmware to DuoChord
Follow the complete migration guide:
- Confirm the PCB revision and wireless backend.
- Flash the AVR DuoChord firmware over USB.
- Hold both Shift keys and press
F twice within one second.
- Confirm that the nRF51822 enters
DfuTarg mode.
- Flash the nRF51822 application-only package over OTA.
- Pair again and verify the connection.
The DuoChord keyboard files below contain only AVR firmware, not the separate nRF OTA package.
:::
G60
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| G60 PCB | Legacy BLE firmware (Bluefruit) | HEX ↓70.9 KBFile detailsbioi_g60_bluefruit_via.hex SHA-256 088037faddf313eb61b8eade94584cf52917590caa6def0012f5fa15c2c51843 | HEX ↓75.6 KBFile detailsbioi_g60_bluefruit_vial.hex SHA-256 5f2e0a14e3def55958305eb843ed1c460b28b90ecce2910702469f9b8c096e4b | JSON 1 ↓8.9 KBFile detailsg60-all-layouts.json SHA-256 7a657ab5cd8c5f50a57b530277ef5d15dd71ce6bd30e5abc14286e19bd0dfa3a JSON 2 ↓5.0 KBFile detailsg60.json SHA-256 84a16f3b73636b9a0c9ba5c2a7200dcd1892a63a5c2382b063ac949999c51f47 |
| G60 PCB | DuoChordMigration guide | HEX ↓72.1 KBFile detailsbioi_g60_duochord_via.hex SHA-256 a88b2b88be21fe23037fc930310e8bbc05323ff136b1059508e94d61b13519cd | HEX ↓76.5 KBFile detailsbioi_g60_duochord_vial.hex SHA-256 39874940351b63f10241cb0d3e6ef3e0d01fd1366e3db7e4f6fdac904897422b | JSON 1 ↓5.8 KBFile detailsg60_duochord.json SHA-256 b54ecd476cd935c652b2a60de2eda02a640d49ae74afb335b52ee66071cd1c4f JSON 2 ↓9.8 KBFile detailsg60_duochord_all_layouts.json SHA-256 c5bbf626c5eaff4dc102d2d1a2a48c772d1d75cae0fccc9b0dbb41c8e96f7be0 |
Kamilia
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| Kamilia PCB | Legacy BLE firmware (Bluefruit) | HEX ↓61.4 KBFile detailsbioi_kamilia_bluefruit_via.hex SHA-256 5b9e0a662ea99b44a3a77f47b4b1f7d4b88f0bc2bccea32bf27a0a6fd554f102 | HEX ↓74.5 KBFile detailsbioi_kamilia_bluefruit_vial.hex SHA-256 e6308b15b51a15dcae271e82821af1f74f486be6cc6a6f7bac66f922912fe307 | JSON ↓3.2 KBFile detailskamilia.json SHA-256 74726a4fbf0016117b0ebb043f5b1ca73f9ddb1accafd62077ce2b23ab1143d6 |
| Kamilia PCB | DuoChordMigration guide | HEX ↓63.6 KBFile detailsbioi_kamilia_duochord_via.hex SHA-256 c1b3b44782a4d3187ff56b28655571020ef684ea16230e58473af594b757ca91 | HEX ↓76.9 KBFile detailsbioi_kamilia_duochord_vial.hex SHA-256 335d44c840a2155ae2b46bdbd666eae7060b6dc87a6cdd16fc99b21a9fc87d6a | JSON ↓4.2 KBFile detailskamilia_duochord.json SHA-256 742b3b0ac037dfccdac0f5b07afd3b03a258b0845539d46fe6746297d1de38b1 |
Command65
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| Command65 PCB | Legacy BLE firmware (Bluefruit) | HEX ↓77.4 KBFile detailsbioi_command65_bluefruit_via.hex SHA-256 6e0ea3b684b7951fd518444b1ab41ce85350986081ad50b9e4917ea275be3083 | HEX ↓74.6 KBFile detailsbioi_command65_bluefruit_vial.hex SHA-256 0176cce5951d025da63d1865d987f3a87db820ed0aea9348d1223e992b47bd65 | JSON ↓5.2 KBFile detailscommand65.json SHA-256 5b49a7b00e99ac6c426cd44acef120fbd259322b951a6f66dce4b08659aa9bc8 |
| Command65 PCB | DuoChordMigration guide | HEX ↓64.5 KBFile detailsbioi_command65_duochord_via.hex SHA-256 6fc73466c7e61e3ed1238144755f5f05f26576ef08333a70f5a70ccaccaa0a10 | HEX ↓77.2 KBFile detailsbioi_command65_duochord_vial.hex SHA-256 19e344cae85f9bc77846a497d830329dbaf914ed65b48a4966191c5d6acd6bd1 | JSON ↓6.2 KBFile detailscommand65_duochord.json SHA-256 287ed2d34da3fd223a4566e09d47b41129d1f2fe96e69ab923ca6fdda3bb06b8 |
Command65 PE
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| Command65 PE PCB | CH592 | HEX ↓78.0 KBFile detailsbioi_command65_pe_via.hex SHA-256 7da94e0a441470238e6787553ff925191e1bef418bdcf422f20037033033ec8f | HEX ↓75.3 KBFile detailsbioi_command65_pe_vial.hex SHA-256 4790d3953443baf8bd05b21770961acab8082b68265f3c6b8bb5411d016c5312 | JSON ↓6.8 KBFile detailscommand65_pe.json SHA-256 3ed6f72d7ae86a47951ba740591f42c79a2dde8558a3895c2c193d26c822e359 |
Manta
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| Manta 40s Hotswap | Legacy BLE firmware (Bluefruit) | HEX ↓77.0 KBFile detailsbioi_manta_rev_40s_hotswap_bluefruit_via.hex SHA-256 729a7349ea236075faf8b5dc1bf4f023f6b696f71ede356f7a99cdb9dc54b5da | HEX ↓73.3 KBFile detailsbioi_manta_rev_40s_hotswap_bluefruit_vial.hex SHA-256 5db9f58ede0cd4da0a6fca9e379033da1c6316a514207a13ded055da619845ef | JSON ↓4.4 KBFile detailsmanta_40s_hotswap.json SHA-256 fe861d6d595660563b187a86195d029399184e1445aa38b2e57d0841b37535d2 |
| Manta 40s Hotswap | DuoChordMigration guide | HEX ↓78.4 KBFile detailsbioi_manta_rev_40s_hotswap_duochord_via.hex SHA-256 8f114b0a31e0e85e71dc0fb7518a4a50d70803098728d5b5c44b18cc9f326b57 | HEX ↓74.4 KBFile detailsbioi_manta_rev_40s_hotswap_duochord_vial.hex SHA-256 e7e7de45a1ff1f85b29c692bd7ed818c3896f2c55236984979f987b58e7754d1 | JSON ↓5.2 KBFile detailsmanta_duochord_40s_hotswap.json SHA-256 74c0876292fb59c5085dbebcc1cb9e97bbeeeab76eb162eb3c82d26dbbda0a0b |
| Manta 40s Solderable | Legacy BLE firmware (Bluefruit) | HEX ↓77.3 KBFile detailsbioi_manta_rev_40s_solderable_bluefruit_via.hex SHA-256 d1fa9ef9d2b3a1808e85dcfe33f94c9b39027ef608bf3c5a2c02f8adba264be1 | HEX ↓73.8 KBFile detailsbioi_manta_rev_40s_solderable_bluefruit_vial.hex SHA-256 0f22831207f7365716f3b44ac79ec857b88f2e7056b8f426b776bfe804a48a75 | JSON ↓4.4 KBFile detailsmanta_40s_solderable.json SHA-256 f460eedafa5c99f2e9d8906923e34b72cd6b396be140e7073c20a6b9e1924bbe |
| Manta 40s Solderable | DuoChordMigration guide | HEX ↓78.7 KBFile detailsbioi_manta_rev_40s_solderable_duochord_via.hex SHA-256 8a9e8916af7edfa3d3f180c184a81fb7b7e6183ce4bf02f1dea402d30b82d73e | HEX ↓74.8 KBFile detailsbioi_manta_rev_40s_solderable_duochord_vial.hex SHA-256 73a51f6353f0c27c6dc49764822d87280fce179859c7864cba6bbdcb83ea4bd3 | JSON ↓5.3 KBFile detailsmanta_duochord_40s_solderable.json SHA-256 cafd9324ec4de0685c1fef1a4e6f3c086c70be833f45b8779f5c0bc35a765480 |
| Manta Ortho | Legacy BLE firmware (Bluefruit) | HEX ↓77.5 KBFile detailsbioi_manta_rev_ortho_bluefruit_via.hex SHA-256 7d1d8402994b3e57c05fa82f1b46a2fece63b9f75307d83c2fdd3931c69f7429 | HEX ↓73.8 KBFile detailsbioi_manta_rev_ortho_bluefruit_vial.hex SHA-256 14c37ad765c8de4b8ebb5f4fd4ee7089f648eb8b5c728523b07bb292dbed70d0 | JSON ↓3.9 KBFile detailsmanta_ortho.json SHA-256 49610673f55ff1ddc9c13e89a5ad5caa33ad51fb6127fe21d4b6ad8ac84fe270 |
| Manta Ortho | DuoChordMigration guide | HEX ↓78.2 KBFile detailsbioi_manta_rev_ortho_duochord_via.hex SHA-256 908300481fe3e753ca4c99dbe67a2fd2bcd229e3e1eb58f2f05fd8dd80b3fe1c | HEX ↓74.8 KBFile detailsbioi_manta_rev_ortho_duochord_vial.hex SHA-256 5294db3271d9966564ba81fd07c031bbad7b1d6e1c34ab829359250be61fe989 | JSON ↓4.7 KBFile detailsmanta_duochord_ortho.json SHA-256 7fd35abc9adc8242d42b4723ba95c5fc97b032706a7651df149efd8ab130fdba |
| Manta40 rev2 | CH592 | UF2 ↓104.0 KBFile detailsbioi_dev_manta40_rev2_via.uf2 SHA-256 75130bb49a7b94e6332374bbe98f36facba82d913e882de9338a09f96b441c23 | UF2 ↓129.0 KBFile detailsbioi_dev_manta40_rev2_vial.uf2 SHA-256 c92a39075b048715fdfa257c72597528a67739025b0c50f0174b961b5d783d4e | JSON ↓4.5 KBFile detailsmanta_40s_rev2.json SHA-256 dfd83d4087ed889dddd7d15abde4b6d31fec3abcedde4f3d3eb34986cb045431 |
| Manta40 rev2 Ortho | CH592 | UF2 ↓104.0 KBFile detailsbioi_dev_manta40_ortho_rev2_via.uf2 SHA-256 fbd040ec6984fb57dd520d0fcaab9a6bd4dffe28a776e5c1d2cd19e06a12c7fa | UF2 ↓129.5 KBFile detailsbioi_dev_manta40_ortho_rev2_vial.uf2 SHA-256 cc08ef8a074048ffe1f5093638ca2b253dc04f04f7650bde7894b0d004a85c16 | JSON ↓3.8 KBFile detailsmanta_ortho_rev2.json SHA-256 bbdf098d1387ec0c365ed916a3a2867c387eb3c840eecb6d1135d0ffe21aaf93 |
Skog Reboot
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| Skog Reboot rev A | Legacy BLE firmware (Bluefruit) | HEX ↓113.1 KBFile detailsbioi_skog_reboot_rev_a_bluefruit_via.hex SHA-256 3a3b349e1f6767114393b626f19c85ba19c8f54611c4db14a58b6d4e313baa29 | HEX ↓146.9 KBFile detailsbioi_skog_reboot_rev_a_bluefruit_vial.hex SHA-256 128971f4584d28724ff3da096a81827621ab4c9fa6615b71138e4f3b682a0cfa | JSON ↓5.5 KBFile detailsskog_reboot.json SHA-256 f94fc55b02e5aed1edb3e265d0e2440691ecd297afd439e7ab49c145e2f1f63e |
| Skog Reboot rev A | DuoChordMigration guide | HEX ↓112.8 KBFile detailsbioi_skog_reboot_rev_a_duochord_via.hex SHA-256 aeb9f16c45b3d02916423b7496c6c4bae0e830b18da39fa83c558c1a65997088 | HEX ↓146.8 KBFile detailsbioi_skog_reboot_rev_a_duochord_vial.hex SHA-256 60cf90f06082ce7eb7b17c68ab80bd9d840e6d0deaa20f84778f05a8348a625c | JSON ↓6.3 KBFile detailsskog_reboot_duochord.json SHA-256 a44bd37dc5f0c8bb3723b9360acd71754d4ec9fb9403fc229f654ee3399b4993 |
| Skog Reboot rev B | Legacy BLE firmware (Bluefruit) | HEX ↓113.3 KBFile detailsbioi_skog_reboot_rev_b_bluefruit_via.hex SHA-256 d6781f5f1c1d6d6c09acad5c647915a5e8c08bfbbad5f3d790f741bf1fec4ef0 | HEX ↓147.2 KBFile detailsbioi_skog_reboot_rev_b_bluefruit_vial.hex SHA-256 2245a3adf9b72d8bf08f93b67bf6e94c78b059e4dc159351edaeed6b1dd17616 | JSON ↓5.5 KBFile detailsskog_reboot.json SHA-256 f94fc55b02e5aed1edb3e265d0e2440691ecd297afd439e7ab49c145e2f1f63e |
| Skog Reboot rev B | DuoChordMigration guide | HEX ↓113.0 KBFile detailsbioi_skog_reboot_rev_b_duochord_via.hex SHA-256 44b43d943cab22bce0764431c344f9a6b61d6811be641267dfafba48b60e2f24 | HEX ↓147.2 KBFile detailsbioi_skog_reboot_rev_b_duochord_vial.hex SHA-256 5e3074371beb50a692fe4f1afced2fc9ae0418a50295de6e1772cb466fd88792 | JSON ↓6.3 KBFile detailsskog_reboot_duochord.json SHA-256 a44bd37dc5f0c8bb3723b9360acd71754d4ec9fb9403fc229f654ee3399b4993 |
F60
| PCB | Backend | QMK / VIA | Vial | VIA JSON |
|---|
| F60 rev1 | USB only | HEX ↓60.4 KBFile detailsbioi_f60_rev_1_via.hex SHA-256 bc23135c104e489a2d8a4f43ebb76a21a4ab2009a3339183b75098cfeb43630f | HEX ↓76.9 KBFile detailsbioi_f60_rev_1_vial.hex SHA-256 030735c8bebecc4f00f318e05308711494aac7330f00c6f71d65766c24184485 | JSON ↓5.3 KBFile detailsf60.json SHA-256 b55cd0d6a6993ca708ba4ef815aa766b632f07eccf1f4044c23365f20ae8aac7 |
| F60 rev2 | USB only | UF2 ↓69.5 KBFile detailsbioi_f60_rev_2_via.uf2 SHA-256 918327d1b642dcea5110ebbd03fa0064369427974f668c59c44f36573bb455f9 | UF2 ↓95.5 KBFile detailsbioi_f60_rev_2_vial.uf2 SHA-256 34193a170022af30f4138fb70f4bb3a8362ec309c5b806cb258159f45bcd215a | JSON ↓8.2 KBFile detailsf60m.json SHA-256 7732dba698980bbc12f7803f2328f928fb90a76fbc438c7f64de54ade953a160 |
| F60 rev3 | USB only | UF2 ↓99.0 KBFile detailsbioi_f60_rev_3_via.uf2 SHA-256 20523c088fd5f0981900eef34595263e41eb3dcaead3eb5a745a53e002facc4c | UF2 ↓124.5 KBFile detailsbioi_f60_rev_3_vial.uf2 SHA-256 f71e5bc115e567e9973feee72d57fcb94b93e8c2f86d6675b4f13d99016de5ff | JSON ↓8.2 KBFile detailsf60m.json SHA-256 7732dba698980bbc12f7803f2328f928fb90a76fbc438c7f64de54ade953a160 |
| F60 revM | USB only | UF2 ↓69.5 KBFile detailsbioi_f60_rev_m_via.uf2 SHA-256 690fe5c5173f41abf6d04a98f179753057c953a47749f08ef87e3578e275e871 | UF2 ↓95.5 KBFile detailsbioi_f60_rev_m_vial.uf2 SHA-256 f45dd36bc0b3f0c84e8bf1bbfb7350eb71aca7069b2dfdf68e54264d1e75dfb8 | JSON ↓8.2 KBFile detailsf60m.json SHA-256 7732dba698980bbc12f7803f2328f928fb90a76fbc438c7f64de54ade953a160 |
| F60w | CH592 | UF2 ↓107.0 KBFile detailsbioi_dev_f60w_via.uf2 SHA-256 634bc60f0f72bf9e3bd955e2031e6e6fb2443238411eadbed107601fb4986022 | UF2 ↓133.5 KBFile detailsbioi_dev_f60w_vial.uf2 SHA-256 08688d9f8f1fe454e8f441f91211c6b87729654284165a86ac547197bfd8460e | JSON ↓9.4 KBFile detailsf60w.json SHA-256 48f6f4a6672c856ce769dceca89dd8c2bc7907e5e1864d9f915ae3d05ffeb0eb |
3. Verification and flashing
Expand File details to view the full file name and SHA-256 checksum and verify download integrity. On Windows, compare it with the output of Get-FileHash <file-path> -Algorithm SHA256.