

Scroll Wheel
A big high resolution Scroll wheel
- Size
- 40.2 × 59.8 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 47
- Nets
- 55
- Pads
- 203
- Tracks, vias
- 399, 112
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 9.0 (file 20241229)
- Created
- 29 Apr 2025
- Updated
- 7 Feb 2026
Overview
Scroll Wheel is an open-source printed circuit board by Mallo321123, from the Mallo321123/Scroll-Wheel repository on GitHub, published under the Apache-2.0 licence. It is a 2-layer board of 40.2 × 59.8 mm with 47 parts on 55 nets, routed with 399 tracks and 112 vias.
It is built around the MIC5504-3.3YM5, BC847 and FDC6318P. Its parts include 19 resistors, 7 capacitors, 5 connectors, 4 ICs and 4 diodes. It belongs with the ESP32 boards of this library.
Main components
3MIC5504-3.3YM5
SOT-23-5-40℃~+125℃@(Tj) 1 120uVrms 15uA 180mV@(300mA) 3.3V 300mA 5.5V 75dB@(1kHz) Fixed Over Temperature Protection、Enable Positive SOT-23-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSTECH PUBLICVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsBC847
SOT-231 NPN 100MHz 100mA 100nA 110 200mW 45V 500mV 6V NPN SOT-23 Bipolar (BJT) ROHSShikuesBipolar (BJT)FDC6318P
SOT-23-6MOSFETsTECH PUBLIC
README
README.md🖱️ High-Resolution Scroll Wheel
A large, high-resolution scroll wheel inspired by Engineer Bo's YouTube video.
Documentation
⚠️ Early Development Phase
This project is still under development. Use at your own risk.
📅 Roadmap
- BLE HID Support
- Mouse Wheel Click Functionality
- Automatic power off
- Battery Level tuning
- Enclosure refinements
- Scroll acceleration modes
🔧 Hardware Overview
- Main Controller: ESP32 (subject to maybe change later)
- Magnetic Encoder: AS5600
- Battery Pack: S3P2 NiMH Eneloop cells
💻 Software Architecture
The entire functionality is now handled by a single ESP32 microcontroller using BLE HID (Human Interface Device) mode.
- The scroll wheel inputs are directly interpreted by the ESP32.
- Input data (e.g. rotation) is sent over Bluetooth Low Energy as HID events, emulating a native scroll device.
- No additional driver or software is needed on the PC — it works like a standard Bluetooth mouse/scroll input.
✅ This simplifies the setup significantly and increases compatibility across Linux, Windows, and macOS.
🧩 Required Components
| Part | Quantity |
|---|---|
| Main PCB (pre-soldered) | 1 |
| Bearing (65×85×10 mm) | 1 |
| JST GH Cable Kit | 1 set |
| Cylinder Magnets (3×12 mm) | 7 |
| 3D-Printed Parts | 3 |
| S3P2 NiMH Battery Pack | 1 |
| M2×5 Screws | 5 |
🛠️ Build Guide
🔄 Bearing Preparation
Factory bearings may feel stiff due to thick grease. Here's how to optimize smoothness:
- Remove both sealing rings.
- Soak the bearing in isopropyl alcohol (or another grease remover).
- Scrub out all remaining grease.
- Let it dry for ~3 hours.
- Reinstall one sealing ring.
- Add light machine oil generously into the bearing.
- Reinstall the second sealing ring.
- Spin the bearing multiple times to distribute the oil.
- (Optional) Remove the seals again for an even smoother feel (at the cost of dust protection).
🚧 Development Gallery
🔌 First PCB Prototype (with known bugs)
🧱 PCB Inside the Case
🧪 First Firmware Test (External ESP32)
🧰 Fully Assembled PCB
🆕 PCB V2 – Improved & Debugged
🤝 Contributing
Pull requests, suggestions, and feedback are always welcome — feel free to get involved and help improve the project!
Prototyping and hardware development can get expensive quickly, so if you’d like to support the project financially:
Every bit helps keep the ideas (and soldering irons) running!
Credits
Credits to T-vk for creating the ESP32 BLE Mouse Library
Parts
47| Qty | Value | Footprint | References |
|---|---|---|---|
| 11 | 5.1k | Resistor_SMD:R_0402_1005Metric | R3, R12, R13, R14, R15, R16, R21, R22, R24, R26, R28 |
| 5 | 22uF | Capacitor_SMD:C_0402_1005Metric | C1, C3, C9, C10, C11 |
| 2 | 100uF | Capacitor_SMD:CP_Elec_6.3x5.4 | C5, C7 |
| 2 | 150 | Resistor_SMD:R_0402_1005Metric | R1, R2 |
| 2 | 2.7k | Resistor_SMD:R_0402_1005Metric | R8, R9 |
| 2 | D | PCM_Diode_SMD_AKL:D_0402_1005Metric | D3, D5 |
| 2 | LED | PCM_Diode_SMD_AKL:D_0402_1005Metric | D2, D6 |
| 1 | 1M | Resistor_SMD:R_0402_1005Metric | R31 |
| 1 | 24k | Resistor_SMD:R_0402_1005Metric | R18 |
| 1 | 27k | Resistor_SMD:R_0402_1005Metric | R20 |
| 1 | 3.3V | TestPoint:TestPoint_Pad_D1.0mm | TP3 |
| 1 | 680 | Resistor_SMD:R_0402_1005Metric | R17 |
| 1 | AS5600 | AS5600:AS5600 | U7 |
| 1 | BC847 | PCM_Package_TO_SOT_SMD_AKL:SOT-23 | Q2 |
| 1 | BQ25172DSGR | BQ25172:DSG0008A-IPC_A | U2 |
| 1 | Conn_01x02_Pin | Connector_JST:JST_GH_SM02B-GHS-TB_1x02-1MP_P1.25mm_Horizontal | J3 |
| 1 | Connector Encoder | Connector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_Horizontal | J4 |
| 1 | Connector controller | Connector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_Horizontal | J5 |
| 1 | ESP32-WROOM-E | PCM_Espressif:ESP32-WROOM-32E | U1 |
| 1 | FDC6318P | Package_TO_SOT_SMD:SOT-23-6 | Q3 |
| 1 | GND | TestPoint:TestPoint_Pad_D1.0mm | TP2 |
| 1 | MIC5504-3.3YM5 | Package_TO_SOT_SMD:SOT-23-5 | U6 |
| 1 | SW_Push | Button_Switch_SMD:SW_Push_SPST_NO_Alps_SKRK | SW1 |
| 1 | State | TestPoint:TestPoint_Pad_D1.0mm | TP5 |
| 1 | TC2030 | Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_Vertical | J1 |
| 1 | USB_C_Receptacle_USB3.1_16P | Connector_USB:USB_C_Receptacle_GCT_USB4110 | J2 |
| 1 | VDC | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
The 46 most common of 47 parts.
Questions
How big is the Scroll Wheel PCB?
It measures 40.2 × 59.8 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Scroll Wheel use?
47 parts, built around the MIC5504-3.3YM5, BC847 and FDC6318P. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Scroll Wheel KiCad files?
From the Mallo321123/Scroll-Wheel repository on GitHub, at the commit this page was made from: the board is PCB/Scroll Wheel.kicad_pcb and its schematic PCB/Scroll Wheel.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Scroll Wheel design in my own project?
Its repository publishes it under the Apache-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers172 × 152.9 mm

