Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Soldered Inputronic Keyboard Arduino Library

Make docs and publish to GitHub Pages Arduino Library Manager Compatibility

Soldered Inputronic Keyboard
Soldered Inputronic Keyboard - SKU: 333360

This Arduino library provides an easy-to-use driver for the Soldered Inputronic Keyboard (SKU 333360). It communicates over I²C (Qwiic / easyC) using the TI TCA8418 keypad controller, and supports both low-level key event reading and higher-level text input helpers.


Features

  • Simple initialization over I²C (begin())
  • Polling-based key event FIFO reading (no interrupt pin required)
  • Pressed-state tracking (supports modifier keys such as SHIFT)
  • Built-in UPPER / LOWER keymaps with CAPS toggle handled inside the driver
  • Convert key labels to printable characters using labelToChar() (SHIFT handled by the library)
  • High-level helpers:
    • stringInput() – blocking text entry
    • typeOn() – blocking “type mode” with callback (or default Serial output)

Quick start

1) Initialize the keyboard

#include "SOLDERED-Inputronic-Keyboard.h"

InputronicKeyboard kbd;

void setup() {
  Serial.begin(115200);

  if (!kbd.begin()) {
    Serial.println("Keyboard not found!");
    while (true) delay(250);
  }

  Serial.println("Keyboard ready.");
}

void loop() {
  // Your code here
}

2) Poll events and print typed characters (SHIFT handled by library)

Use labelToChar() to get a final printable character from a mapped label:

void loop() {
  while (kbd.eventsAvailable() > 0) {
    bool isRelease = false;
    uint8_t row = 0, col = 0;
    const char* label = nullptr;

    if (!kbd.readMappedEvent(isRelease, row, col, label)) break;
    if (!label || isRelease) continue;

    if (!strcmp(label, "SPACE")) { Serial.print(' '); continue; }
    if (!strcmp(label, "BACK"))  { Serial.print("\b \b"); continue; }
    if (!strcmp(label, "ENTER")) { Serial.println(); continue; }
    if (!strcmp(label, "CAPS") || !strcmp(label, "SHIFT")) continue;

    char ch;
    if (kbd.labelToChar(label, ch, true)) {
      Serial.print(ch);
    }
  }

  delay(1);
}

Keymaps and SHIFT mapping

This library separates layout customization into dedicated headers:

  • Inputronic-Keymap.h

    • Defines two keymaps: INPUTRONIC_KEYMAP_UPPER and INPUTRONIC_KEYMAP_LOWER
    • The driver automatically toggles between them when CAPS is pressed
  • Inputronic-Shiftmap.h

    • Defines how symbols/numbers are transformed while SHIFT is held
    • Used by labelToChar() for non-letter characters

CAPS and SHIFT behavior

  • CAPS toggles the active keymap (UPPER/LOWER) internally
  • SHIFT is treated as a held modifier:
    • Letters use CAPS XOR SHIFT behavior (case inversion)
    • Symbols/numbers use the Inputronic-Shiftmap.h lookup table

Examples

The library includes multiple examples demonstrating different use cases:

  • KeyboardPoll – print key labels and matrix coordinates (press events)
  • SerialType – terminal-style typing into Serial Monitor (SHIFT handled by library)
  • OledType – live text typing on SSD1306 OLED display
  • InkplateType – typing on Inkplate e-paper with refresh-on-ENTER

Repository Contents

  • /src – library source files (.h & .cpp)
  • /examples – example sketches for common use cases
  • library.properties – Arduino Library Manager metadata

Hardware design

You can find the hardware design files in the dedicated hardware repository for the Soldered Inputronic Keyboard.


Documentation


Board compatibility

This library is compatible with any Arduino-compatible platform that supports I²C.

Tested/typical platforms include:

  • ESP32 family
  • Arduino UNO / Mega / Due / UNO R4
  • Soldered Inkplate series (e.g. Inkplate 5 v2, Inkplate 6 FLICK)

About Soldered

soldered-logo

At Soldered, we design and manufacture a wide selection of electronic products to help you turn your ideas into acts and bring you one step closer to your final project. Our products are intended for makers and crafted in-house by our experienced team in Osijek, Croatia. We believe that sharing is a crucial element for improvement and innovation, and we work hard to stay connected with all our makers regardless of their skill or experience level. Therefore, all our products are open-source. Finally, we always have your back. If you face any problem concerning either your shopping experience or your electronics project, our team will help you deal with it, offering efficient customer service and cost-free technical support anytime.


Open-source license

This library is open-source under the MIT License.

Soldered invests significant time into open-source hardware & software development. Please support future development by purchasing original Soldered products.

The contents of this repository are provided "AS IS", without warranty of any kind.


© 2025 Soldered Electronics — Osijek, Croatia
https://www.soldered.com

Have fun!

And thank you from your fellow makers at Soldered Electronics.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages