From b8a376b93b1570e1066fcc65e762388c599eec7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thea=20Sch=C3=B6bl?= Date: Mon, 9 Dec 2024 18:27:09 +0100 Subject: [PATCH] feat: update m4g --- src/lib/assets/layouts/m4g.yml | 13 +++++++ src/lib/assets/layouts/m4gr.yml | 35 +++++++++++++------ src/lib/serial/device.ts | 4 +-- .../ccos/[device]/[version]/+page.svelte | 33 ++++++++++++++--- .../(app)/ccos/[device]/[version]/+page.ts | 1 + .../(app)/ccos/[device]/[version]/meta.ts | 15 ++++++++ 6 files changed, 84 insertions(+), 17 deletions(-) diff --git a/src/lib/assets/layouts/m4g.yml b/src/lib/assets/layouts/m4g.yml index 066cc933..3c347a8e 100644 --- a/src/lib/assets/layouts/m4g.yml +++ b/src/lib/assets/layouts/m4g.yml @@ -5,20 +5,33 @@ col: row: - switch: { e: 26, n: 27, w: 28, s: 29 } - switch: { e: 21, n: 22, w: 23, s: 24 } + - offset: [4, 0] + switch: { w: 66, n: 67, e: 68, s: 69 } + - switch: { w: 71, n: 72, e: 73, s: 74 } - offset: [2, 0] row: - switch: { e: 41, n: 42, w: 43, s: 44 } - switch: { e: 36, n: 37, w: 38, s: 39 } + - offset: [4, 0] + switch: { w: 81, n: 82, e: 83, s: 84 } + - switch: { w: 86, n: 87, e: 88, s: 89 } # Pinkie / Index - offset: [0, -3] row: - switch: { e: 31, n: 32, w: 33, s: 34 } - offset: [4, 0] switch: { e: 16, n: 17, w: 18, s: 19 } + - switch: { w: 61, n: 62, e: 63, s: 64 } + - offset: [4, 0] + switch: { w: 76, n: 77, e: 78, s: 79 } # Thumbs - row: - offset: [5.5, 0.5] switch: { e: 11, n: 12, w: 13, s: 14 } + - offset: [1, 0.5] + switch: { w: 56, n: 57, e: 58, s: 59 } - row: - offset: [4.5, -0.25] switch: { e: 6, n: 7, w: 8, s: 9 } + - offset: [3, -0.25] + switch: { w: 51, n: 52, e: 53, s: 54 } diff --git a/src/lib/assets/layouts/m4gr.yml b/src/lib/assets/layouts/m4gr.yml index 23bf02bf..3c347a8e 100644 --- a/src/lib/assets/layouts/m4gr.yml +++ b/src/lib/assets/layouts/m4gr.yml @@ -1,24 +1,37 @@ -name: M4GR +name: M4G col: # Ring / Middle - offset: [2, 0] row: - - switch: { e: 23, n: 22, w: 21, s: 24 } - - switch: { e: 28, n: 27, w: 26, s: 29 } + - switch: { e: 26, n: 27, w: 28, s: 29 } + - switch: { e: 21, n: 22, w: 23, s: 24 } + - offset: [4, 0] + switch: { w: 66, n: 67, e: 68, s: 69 } + - switch: { w: 71, n: 72, e: 73, s: 74 } - offset: [2, 0] row: - - switch: { e: 38, n: 37, w: 36, s: 39 } - - switch: { e: 43, n: 42, w: 41, s: 44 } + - switch: { e: 41, n: 42, w: 43, s: 44 } + - switch: { e: 36, n: 37, w: 38, s: 39 } + - offset: [4, 0] + switch: { w: 81, n: 82, e: 83, s: 84 } + - switch: { w: 86, n: 87, e: 88, s: 89 } # Pinkie / Index - offset: [0, -3] row: - - switch: { e: 18, n: 17, w: 16, s: 19 } + - switch: { e: 31, n: 32, w: 33, s: 34 } - offset: [4, 0] - switch: { e: 33, n: 32, w: 31, s: 34 } + switch: { e: 16, n: 17, w: 18, s: 19 } + - switch: { w: 61, n: 62, e: 63, s: 64 } + - offset: [4, 0] + switch: { w: 76, n: 77, e: 78, s: 79 } # Thumbs - row: - - offset: [0.5, 0.5] - switch: { e: 13, n: 12, w: 11, s: 14 } + - offset: [5.5, 0.5] + switch: { e: 11, n: 12, w: 13, s: 14 } + - offset: [1, 0.5] + switch: { w: 56, n: 57, e: 58, s: 59 } - row: - - offset: [1.5, -0.25] - switch: { e: 8, n: 7, w: 6, s: 9 } + - offset: [4.5, -0.25] + switch: { e: 6, n: 7, w: 8, s: 9 } + - offset: [3, -0.25] + switch: { w: 51, n: 52, e: 53, s: 54 } diff --git a/src/lib/serial/device.ts b/src/lib/serial/device.ts index e2278359..c77419ca 100644 --- a/src/lib/serial/device.ts +++ b/src/lib/serial/device.ts @@ -25,8 +25,8 @@ const KEY_COUNTS = { TWO: 90, LITE: 67, X: 256, - M4G: 64, - M4GR: 64, + M4G: 90, + M4GR: 90, } as const; if ( diff --git a/src/routes/(app)/ccos/[device]/[version]/+page.svelte b/src/routes/(app)/ccos/[device]/[version]/+page.svelte index 7182c2c4..a5468ab4 100644 --- a/src/routes/(app)/ccos/[device]/[version]/+page.svelte +++ b/src/routes/(app)/ccos/[device]/[version]/+page.svelte @@ -113,8 +113,9 @@ const { Transport, ESPLoader } = await import("esptool-js"); const espLoader = new ESPLoader({ transport: new Transport(port), - baudrate: Number(esptool.baud), - romBaudrate: Number(esptool.baud), + baudrate: 9600, // Number(esptool.baud), + romBaudrate: 9600, // Number(esptool.baud), + debugLogging: true, terminal: { clean: () => { terminalOutput = ""; @@ -127,8 +128,10 @@ }, }, } satisfies LoaderOptions); - await espLoader.connect(esptool.before); - await espLoader.runStub(); + await espLoader.detectChip(esptool.before); + if (!espLoader.IS_STUB) { + await espLoader.runStub(); + } return espLoader; } @@ -162,6 +165,25 @@ port.close(); } } + + async function eraseSPI() { + const port = await navigator.serial.requestPort(); + try { + console.log(data.meta); + const spiFlash = data.meta.spi_flash!; + espLoader = await connectEsp(port); + + /*espLoader.flashSpiAttach( + (spiFlash.connection.clk << 0) | + (spiFlash.connection.q << 8) | + (spiFlash.connection.d << 16) | + (spiFlash.connection.cs << 24), + ); + espLoader.flashId();*/ + } finally { + port.close(); + } + }
@@ -288,6 +310,9 @@ +
{terminalOutput}
diff --git a/src/routes/(app)/ccos/[device]/[version]/+page.ts b/src/routes/(app)/ccos/[device]/[version]/+page.ts index a41bd7e9..54190177 100644 --- a/src/routes/(app)/ccos/[device]/[version]/+page.ts +++ b/src/routes/(app)/ccos/[device]/[version]/+page.ts @@ -44,6 +44,7 @@ export const load = (async ({ fetch, params }) => { (entry) => entry.type === "file" && (!meta?.files || entry.name in meta.files), ) as FileListing[], + spi_flash: meta?.spi_flash ?? undefined, }, }; }) satisfies PageLoad; diff --git a/src/routes/(app)/ccos/[device]/[version]/meta.ts b/src/routes/(app)/ccos/[device]/[version]/meta.ts index f1f062e3..1dc77e82 100644 --- a/src/routes/(app)/ccos/[device]/[version]/meta.ts +++ b/src/routes/(app)/ccos/[device]/[version]/meta.ts @@ -12,6 +12,21 @@ export interface VersionMeta { esptool: EspToolData | null; }; files: string[]; + spi_flash: SPIFlashInfo | null; +} + +export interface SPIFlashInfo { + type: string; + size: string; + connection: SPIConnection; +} + +export interface SPIConnection { + clk: number; + q: number; + d: number; + hd: number; + cs: number; } export interface EspToolData {