
Receiver
geoffgun15/openmice
Custom PAW3395 wireless mouse and receiver PCBs, firmware, and web configurator.

Custom PAW3395 wireless mouse and receiver PCBs, firmware, and web configurator.
Mouse is an open-source printed circuit board by geoffgun15, from the geoffgun15/openmice repository on GitHub, published under the MIT licence. It is a 4-layer board of 64 × 94 mm with 51 parts on 79 nets, routed with 720 tracks and 80 vias.
It is built around the MDBT50Q-1MV2, PAW3395DM-T6QU and BQ24072RGTR, with the TLV70019DDCR and USBLC6-2SC6 among its other parts. Its parts include 19 capacitors, 12 resistors, 10 connectors, 6 ICs and 3 switches. It belongs with the nRF52 and nRF5x boards of this library.
Custom PAW3395 rechargeable mouse, USB wireless receiver, and browser configurator.
Standalone repository: https://github.com/geoffgun15/openmice. Migrated from the original fork with all eight commits retained and the confidential PixArt PDF removed from every commit. Historical commit IDs changed.
A1 is a routed prototype package. Both boards pass KiCad electrical, clearance, connectivity and schematic parity checks. Custom runtime and bootloader builds, factory HEX, runtime UF2 and fabrication exports are included. Physical tests are NOT RUN: there is no assembled board. Review the first-article procedure and fabrication requirements before a prototype order.
| Component | Included |
|---|---|
| Mouse | Bare PAW3395, nRF52840 module, 1S LiPo charger/power path, five buttons + scroll |
| Receiver | Custom nRF52840 board, USB-C, BLE-to-USB HID and configuration bridge |
| Firmware | Corrected sensor startup/ID/timing, 16-bit motion, DPI, bindings, persistence |
| Editor | Web Serial, DPI, mouse/keyboard bindings, Apply/Save, import/export and demo |
The radio modules are soldered components on custom PCBs; nice!nano is no longer used. BLE is the prototype radio; proprietary 1000 Hz wireless is not implemented.
KiCad assembly renders with all 51 mouse and 18 receiver components fitted. The sensor, radio module, USB-C, charger and crystal use simplified visual models; these images do not validate mechanical fit. The battery, main click switches and scroll encoder connect externally. See model details.
| Mouse PCB · 64 × 94 mm | Wireless receiver PCB · 28 × 54 mm |
|---|---|
![]() | ![]() |
Bare PCB views: mouse · receiver.
python -m http.server 8765 --bind 127.0.0.1 --directory webOpen http://127.0.0.1:8765/ in desktop Chrome/Edge. Demo mode works without hardware. A real connection requires the supplied runtime and mouse/receiver.
Native build details, hashes and CAD export workflow: BUILD.md.
python -m unittest discover -s tests -v
node --test web/test.mjs
python tools/package_firmware.pytools/build_hardware.py regenerates starting placements and overwrites manual edits.
The confidential sensor PDF is excluded from this public repository and its Git history.
Prototype assumptions: LM19-LSI optics,
64 x 94 mm mouse outline, external switch/encoder contacts, and a protected
300 mAh cell with compatible NTC temperature sensing.
Project code: MIT. Vendored KiCad libraries retain their upstream licenses; see hardware/README.md. Obtain sensor documentation through an authorized source.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 4 | 100nF X7R | OpenMice:C_0603_1608Metric | C10, C12, C14, C19 |
| 3 | 10uF 6.3V X5R | OpenMice:C_0805_2012Metric | C9, C17, C18 |
| 3 | 1uF 10V X7R | OpenMice:C_0603_1608Metric | C1, C5, C8 |
| 2 | 100k | OpenMice:R_0603_1608Metric | R11, R12 |
| 2 | 100k 1% | OpenMice:R_0603_1608Metric | R9, R10 |
| 2 | 100nF 10V X7R | OpenMice:C_0603_1608Metric | C3, C4 |
| 2 | 10k | OpenMice:R_0603_1608Metric | R3, R5 |
| 2 | 18pF C0G (tune) | OpenMice:C_0603_1608Metric | C6, C7 |
| 2 | 5.1k 1% | OpenMice:R_0603_1608Metric | R1, R2 |
| 1 | 10uF X5R | OpenMice:C_0805_2012Metric | C13 |
| 1 | 1uF 10V X7R | OpenMice:C_0805_2012Metric | C16 |
| 1 | 3.09k 1% | OpenMice:R_0603_1608Metric | R7 |
| 1 | 32.768kHz 12.5pF ABS07 | OpenMice:Crystal_SMD_3215-2Pin_3.2x1.5mm | Y1 |
| 1 | 33uF 6.3V X5R | OpenMice:C_0805_2012Metric | C15 |
| 1 | 4.7uF 6.3V X5R | OpenMice:C_0603_1608Metric | C2 |
| 1 | 4.7uF X5R | OpenMice:C_0603_1608Metric | C11 |
| 1 | 5.6R 1% | OpenMice:R_0603_1608Metric | R4 |
| 1 | 5.90k 1% | OpenMice:R_0603_1608Metric | R6 |
| 1 | 68k 1% | OpenMice:R_0603_1608Metric | R8 |
| 1 | BQ24072RGTR | OpenMice:BQ24072_RGT0016C | U6 |
| 1 | BUTTON_BACK contact | OpenMice:PinHeader_1x02_P2.54mm_Vertical | J8 |
| 1 | BUTTON_FORWARD contact | OpenMice:PinHeader_1x02_P2.54mm_Vertical | J9 |
| 1 | BUTTON_LEFT contact | OpenMice:PinHeader_1x02_P2.54mm_Vertical | J5 |
| 1 | BUTTON_MIDDLE contact | OpenMice:PinHeader_1x02_P2.54mm_Vertical | J7 |
| 1 | BUTTON_RIGHT contact | OpenMice:PinHeader_1x02_P2.54mm_Vertical | J6 |
| 1 | Charger status: GND / PGOOD / CHG | OpenMice:PinHeader_1x03_P2.54mm_Vertical | J4 |
| 1 | Encoder: A / GND / B | OpenMice:PinHeader_1x03_P2.54mm_Vertical | J10 |
| 1 | MDBT50Q-1MV2 | OpenMice:Raytac_MDBT50Q | U1 |
| 1 | PAIR TL3342 | OpenMice:SW_SPST_TL3342 | SW1 |
| 1 | PAW3395DM-T6QU | OpenMice:PAW3395DM_T6QU | U4 |
| 1 | Power PCM12 | OpenMice:SW_SPDT_PCM12 | SW3 |
| 1 | Protected 1S 300mAh + 10k NTC (BAT/GND/NTC) | OpenMice:JST_PH_B3B-PH-K_1x03_P2.00mm_Vertical | J3 |
| 1 | RESET TL3342 | OpenMice:SW_SPST_TL3342 | SW2 |
| 1 | SWD: VDD / SWDIO / SWDCLK / GND / RESET | OpenMice:PinHeader_1x05_P2.54mm_Vertical | J2 |
| 1 | TLV70019DDCR | OpenMice:SOT-23-5 | U5 |
| 1 | TLV70030DDCR | OpenMice:SOT-23-5 | U3 |
| 1 | USB-C HRO TYPE-C-31-M-12 | OpenMice:USB_C | J1 |
| 1 | USBLC6-2SC6 | OpenMice:SOT-23-6 | U2 |

geoffgun15/openmice
Custom PAW3395 wireless mouse and receiver PCBs, firmware, and web configurator.

lordor5/Mouse
A custom, high-performance wireless mouse project featuring custom PCB design, high-end optical sensors, and Hall effect switches.




snize/BOB-PMW3610-SEIBOKU
This project is licensed under the CERN OHL-P v2. You may use, distribute, and modify this design under the terms of the CERN OHL-P v2. Original design by snize.


rikkodo/Rikkodo_PCB
This project is licensed under the CERN OHL-P v2. You may use, distribute, and modify this design under the terms of the CERN OHL-P v2. Original design by snize.

Gupatron/Gupsfirstpcb
This is the first pcb that I will manufacture and intend to use for teleop usecases in my personal projects.
It measures 64 × 94 mm and has 4 copper layers, 1.6 mm thick.
51 parts, built around the MDBT50Q-1MV2, PAW3395DM-T6QU, BQ24072RGTR and TLV70019DDCR. 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.
From the geoffgun15/openmice repository on GitHub, at the commit this page was made from: the board is hardware/mouse/mouse.kicad_pcb and its schematic hardware/mouse/mouse.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).