RoPlug Configurable Scroll Wheel
The RoPlug is a community-designed expansion card that adds a configurable rotary encoder (scroll wheel) to Framework laptops. Created by community member mrwm in October 2021, it was one of the earliest functional community-built expansion cards. The card is powered by an ATmega32U4 microcontroller running the QMK firmware, allowing users to remap the scroll wheel to any keyboard function — volume control, mouse scrolling, cursor movement, copy/paste, undo/redo, and more12.
The project was inspired by a forum suggestion by user gs1 in a "what expansion cards do you want to see" thread, and a follow-up comment by user vaioware noting that "a side-mounted scroll wheel card is a cool idea"3. The RoPlug is referenced on Wikipedia's Framework Computer article as an example of a community-developed expansion card4.
Design
The RoPlug is based on the SparkFun Pro Micro design, modified with a male USB-C plug instead of a micro USB receptacle and adapted to fit (approximately) the Framework expansion card form factor2.
Hardware
| Component | Details |
|---|---|
| Microcontroller | ATmega32U4 |
| Rotary encoder | EC12E1220301 (12 pulses/revolution, mechanical keyboard footprint) |
| PCB dimensions | 26 × 25 mm, 2-layer, 0.8 mm thickness |
| Surface finish | Immersion gold |
| Design tool | KiCad |
| License | CC BY-SA 4.0 |
| USB connector | Male USB-C plug |
The card has only four exposed pins: three GPIO pins and a reset pin. mrwm noted in retrospect that more pins should have been broken out for future-proofing2. The encoder footprint is the standard mechanical keyboard community footprint, enabling users to swap in alternative encoders, including clicky encoder variants that provide a push-button function (the pin is routed but not enabled in the default firmware)5.
Firmware
The card runs QMK firmware, which presents the rotary encoder as a standard USB HID device — making it OS-independent once configured1. Users can compile custom keymaps with the QMK toolkit:
- Default configuration: volume up / volume down
- Other options include: mouse cursor movement, scroll up/down, copy/paste, undo/redo, and any other QMK keycode1
The QMK configuration is published in a dedicated repository6. Flashing requires entering bootloader mode by bridging the reset and ground pads on the PCB with a wire or paperclip1.
Form Factor
The RoPlug uses a double-height form factor — taller than a standard Framework expansion card — because the rotary encoder could not physically fit within the ~1.5 mm clearance between a standard PCB and the card's top cap3. The 3D-printed chassis was the same height as the "TALL SNACK" drawer card by XenoCow1. mrwm noted that the lack of a community standard for double-height cards was a concern, as using only one double-height card could make the laptop lopsided3.
Development History
Interest Check (October 2021)
mrwm posted an interest check on October 23, 2021 with a mockup image of a scroll wheel protruding from the side of an expansion card. The poll received majority "Yes, I'm interested!" votes, providing confidence to proceed with manufacturing3.
Community members suggested alternatives during the interest check, including3:
- Capacitive touch strip (Martin_Bogomolni) — using a flex PCB multi-segment touch slider, which would fit in the standard form factor
- Hall effect encoder (Michael_Price) — using magnets embedded in the dial paired with a hall effect sensor, avoiding the Z-axis height issue
- Optical encoder (suggested later by MJ1) — using an optical sensor with a 3D-printed encoder disk, inspired by the open-source Ploopy mouse5
Prototype and Sales (November 2021)
The first prototype (V0.0.1a) was posted on November 1, 2021. The initial build had a USB-C circuitry error — mrwm had used 22Ω resistors on the CC and VCONN lines instead of a single 5.1kΩ pull-down resistor on CC. Community member ExplodingWaffle identified the issue and provided the correct USB-C sink wiring diagram. After the fix, the card worked without the USB-C to USB-A adapter that the initial prototype required1.
Costs
Manufactured during the COVID-19 chip shortage, the ATmega32U4 was quoted at $17.85 per chip (normally ~$5). Total project costs for 10 units2:
| Item | Cost |
|---|---|
| PCB (10 pcs) | $110.00 |
| Assembly + parts (10 pcs) | $318.00 |
| Rotary encoders (10 pcs, self-sourced) | $27.90 |
| Bank/PayPal fees | $20.00 |
| Total | $470.90 |
Sales
mrwm sold the cards at a loss, pricing assembled PCBs at $25 each1:
- 2021: 4 boards sold
- 2022: 2 boards sold
- 2023: 1 board sold
- Total: 7 assembled PCBs, 8 rotary encoders, and accessories for $234 (shipping: $26.89)
- Net loss: $236.902
The last board was sold in early 2024. mrwm closed the order form and stated no further runs were planned until more interest emerged or funding was available1.
Lessons Learned
In a March 2024 retrospective write-up, mrwm reflected on the project2:
- USB-C design knowledge was lacking at the start — the incorrect resistor values could have been avoided with better USB-C specification study
- Chip shortage timing inflated costs by over $200 compared to post-shortage prices
- Pin exposure — only routing 4 of the ATmega32U4's available GPIO pins limited future expansion
- Framework reference template was not used from the start, which would have simplified case design
- Low-profile encoders remain a limiting factor — the EC12E1220301 encoder is too tall for the standard expansion card form factor, and alternatives with sufficient pulse resolution (≥6 per revolution) are scarce
Related Projects
- Interest Check: Scroll wheel expansion card — The original interest check thread that preceded the RoPlug (October 2021)3
- Programmable Buttons Expansion Card concept — A concept for programmable buttons on an expansion card (17 replies)
- RP2350 based GPIO expansion card — An RP2350-based microcontroller expansion card providing GPIO capabilities
- mrwm/roPlug — Hardware design files (KiCad) on GitHub7
- mrwm/mrwm_mk — QMK firmware repository for the RoPlug6
- FrameworkComputer/ExpansionCards — Official Framework reference designs and CAD8
- Ploopy Mouse — Open-source mouse using optical encoder for scroll wheel, suggested as alternative encoder approach5