# ButtonHub: I2C Rotary Encoder & Input Module

Stop wasting GPIO pins. ButtonHub handles a rotary encoder and two tactile buttons over a simple I2C connection. Smart, debounced, and easy 

- **Seller:** [Carpathian Boards](https://lectronz.com/stores/carpathian-boards), Brasov, Romania
- **Price:** €12.90 (EUR, before shipping and taxes)
- **Availability:** In stock
- **Categories:** Robotics, Keyboards, Home automation
- **HS code:** 853710
- **Product page:** https://lectronz.com/products/buttonhub-i2c-rotary-encoder-input-module

## Options

**Pin Headers**

- None
- Included (Unsoldered) [Add €0.15]
- Soldered (Pre-assembled) [Add €1.00]

## Links

- [Documentation](https://github.com/carpathianboards-ro/ButtonHub)
- [Code](https://github.com/carpathianboards-ro/ButtonHub)

## Images

![ButtonHub: I2C Rotary Encoder & Input Module](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDI0NDcsInB1ciI6ImJsb2JfaWQifX0=--5fcf7f0c76675758d2e1ed99979d874a877f42f7/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--970c165836a83091725a1a0fd4f37ce9408da1bf/ButtonHub.jpg)
![ButtonHub: I2C Rotary Encoder & Input Module](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDI0NTEsInB1ciI6ImJsb2JfaWQifX0=--534669dc73a123846062746ca595c52d21ac5d00/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--970c165836a83091725a1a0fd4f37ce9408da1bf/20260111_120731.jpg)
![ButtonHub: I2C Rotary Encoder & Input Module](https://lectronz-images.b-cdn.net/lectronz/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDI0NTksInB1ciI6ImJsb2JfaWQifX0=--c58d1447c8d0e0646fbee3f151dbd9d0f740ded4/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJqcGciLCJyZXNpemVfdG9fbGltaXQiOls5NjAsNjQwXSwic2F2ZXIiOnsic3RyaXAiOnRydWV9fSwicHVyIjoidmFyaWF0aW9uIn19--970c165836a83091725a1a0fd4f37ce9408da1bf/20260111_120517.jpg)

## Description

### The Problem: Spaghetti Wiring
We all love rotary encoders for menus and volume control. But connecting one requires 3 GPIO pins. Add two navigation buttons, and you've used up **5 pins** and created a mess of wires on your breadboard. On pin-constrained boards like ESP8266 or ATtiny, this is a dealbreaker.

### The Solution: ButtonHub
**ButtonHub** solves this by offloading the input processing to a dedicated onboard brain (ATtiny404). It reads the encoder, detects the button presses, handles the debouncing hardware-side, and serves clean data to your main microcontroller over just **2 wires (I2C)**.

It is designed with the **Carpathian engineering spirit**: clean, efficient, and built to last.

### Key Features
* **Minimal Wiring:** Connect everything using just VCC, GND, SDA, and SCL.
* **Smart Offloading:** The onboard ATtiny404 (running at 20MHz) handles all the high-speed polling and debouncing. Your main loop stays clean.
* **Versatile Inputs:**
    * 1x Rotary Encoder (with push button)
    * 2x Tactile Buttons (for Menu/Back/Select)
* **Configurable:** Change the I2C address or set a custom limit for the encoder (e.g., 0-100 for percentage, 0-255 for PWM) via software.
* **Ready to Use:** Comes with a comprehensive Arduino Library and documentation.

### Why use it?
* **Save GPIOs:** Perfect for ESP32, ESP8266, or Arduino projects where pins are precious.
* **Clean UI:** Ideal for building menus, parameter adjustment interfaces, or media controllers.
* **Reliable:** No more "bouncy" inputs or missed encoder steps.

### What's in the box?
* 1x Assembled ButtonHub Module
* (Optional: Pin headers if you include them)

### Technical Specs

| Parameter | Value |
| :--- | :--- |
| **Interface** | I2C (Default Address: `0x10`) |
| **Operating Voltage** | 3.3V - 5.5V |
| **Processor** | ATtiny404 @ 20MHz |
| **Dimensions** | 40mmx25mm |

### What makes it special? 

Unlike simple breakout boards, ButtonHub is a "smart" device. It doesn't just pass signals; it processes them. The dedicated MCU ensures that you never miss a tick on the encoder, even if your main microcontroller is busy with Wi-Fi or heavy calculations. Plus, the custom library makes integration seamless—you get clean "pressed" or "value" states, not raw noisy signals.

## Shipping policy

Shipping from Brașov, Romania. 🇷🇴

Processing Time: All orders are packed and dispatched within 1-2 business days.

Destinations: We currently ship to Romania and European Union (EU) countries. Note: We do not ship to USA or Worldwide at this moment.

Methods & Delivery Times:

    Romania: Courier (24-48h) or Post (2-4 days).

    European Union: Romanian Post Priority Airmail (Tracked). Estimated delivery: 5 - 10 business days.
