Skip to main content

Quick Start

Connect the GRID with a Qwiic cable, install the library and run its button and LED example. Every press of a pad switches that pad's LED on or off, and the press is printed, so you see straight away that the buttons, the LEDs and the I2C link all work.

You program the controller connected to this breakout. The breakout itself is not flashed.

1. Connect the breakout board​

Plug a Qwiic cable into any of the four Qwiic connectors on the back of the GRID and into the Qwiic connector on your controller. No soldering needed. The cable also brings the board its 3.3 V supply, and the other three connectors pass the bus on to more Qwiic boards.

NULA DeepSleepSoldered Inputronic GRID
Qwiic connectorQwiic connector
Wiring diagram: the NULA DeepSleep connected to the Soldered Inputronic GRID with a Qwiic cable

Without Qwiic: breadboard wiring​

The GRID does not plug into a breadboard. Instead, solder four wires to one of the I2C solder pad sets (JP1 to JP4) at the edges of the back. Each set is marked 3V3, SCL, SDA and GND, and carries the same lines as the Qwiic connectors.

ControllerSoldered Inputronic GRID
3V33V3
GNDGND
SDASDA
SCLSCL

The board runs on 3.3 V only. Connect it to a 3.3 V supply and 3.3 V I2C lines.

2. Install the library​

Install Soldered Inputronic GRID by downloading it from its GitHub repository and adding the ZIP in Arduino IDE (see the tip below).

🔗Soldered Inputronic GRID Arduino library

Verified Arduino library at commit 399b832

→

Tip: downloading from GitHub. On the library's GitHub page, click the green Code button and choose Download ZIP, then add it in Arduino IDE with Sketch → Include Library → Add .ZIP Library....

3. Run the first example​

This is ButtonLEDControl.ino, the library's own example. Each press of a pad toggles its LED: on in the colour of its row (red, green, blue and orange for rows 0 to 3), off on the next press.

Select Board
ButtonLEDControl.ino
/**
**************************************************
*
* @file ButtonLEDControl.ino
* @brief Example showing button-driven LED toggle on the Inputronic Grid.
*
* Each button toggles its corresponding LED on or off.
* First press turns the LED on in a row-specific color;
* second press turns it off.
*
* Demonstrates reading individual pads by row/col coordinate
* and reacting with per-LED color control using the same
* row/col coordinates.
*
* Hardware wiring:
* - Connect Inputronic Grid to host via Qwiic / I2C
* (SDA, SCL, 3V3, GND).
*
* @authors Josip Šimun Kuči @ soldered.com
***************************************************/

#include <InputronicGrid.h>

InputronicGrid grid;

// Toggle state per button, indexed by [row][col]
bool ledOn[4][4] = {};

// Colors per row (R, G, B)
const uint8_t rowColor[4][3] = {
{255, 0, 0}, // row 0 — red
{ 0, 255, 0}, // row 1 — green
{ 0, 0, 255}, // row 2 — blue
{255, 128, 0}, // row 3 — orange
};

// Previous pad state per [row][col] for edge detection
bool prevState[4][4] = {};

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

if (!grid.begin())
{
Serial.println("Inputronic GRID not found. Check wiring.");
while (1)
;
}

grid.clearLEDs();
Serial.println("Press any button to toggle its LED.");
}

void loop()
{
for (uint8_t row = 0; row < 4; row++)
{
for (uint8_t col = 0; col < 4; col++)
{
bool pressed = grid.readPad(row, col);

if (pressed && !prevState[row][col])
{
ledOn[row][col] = !ledOn[row][col];

if (ledOn[row][col])
grid.setLED(row, col, rowColor[row][0], rowColor[row][1], rowColor[row][2], 255);
else
grid.setLED(row, col, 0, 0, 0, 255);

Serial.print("Button (row ");
Serial.print(row);
Serial.print(", col ");
Serial.print(col);
Serial.print(") → LED ");
Serial.println(ledOn[row][col] ? "ON" : "OFF");
}

prevState[row][col] = pressed;
}
}

delay(20);
}

4. Check the result​

Open the Serial Monitor at 115200 baud. All LEDs start off. Press the pad at row 0, column 0 twice: its LED lights red, then turns off, and the Serial Monitor shows:

Serial MonitorAutoscrollShow timestampNewline115200 baud
Message (Enter to send message to the board)
Press any button to toggle its LED.
Button (row 0, col 0) → LED ON
Button (row 0, col 0) → LED OFF

If the board does not answer on I2C, the sketch prints Inputronic GRID not found. Check wiring. and stops.

Light a pad when you press it explains every function the sketch uses.

5. If it does not work​

Continue with Troubleshooting and retry this smallest example after each change.