diff --git a/README.md b/README.md index 76d506f1..ff6ce113 100644 --- a/README.md +++ b/README.md @@ -209,6 +209,7 @@ git config merge.ours.driver true | `heltec_v4_companion_solo_dual` | Heltec LoRa32 V4 *(experimental)* | | `M5Stack_Cardputer_ADV_companion_solo_dual` | M5Stack Cardputer ADV *(experimental)* | | `LilyGo_T-Echo-Lite_keyshield_companion_solo_dual` | LilyGO T-Echo Lite + KeyShield *(experimental)* | +| `ProMicro_companion_solo_dual` | ProMicro (nRF52840) + CardKB *(experimental)* | ```sh pio run -e # build only diff --git a/docs/solo_features/build_flags.md b/docs/solo_features/build_flags.md index 655a1cdb..4c552b77 100644 --- a/docs/solo_features/build_flags.md +++ b/docs/solo_features/build_flags.md @@ -48,7 +48,8 @@ existing `solo//platformio.ini` for what's already claimed). | Flag | Adds | | --- | --- | -| `ENV_PIN_SDA` / `ENV_PIN_SCL` | CardKB (M5Stack I2C keyboard, addr `0x5F`) on a second I2C bus. Probed at boot — harmless with nothing plugged in. See [External Keyboard & Joystick](./external_keyboard.md). | +| `ENV_PIN_SDA` / `ENV_PIN_SCL` | CardKB (M5Stack I2C keyboard, addr `0x5F`) on a second I2C bus (resolves to `Wire1`). Probed at boot — harmless with nothing plugged in. See [External Keyboard & Joystick](./external_keyboard.md). | +| `CARDKB_I2C=` | Same CardKB support, naming the bus directly — for a board with no free pins for a second bus, set `CARDKB_I2C=Wire` to share the primary bus (already used by the display/RTC) instead of defining `ENV_PIN_SDA`/`ENV_PIN_SCL`. Takes precedence if both are somehow set. | | `UI_HAS_JOYSTICK=1` + `UI_HAS_JOYSTICK_UPDOWN=1` (optional) + `JOYSTICK_UP` / `JOYSTICK_DOWN` / `JOYSTICK_LEFT` / `JOYSTICK_RIGHT` + `PIN_USER_BTN` + `PIN_BACK_BTN` | A wired joystick (four direction contacts + a press contact for Enter). Replaces single-button navigation entirely once enabled. See [External Keyboard & Joystick](./external_keyboard.md). | | `PIN_GPIO1` .. `PIN_GPIO4` | Up to four general-purpose pins, each independently switchable between Off / Input / Output (GPIO1/GPIO2 also get an Analog step, if wired to an ADC-capable pin) from Tools › GPIO, and via the `!gpio1`..`!gpio4` bot commands. Not restricted to any particular board — works anywhere the pins are actually free. See [Tools Screen › GPIO](./tools_screen/tools_screen.md#gpio). | | `PIN_HALL_SENSOR` + `HALL_ACTIVE_HIGH=1` (optional) | A Hall-effect or reed sensor for a magnetic flip cover: closing locks and blanks the screen instantly, opening unlocks and wakes it, no combo either way. `HALL_ACTIVE_HIGH` is only for a module wired to pull the pin high (rather than low) when the magnet is near. See [Screen Lock › Magnetic cover](./screen_lock/screen_lock.md#magnetic-cover-hall-sensor). | diff --git a/docs/solo_features/external_keyboard.md b/docs/solo_features/external_keyboard.md index 56f3978a..12ffb90e 100644 --- a/docs/solo_features/external_keyboard.md +++ b/docs/solo_features/external_keyboard.md @@ -23,6 +23,7 @@ see [Built-in keyboards](#built-in-keyboards-cardputer-adv-t-echo-lite--keyshiel | Heltec V4 *(experimental)* | ✅ solder to free GPIOs | ✅ solder to free GPIOs | | M5Stack Cardputer ADV *(experimental)* | — | built-in keyboard instead, see below | | LilyGO T-Echo Lite + KeyShield *(experimental)* | — | built-in keypad instead, see below | +| ProMicro (nRF52840) *(experimental)* | ✅ shares the primary I2C bus (D8/D7) — no free pins for a second bus | — | --- @@ -35,6 +36,11 @@ for it once at boot — nothing to enable in Settings. The same bus is scanned for environment sensors, so a CardKB and a sensor can share it. +On a board with no free pins for a second bus (ProMicro), CardKB instead +shares the primary bus already used by the display/RTC — set `CARDKB_I2C=Wire` +as a build flag rather than `ENV_PIN_SDA`/`ENV_PIN_SCL`. See +[Build Flags](./build_flags.md) for both forms. + ### Typing Printable characters insert straight at the cursor, bypassing the on-screen grid diff --git a/release-notes.md b/release-notes.md index bc6ce158..6a007570 100644 --- a/release-notes.md +++ b/release-notes.md @@ -4,6 +4,8 @@ - **On-device community scope, and repeater-side scope filtering.** Settings › Radio gets a **Scope** field — type a region/community name (e.g. `pl`) and every device typing the same name derives the same shared tag, no key exchange needed; it's what your own DM/channel sends carry, previously only settable from a connected app. Tools › Repeater gains **Scope only** (only relay flood traffic matching your own scope, or one of the new **Extra scopes** below — a no-op until a scope is actually set, so it can't silently blackhole all forwarding) and **Extra scopes** (comma-separated additional regions to relay for, without changing what scope this device's own messages send under). - **Optional magnetic "flip cover" screen lock**, for anyone who wants to wire a Hall-effect or reed sensor to a free GPIO — no board ships one built in. Set `PIN_HALL_SENSOR` as a build flag on your own env and closing the cover locks and blanks the screen instantly, opening it unlocks and wakes it — no combo, independent of Auto-lock. See [Screen Lock](docs/solo_features/screen_lock/screen_lock.md#magnetic-cover-hall-sensor). +- **Experimental: solo build for ProMicro (nRF52840)**, with CardKB support sharing the board's primary I2C bus (no free pins for a second one on this board). Contributed by @tchellow — thanks! +- **New [Build Flags](docs/solo_features/build_flags.md) reference** — every optional `-D` flag a solo build understands (GPIO, CardKB/joystick, Hall-sensor cover lock, buzzer/vibration, GPS switch, display/battery tuning) in one place. ### Fixes