From ed707b1ae7803f0f11b42e6b364345e96b999f0a Mon Sep 17 00:00:00 2001
From: Mohamed Mahjoub <75433420+Probler-Yt@users.noreply.github.com>
Date: Wed, 16 Sep 2026 20:39:44 +0100
Subject: [PATCH] Read the pad, detect unknown ones, layout editor
added a feature that now can read the inputs off the board, meaning if you already have saved settings and you uninstall / reinstall the app or use it on a new device it can auto detect what each key has saved.
using the above feature i now also do believe it is possible to auto detect the macros pads rough layout / how many keys and dials it has!. hopfully this means that more people can use the app easily without needing to hard code a bunch of new layouts. its not truly universal but it should open the door to much more pads working out of the box right now!
and lastly in case the extra layouts do work i made a little layout editor so you can the app to look like your actual macropad!
---
README.md | 167 ++++++++----
docs/images/edit-layout.png | Bin 0 -> 283792 bytes
docs/images/first-launch.png | Bin 271889 -> 256556 bytes
docs/images/flat-view.png | Bin 250949 -> 250089 bytes
docs/images/hero.png | Bin 246488 -> 250422 bytes
docs/images/keyd-note.png | Bin 274961 -> 278064 bytes
docs/images/permission.png | Bin 312474 -> 315773 bytes
docs/images/read-pad.png | Bin 0 -> 287353 bytes
docs/images/social-preview.png | Bin 97937 -> 97683 bytes
docs/images/step-media.png | Bin 277496 -> 280654 bytes
docs/images/step-nothing.png | Bin 248820 -> 252844 bytes
docs/images/step-pending.png | Bin 249916 -> 250368 bytes
docs/images/step-record.png | Bin 299541 -> 281796 bytes
docs/images/step-type.png | Bin 277367 -> 276939 bytes
docs/images/step-written.png | Bin 241745 -> 245037 bytes
docs/images/unsupported.png | Bin 378030 -> 369953 bytes
docs/make_screenshots.py | 20 ++
macropad-capture.py | 158 +++++++++---
macropad-read.py | 184 +++++++++++++
macropad.py | 41 +++
macropad_gui/__main__.py | 27 +-
macropad_gui/app.py | 202 ++++++++++++++-
macropad_gui/core.py | 415 +++++++++++++++++++++++++++---
macropad_gui/padview.py | 214 ++++++++++++---
tests/captures/1189-8840-read.txt | 160 ++++++++++++
tests/test_core.py | 326 ++++++++++++++++++++++-
26 files changed, 1740 insertions(+), 174 deletions(-)
create mode 100644 docs/images/edit-layout.png
create mode 100644 docs/images/read-pad.png
create mode 100644 macropad-read.py
create mode 100644 tests/captures/1189-8840-read.txt
diff --git a/README.md b/README.md
index 151ddec..d6b2627 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
- Install |
+ Install |
First binding |
Help |
Other pads |
@@ -37,7 +37,7 @@
> ```
> curl -fsSL https://raw.githubusercontent.com/Probler-Yt/MacroPad/main/install.sh | bash
> ```
-> Never used a terminal? Perfect. [The step by step guide](#-install-it-the-whole-world-is-counting-on-you) was written for you.
+> Never used a terminal? Perfect. [The step by step guide](#-install) was written for you.
---
@@ -73,13 +73,13 @@ Probably, if yours looks like this:
- Came with software called **`MINI_KEYBOARD.exe`**, or a download link to it.
- Plugs in with USB and works as a keyboard straight away.
-To be sure, open a terminal ([how?](#step-1-open-a-terminal)), type `lsusb` and press Enter. Look for this line:
+To check, run `lsusb` in a terminal and look for a line like:
```
Bus 001 Device 011: ID 1189:8840 Acer Communications & Multimedia USB Composite Device
```
-The important bit is **`1189:8840`**. Don't worry about the "Acer" part: it isn't made by Acer, these pads just borrow that ID.
+The part that matters is **`1189:8840`**. Ignore "Acer": these pads borrow that ID and have nothing to do with Acer.
> [!NOTE]
> **Different number, like `1189:8890` or `1189:8842`?** That's a sibling of this pad with a different layout. MacroPad will spot it and tell you it isn't supported yet, rather than risk sending it the wrong thing. [ch57x-keyboard-tool](https://github.com/kriomant/ch57x-keyboard-tool) supports several of them today, and [you can help add yours here](#-other-pads-in-this-family).
@@ -95,7 +95,10 @@ The important bit is **`1189:8840`**. Don't worry about the "Acer" part: it isn'
| 🎵 **Media keys** | Play/pause, next, previous, stop, volume, mute, **screen brightness**, calculator, email, browser, my computer. |
| 🚫 **Nothing** | Switch a key off completely, so a stray press does nothing. |
| 🔄 **Rotate view** | Stand your pad up or lay it flat. The drawing turns to match. |
-| 🧠 **Remembers what it wrote** | The pad can't be read back, so the app keeps its own notes and marks anything it doesn't know. |
+| 📖 **Reads your pad** | Opens and asks the pad what it's actually holding, so you start from the truth. |
+| 🔎 **Identifies unknown pads** | Asks an unrecognised pad about itself, read only, and refuses to write if it doesn't answer properly. |
+| 📐 **Layout editor** | Drag the keys around until the drawing matches your pad. |
+| 🧠 **Remembers what it wrote** | Keeps its own notes too, and marks anything it isn't sure about rather than guessing. |
| 🩺 **Tells you what's wrong** | Unplugged? No permission? Wrong pad? You get a plain explanation and the exact fix, with a copy button. |
| 📥 **Imports from the vendor app** | Set your pad up on Windows before? Bring that setup across. |
@@ -125,6 +128,7 @@ Both write straight to the pad's own memory, so you can even use both. Pick whic
| Key sequences with delays | Not yet | Yes |
| Mouse actions, LED modes, extra layers | Not yet | Yes |
| Record a shortcut by pressing it | Yes | No |
+| Read what's on the pad | Yes | No |
| Install and permissions | One line does both | AUR, a download or `cargo install`; rule by hand |
**Short version:** new to Linux, or just want to click things? MacroPad. Want every feature, a different pad, or a config file you can keep in git? ch57x-keyboard-tool.
@@ -133,26 +137,20 @@ Other people have built GUIs for these pads too, mostly for the smaller 3 and 6
---
-## 🚀 Install it (the whole world is counting on you)
+## 🚀 Install
-Welcome. Maybe this is your first week on Linux. Maybe it's your first *hour*. Either way, you are about to do something brave and important, and I'm going to walk you through every single click. Nothing here can break your computer. Deep breath. Let's save the world.
+One command does everything: the app, the Qt libraries if you need them, the menu entry, and the USB permission rule. It asks before each step that needs your password, and it's safe to run again to update.
-### Step 0: Plug in your pad
-
-Plug the macro pad into a USB port. That's it. Step zero complete. You're doing amazing.
+If you're comfortable in a terminal, [skip to the command](#step-2-copy-this-line). The steps below spell it out for anyone newer to Linux, since these pads are a lot of people's first reason to open one.
### Step 1: Open a terminal
-A **terminal** is a window where you type instructions instead of clicking. It looks scary. It isn't. Think of it as a very literal assistant who does exactly what you type.
-
-How to open one:
+A terminal is a window where you type commands instead of clicking. Nothing below can damage your system.
- **KDE Plasma** (CachyOS, Bazzite, Kubuntu, Fedora KDE, KDE neon): press the **Meta key** (the one with the Windows logo), type **`Konsole`**, press **Enter**.
- **GNOME** (Ubuntu, Fedora, Pop!_OS): press the **Meta key**, type **`Terminal`**, press **Enter**.
- **Almost anywhere**: try pressing **`Ctrl` + `Alt` + `T`** together.
-A window with a blinking cursor appears. Hello, terminal. 👋
-
### Step 2: Copy this line
Click the copy button on the right side of this box (or select the text and press `Ctrl+C`):
@@ -168,46 +166,40 @@ In plain words: "download the MacroPad installer from GitHub (`curl`), and run i
-### Step 3: Paste it into the terminal
+### Step 3: Paste it and press Enter
> [!IMPORTANT]
-> **In a terminal, pasting is `Ctrl` + `Shift` + `V`**, not `Ctrl+V`. This catches out everyone coming from Windows. (Right click, then **Paste** works too.)
-
-Paste it, then press **Enter**.
+> Pasting into a terminal is **`Ctrl` + `Shift` + `V`**, not `Ctrl+V`. Right click, then Paste, also works.
### Step 4: Answer the questions
-The installer explains what it's doing as it goes. It will ask a couple of questions like **"Add it now? [Y/n]"**. Just press **Enter** to say yes.
+The installer says what it's doing as it goes, and asks before anything that needs your password. Pressing Enter accepts the default.
-When it asks for your **password**, type the password you use to log in to your computer and press **Enter**.
+It needs the password for two things: installing Qt on systems that don't have it, and writing one permission file so the app can talk to your pad. Everything else stays in your home folder.
-> [!WARNING]
-> **Nothing appears while you type your password.** No dots, no stars, nothing. That's normal! Linux hides it completely so nobody can even count the letters. Just type it and press Enter. If you get it wrong it'll simply ask again.
+> [!NOTE]
+> Nothing appears on screen while you type a password in a terminal. No dots, no stars. That's deliberate, not a frozen prompt.
-It needs your password for two small things: installing Qt (the toolkit that draws the window) on some systems, and adding one file that lets the app talk to your pad. Everything else goes in your own home folder.
+First run downloads around 100 MB on some systems. You'll see **All done.** when it's finished.
-The first install downloads about 100 MB on some systems, so give it a minute. You'll see **All done.** in green when it's finished.
+### Step 5: Replug the pad
-### Step 5: Unplug the pad and plug it back in
-
-This makes Linux notice the new permission. Unplug. Count to two. Plug back in.
+Unplug it and plug it back in, so Linux applies the new permission.
### Step 6: Open MacroPad
-Open your app menu (press the **Meta key**), type **`MacroPad`**, and click it. 🎉
+Open your app menu, type **MacroPad**, and click it.
-**Everything is striped the first time. That's correct.** The app hasn't written anything to your pad yet, and the pad has no way of telling it what's already there. You'll fix that in about thirty seconds.
+A **green dot** and **Pad ready** at the bottom left means it's working. Anything else, and the panel on the right explains it, or see [When something goes wrong](#-when-something-goes-wrong).
-Look at the bottom left. A **green dot** and **Pad ready** means everything worked. If you see something else, the panel on the right will tell you exactly what to do, or jump to [When something goes wrong](#-when-something-goes-wrong).
+The app reads your pad when it opens, so the drawing should fill in with whatever is already on it. Keys still showing as hatched are ones it couldn't read; press **Read pad** to ask again.
> [!TIP]
-> Want it on your taskbar? Right click **MacroPad** in your app menu and choose **Pin to Task Manager** (Plasma) or **Pin to Dash** (GNOME).
-
-**You did it.** The world is saved. Probably. Let's make sure by setting up a key.
+> To keep it handy: right click **MacroPad** in your app menu and choose **Pin to Task Manager** (Plasma) or **Pin to Dash** (GNOME).
---
@@ -215,7 +207,7 @@ Look at the bottom left. A **green dot** and **Pad ready** means everything work
### 1. Click a key on the drawing
-Pick any key. It gets an orange outline, and the panel on the right shows what it does now.
+It gets an orange outline, and the panel on the right shows what it currently does.
### 2. Type what you want it to do
@@ -246,7 +238,7 @@ Click **Media key** and pick from the list. Volume and brightness on the knobs i
### Or make it do nothing
-Bound something you don't want any more? Click **Nothing**, then write it. The key goes quiet: pressing it does nothing at all. Keys set this way show **Nothing** in grey on the drawing.
+To clear a binding, click **Nothing** and write it. Keys set this way show **Nothing** in grey.
@@ -266,9 +258,9 @@ The bottom bar tells you exactly what happened. Green means it worked.
-### 4. Press the key on your pad
+### 4. Press the key
-It does the thing. You can close the app now. **Your bindings live on the pad itself**, so they keep working after a reboot, on another computer, even on Windows. Nothing needs to stay running.
+**Your bindings live on the pad itself**, so they keep working after a reboot, on another computer, even on Windows. Nothing stays running in the background, and you can close the app.
---
@@ -289,6 +281,18 @@ You can also click the three lines of text under each knob. Every click of a tur
---
+## 📐 If the drawing doesn't match your pad
+
+Press **Edit layout** at the bottom. The keys start wobbling, and you can drag them around until the picture matches the pad in front of you. Two keys swap when you drop one onto the other, so nothing is ever lost.
+
+The boxes along the bottom set the grid size and how many keys and knobs there are. **Done** saves it, **Cancel** puts it back.
+
+
+
+
+
+This only changes the picture. It never writes anything to the pad. It's there because the pad reports how many keys it has but not how they're arranged, so on a pad we haven't seen before the first guess can be wrong.
+
## 🔄 Rotate view
Some people stand the pad up with the knobs on top. Some lay it flat with the knobs on the right. Click **Rotate view** at the bottom and the drawing turns to match. It remembers your choice.
@@ -307,17 +311,24 @@ Only do this if nothing has changed on the pad since that capture.
---
-## ❓ Why does it say "Unknown"?
+## 📖 Reading your pad
-Because **these pads are write only.** You can send them new bindings, but there's no known way to ask one what it's currently set to. Even the official Windows app opens with every key blank.
+MacroPad asks the pad what it's holding when it opens, so the drawing shows what's really on the hardware rather than what some file thinks. There's a **Read pad** button at the bottom to ask again at any time.
-So the app keeps its own notes of everything it has successfully written, and it's careful about it:
+Anything you've changed but not written yet is left alone when it reads, since that's your intent, not the pad's state.
-- If a write finishes, the key is marked with what was written.
-- If a write fails before anything reaches the pad, nothing changes.
-- If a write fails **halfway**, that key goes back to **Unknown**, because the honest answer is "no idea". Just write it again.
+### So what does "Unknown" mean now?
-Striped keys aren't broken. They're just keys this app hasn't touched yet.
+Hatched keys are ones the app hasn't been told about: either the pad didn't answer, or you haven't pressed Read pad. Press it and they fill in.
+
+
+
+
+
+The app still keeps its own notes, because a write can fail halfway. If that happens, that one control goes back to Unknown rather than claiming either the old or the new binding, and reading the pad clears it up.
+
+> [!NOTE]
+> This took a while to work out. The project was built assuming these pads were write only, because nothing documented a way to read them and the first captures only recorded traffic in one direction. They can be read. The story is in [For the nerds](#-for-the-nerds).
---
@@ -429,7 +440,24 @@ Siblings come in other sizes, and several share vendor ID `1189`. **They don't a
-### You can add yours
+### Detecting a pad automatically
+
+If MacroPad sees a pad it doesn't recognise, it offers to **ask the pad what it is**. That's read only, and it needs the pad to pass two tests before the app will write anything to it:
+
+1. It answers the `0xFB` query with a sensible key and knob count.
+2. It then reports a full layer, describing exactly the control slots that count implies.
+
+A pad from a different family fails one of those, and the app leaves it alone rather than guessing. On the command line:
+
+```
+macropad detect
+```
+
+The pad reports how many keys and knobs it has, but not how they're arranged, so the app's first guess at rows and columns may be wrong. Check the drawing against the real thing.
+
+If your pad passes, please [open an issue](https://github.com/Probler-Yt/MacroPad/issues) with the output so it can be added to the known list and everyone else gets it working first time.
+
+### Adding one by hand
If you'd like your pad in MacroPad too, you're exactly who this project needs. It's the same process used for this one. You'll need the vendor software (`MINI_KEYBOARD.exe`) and Wine.
@@ -544,6 +572,41 @@ rOzzy1987's format is for different product IDs, which is why porting it to this
+
+Reading the pad, and how we nearly missed it
+
+The project ran for weeks on the assumption that these pads were write only. Two things caused that:
+
+- Nothing documented a read. Neither rOzzy1987's project nor ch57x-keyboard-tool implements one.
+- The capture tool only recorded **outgoing** transfers. So even though the pad had been answering all along, nothing was ever written down.
+
+What settled it was noticing that the vendor software has a "view settings" button, and that it showed bindings written by MacroPad. It couldn't have known those from a file, so it was asking the pad. Capturing both directions gave the answer.
+
+Two query commands, both answered on the interrupt IN endpoint of the same report id:
+
+```
+03 fb ... what are you?
+03 fb 0c 02 reply: 12 keys, 2 knobs
+
+03 fa 0f 03 01 02 ... send me layer 1
+ (15 key slots, 3 layers, layer 1, 2 knobs)
+03 fa 02 01 01 00 ... 01 05 17 key 2 is ctrl+alt+t
+03 fa 10 01 02 00 ... 01 ea 00 dial 1 left is volume down
+ ... one report per control, then silence
+```
+
+Replies use the same layout as a config write, with `0xFA` in place of the `0xFD` magic. Media replies carry a count of 1 where writes send 2; both are accepted.
+
+Three things fell out of it:
+
+- **The pad reports its own layout**, so key and knob counts don't have to be guessed from the USB ID.
+- **There are three layers**, and the firmware keeps 15 key slots and 3 knobs whatever the hardware has. Ours answers for 6 controls that don't physically exist.
+- **The dial mapping is confirmed from the other direction.** Reading back what we had written returns exactly the mapping we assumed, which is stronger evidence than a write that appeared to work.
+
+The vendor's request has trailing bytes that change between runs and look like uninitialised memory from the Windows program. Zeros work fine.
+
+
+
usbmon only shows you 32 bytes
@@ -572,7 +635,7 @@ The app's permission check reads `udevadm info` to see whether the device got th
Where the app keeps its notes
-`~/.config/macropad/state-1189-8840.json` holds everything the app has successfully written. Every entry is exactly a command the CLI understands:
+`~/.config/macropad/state-1189-8840.json` holds what the app last read from or wrote to the pad. Since the pad can be read, this is a cache rather than the source of truth. Every entry is exactly a command the CLI understands:
```json
{
@@ -646,14 +709,18 @@ tests/ real captures and the tests that replay them
- [x] Keys, shortcuts and media keys on `1189:8840`
- [x] Both knobs, all three actions each
- [x] Upright and flat views
+- [x] Reading the pad, so the app shows what's really on it
- [x] One line installer for any distro
-- [ ] **Key sequences with delays** (ch57x-keyboard-tool shows the likely format; one capture to confirm)
-- [ ] Layers 2 and 3, and LED modes
+- [ ] **Key sequences with delays**. Reading the pad shows two-key sequences stored in the layout we assumed, so this is close
+- [ ] **Layers 2 and 3**, which the pad turns out to have
+- [ ] LED modes
- [ ] AUR package, so Arch users can install it like anything else
- [ ] Knob press to toggle brightness between 0% and 100%
- [ ] Save and switch between named profiles (gaming, editing, streaming)
- [ ] **Windows and macOS** via a cross platform USB layer
-- [ ] **More pads**: every capture sent in gets us closer
+- [x] Detecting a pad's key and knob counts by asking it
+- [x] A layout editor, since the pad doesn't report how its keys are arranged
+- [ ] **More pads**: every report sent in gets us closer
---
diff --git a/docs/images/edit-layout.png b/docs/images/edit-layout.png
new file mode 100644
index 0000000000000000000000000000000000000000..b39e68bdaff66a94fab217aca2f0166230cece65
GIT binary patch
literal 283792
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
5wi8
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