This commit is contained in:
MarekZegare4
2026-08-29 17:09:09 +00:00
parent afb744786f
commit dd25b3d455
29 changed files with 3354 additions and 644 deletions
+66 -28
View File
@@ -13,7 +13,7 @@
<link rel="canonical" href="https://meshcore-dev.github.io/meshcore/solo_features/external_keyboard/">
<link rel="prev" href="../../development/roadmap/">
<link rel="prev" href="../build_flags/">
<link rel="next" href="../clock_screen/clock_screen/">
@@ -843,6 +843,34 @@
<li class="md-nav__item">
<a href="../build_flags/" class="md-nav__link">
<span class="md-ellipsis">
Build flags
</span>
</a>
</li>
@@ -1025,10 +1053,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_2" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_3" >
<label class="md-nav__link" for="__nav_16_2" id="__nav_16_2_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_3" id="__nav_16_3_label" tabindex="0">
@@ -1046,8 +1074,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_2_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_2">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_3">
<span class="md-nav__icon md-icon"></span>
@@ -1108,10 +1136,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_3" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_4" >
<label class="md-nav__link" for="__nav_16_3" id="__nav_16_3_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_4" id="__nav_16_4_label" tabindex="0">
@@ -1129,8 +1157,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_3_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_3">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_4">
<span class="md-nav__icon md-icon"></span>
@@ -1191,10 +1219,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_4" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_5" >
<label class="md-nav__link" for="__nav_16_4" id="__nav_16_4_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_5" id="__nav_16_5_label" tabindex="0">
@@ -1212,8 +1240,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_4_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_4">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_5">
<span class="md-nav__icon md-icon"></span>
@@ -1274,10 +1302,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_5" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_6" >
<label class="md-nav__link" for="__nav_16_5" id="__nav_16_5_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_6" id="__nav_16_6_label" tabindex="0">
@@ -1295,8 +1323,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_5_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_5">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_6">
<span class="md-nav__icon md-icon"></span>
@@ -1357,10 +1385,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_6" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_7" >
<label class="md-nav__link" for="__nav_16_6" id="__nav_16_6_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_7" id="__nav_16_7_label" tabindex="0">
@@ -1378,8 +1406,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_6_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_6">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_7">
<span class="md-nav__icon md-icon"></span>
@@ -1440,10 +1468,10 @@
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_7" >
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_16_8" >
<label class="md-nav__link" for="__nav_16_7" id="__nav_16_7_label" tabindex="0">
<label class="md-nav__link" for="__nav_16_8" id="__nav_16_8_label" tabindex="0">
@@ -1461,8 +1489,8 @@
<span class="md-nav__icon md-icon"></span>
</label>
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_7_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_7">
<nav class="md-nav" data-md-level="2" aria-labelledby="__nav_16_8_label" aria-expanded="false">
<label class="md-nav__title" for="__nav_16_8">
<span class="md-nav__icon md-icon"></span>
@@ -1723,6 +1751,11 @@ see <a href="#built-in-keyboards-cardputer-adv-t-echo-lite--keyshield">Built-in
<td style="text-align: center;">—</td>
<td style="text-align: center;">built-in keypad instead, see below</td>
</tr>
<tr>
<td>ProMicro (nRF52840) <em>(experimental)</em></td>
<td style="text-align: center;">✅ shares the primary I2C bus (D8/D7) — no free pins for a second bus</td>
<td style="text-align: center;">—</td>
</tr>
</tbody>
</table>
<hr />
@@ -1732,6 +1765,10 @@ see <a href="#wiring-heltec-v3--v4">Wiring</a> for the Heltec boards). The firmw
for it once at boot — nothing to enable in Settings.</p>
<p>The same bus is scanned for environment sensors, so a CardKB and a sensor can
share it.</p>
<p>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 <code>CARDKB_I2C=Wire</code>
as a build flag rather than <code>ENV_PIN_SDA</code>/<code>ENV_PIN_SCL</code>. See
<a href="../build_flags/">Build Flags</a> for both forms.</p>
<h3 id="typing">Typing</h3>
<p>Printable characters insert straight at the cursor, bypassing the on-screen grid
completely. The alphabet and T9/ABC settings do not apply — a real keyboard sends
@@ -1887,8 +1924,8 @@ hardware</strong>; still worth checking against your own V3 module before solder
</table>
<p>Everything above lives in the <code>[env:Heltec_v3_companion_solo_dual]</code> /
<code>[env:heltec_v4_companion_solo_dual]</code> blocks in
<a href="../../variants/heltec_v3/platformio.ini"><code>variants/heltec_v3/platformio.ini</code></a>
and <a href="../../variants/heltec_v4/platformio.ini"><code>variants/heltec_v4/platformio.ini</code></a>,
<a href="../../solo/heltec_v3/platformio.ini"><code>solo/heltec_v3/platformio.ini</code></a>
and <a href="../../solo/heltec_v4/platformio.ini"><code>solo/heltec_v4/platformio.ini</code></a>,
with comments explaining which pins are safe to reuse. To build a CardKB-only
device, comment out the joystick block and set Ext. KB to Compact.</p>
<hr />
@@ -1903,7 +1940,8 @@ independent of the CardKB code — a board can have either, or neither.</p>
</ul>
<p>Neither keypad follows CardKB's exact Fn-shortcut table (Fn+Enter,
Fn+letter accent popups, Tab, Fn+Esc lock) — see each board's own
<code>platformio.ini</code> / keyboard driver under <code>variants/</code> for its current keymap.</p>
keyboard driver under <code>variants/</code> and its solo <code>platformio.ini</code> under <code>solo/</code>
for its current keymap.</p>