Skip to the content
PCBKitNew board
2 layers40.2 × 59.8 mmScroll Wheel, the printed circuit board in 3D

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

3

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

PartQuantity
Main PCB (pre-soldered)1
Bearing (65×85×10 mm)1
JST GH Cable Kit1 set
Cylinder Magnets (3×12 mm)7
3D-Printed Parts3
S3P2 NiMH Battery Pack1
M2×5 Screws5

🛠️ Build Guide

🔄 Bearing Preparation

Factory bearings may feel stiff due to thick grease. Here's how to optimize smoothness:

  1. Remove both sealing rings.
  2. Soak the bearing in isopropyl alcohol (or another grease remover).
  3. Scrub out all remaining grease.
  4. Let it dry for ~3 hours.
  5. Reinstall one sealing ring.
  6. Add light machine oil generously into the bearing.
  7. Reinstall the second sealing ring.
  8. Spin the bearing multiple times to distribute the oil.
  9. (Optional) Remove the seals again for an even smoother feel (at the cost of dust protection).

🚧 Development Gallery

🔌 First PCB Prototype (with known bugs)

First PCB prototype

🧱 PCB Inside the Case

PCB Prototype in case

🧪 First Firmware Test (External ESP32)

Firmware test

🧰 Fully Assembled PCB

PCB Assembled

🆕 PCB V2 – Improved & Debugged

PCB V2

🤝 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:

PayPal Donation   Ko-fi Support

Every bit helps keep the ideas (and soldering irons) running!

Credits

Credits to T-vk for creating the ESP32 BLE Mouse Library

Parts

47
QtyValueFootprintReferences
115.1kResistor_SMD:R_0402_1005MetricR3, R12, R13, R14, R15, R16, R21, R22, R24, R26, R28
522uFCapacitor_SMD:C_0402_1005MetricC1, C3, C9, C10, C11
2100uFCapacitor_SMD:CP_Elec_6.3x5.4C5, C7
2150Resistor_SMD:R_0402_1005MetricR1, R2
22.7kResistor_SMD:R_0402_1005MetricR8, R9
2DPCM_Diode_SMD_AKL:D_0402_1005MetricD3, D5
2LEDPCM_Diode_SMD_AKL:D_0402_1005MetricD2, D6
11MResistor_SMD:R_0402_1005MetricR31
124kResistor_SMD:R_0402_1005MetricR18
127kResistor_SMD:R_0402_1005MetricR20
13.3VTestPoint:TestPoint_Pad_D1.0mmTP3
1680Resistor_SMD:R_0402_1005MetricR17
1AS5600AS5600:AS5600U7
1BC847PCM_Package_TO_SOT_SMD_AKL:SOT-23Q2
1BQ25172DSGRBQ25172:DSG0008A-IPC_AU2
1Conn_01x02_PinConnector_JST:JST_GH_SM02B-GHS-TB_1x02-1MP_P1.25mm_HorizontalJ3
1Connector EncoderConnector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_HorizontalJ4
1Connector controllerConnector_JST:JST_GH_SM04B-GHS-TB_1x04-1MP_P1.25mm_HorizontalJ5
1ESP32-WROOM-EPCM_Espressif:ESP32-WROOM-32EU1
1FDC6318PPackage_TO_SOT_SMD:SOT-23-6Q3
1GNDTestPoint:TestPoint_Pad_D1.0mmTP2
1MIC5504-3.3YM5Package_TO_SOT_SMD:SOT-23-5U6
1SW_PushButton_Switch_SMD:SW_Push_SPST_NO_Alps_SKRKSW1
1StateTestPoint:TestPoint_Pad_D1.0mmTP5
1TC2030Connector:Tag-Connect_TC2030-IDC-NL_2x03_P1.27mm_VerticalJ1
1USB_C_Receptacle_USB3.1_16PConnector_USB:USB_C_Receptacle_GCT_USB4110J2
1VDCTestPoint:TestPoint_Pad_D1.0mmTP1

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 mmTrackpad, the printed circuit board in 3D

    Trackpad

    george-norton/peacock

    A big QMK powered trackpad

    102 parts309CERN-OHL-S-2.0
  • 2 layers22.9 × 36.7 mmUsb2usb, the printed circuit board in 3D

    Usb2usb

    tmk/USB2USB_Converter

    USB to USB keyboard protocol converter supported by TMK keyboard firmware

    26 parts152
  • 2 layers78 × 130 mmLofence, the printed circuit board in 3D

    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 mmVera module rev2, the printed circuit board in 3D

    Vera module rev2

    fvdhoef/vera-module

    Versatile Embedded Retro Adapter

    120 parts138MIT
  • 2 layers120 × 130 mmSingularitySurfer V1, the printed circuit board in 3D

    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 mmPhaseLatchMini, the printed circuit board in 3D

    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 mmThermal pcb, the printed circuit board in 3D

    Thermal pcb

    Badbird5907/thermal-camera

    My design of a cheap and affordable thermal camera

    68 parts59MIT
  • 4 layers58 × 38 mmQspimux2-prog, the printed circuit board in 3D

    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