- 2 layers22.9 × 36.7 mm

Usb2usb
tmk/USB2USB_Converter
USB to USB keyboard protocol converter supported by TMK keyboard firmware
26 parts152 - 2 layers78 × 130 mm

Lofence
kiu/lofence
LoFence is a LoRaWAN capable IoT electric fence monitoring system running on the The Things Network.
65 parts142MIT - 2 layers96.5 × 55 mm

- 2 layers120 × 130 mm

SingularitySurfer V1
nkrackow/SingularitySurfer-FPGA-Lock-In-Amplifier
Repository for the development of an FPGA based DSP Lock-In Amplifier
174 parts80MIT - 4 layers60.2 × 20.8 mm

PhaseLatchMini
AndersBNielsen/PhaseLatchMini
High-rate continuous streaming of interleaved dual ADC (I/Q) samples over USB Full‑Speed (FS) using only the built‑in CDC class on an STM32F103C8 ("Blue Pill" style) board.
63 parts72 - 2 layers98 × 56 mm

Thermal pcb
Badbird5907/thermal-camera
My design of a cheap and affordable thermal camera
68 parts59MIT - 4 layers58 × 38 mm

Qspimux2-prog
felixheld/qspimux
QSPI flash multiplexer - connect a SPI NOR flash to either an embedded system or a programmer for remote firmware tests
99 parts57CC-BY-SA-4.0