Skip to the content
PCBKitNew board
2 layers50 × 73 mmMouse Project, the printed circuit board in 3D

Mouse Project

cotty52/Mouse1

Custom mouse using PMW3389 sensor and nRF52840 microcontroller

Size
50 × 73 mm
Copper layers
2
Thickness
1.6 mm
Parts
28
Nets
43
Pads
111
Tracks, vias
136, 4
Pours
2
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
2 Dec 2024
Updated
30 Apr 2026

Overview

Mouse Project is an open-source printed circuit board by cotty52, from the cotty52/Mouse repository on GitHub. It is a 2-layer board of 50 × 73 mm with 28 parts on 43 nets, routed with 136 tracks and 4 vias.

It is built around the TPS62821DLCR and B2B-PH-K-S. Its parts include 11 capacitors, 4 switches, 3 resistors, 2 ICs and 1 connector. It belongs with the nRF52 and nRF5x boards of this library.

Main components

2

README

README.md

Custom Wireless Mouse

This project contains software and hardware designs for a custom wireless mouse. This is an initial prototype intended for me to learn about hardware design and embedded software development. I combined hardware and software files into one repository for easier management. As of 2026-04-21, the design supports basic mouse functionality, including movement, button presses, and scrolling, and is powered by a 3.7V Li-ion battery, rechargeable via USB-C.

File Structure

text
Mouse/
├── Documents/        # Datasheets, bootloader UF2, 3D models
├── Guide/
│   └── README.md     # New machine setup guide
├── KiCad/            # PCB schematics and layout
└── Software/
    ├── PROJECT_GUIDE.md  # Architecture, task tracking, module reference
    └── ...
  • Documents contains datasheets, reference layouts, and documentation for the nRF Connect SDK and Zephyr project.
  • Guide contains the new machine setup guide (Guide/README.md) and dated snapshots of known-good board/config files.
  • KiCad contains the KiCad project files for the PCB design (schematics, PCB layout, Gerber files).
  • Software contains firmware source, board definitions, and configuration files. See Software/PROJECT_GUIDE.md for details.

Hardware Design

The hardware design is based on the nRF52840 because of its popularity/availability, built in Bluetooth, low power consumption, and integration with the nRF SDK for software development. The PCB was designed using KiCad and currently relies on a nRF52840 nice!nano microcontroller for higher level development in the early stages. The microcontroller includes a USB-C port for charging and firmware flashing, a charging protection circuit, and enough GPIO for this project. The design also includes a PMW3389 optical sensor for mouse movement, which is supported by the nRF SDK and Zephyr.

PCB Images

FullFrontBack

Software Design

The software is developed using the nRF Connect SDK, which is based on the Zephyr RTOS. The nRF Connect VS Code extension is used for development, which provides a convenient interface for firmware development. The base structure is copied directly from the nRF Desktop sample project, which provides a good starting point for developing a Bluetooth mouse. The sample provides support for Bluetooth connectivity, mouse movement, button presses, and scrolling out of the box, with additional features available to be toggled on/off using the Kconfig GUI. The sample also provides sample mouse configurations as well as a PMW3360 driver, which is similar to the PMW3389. These files serve as a reference for the development of custom hardware and application files for the custom mouse.

Current Problems

As of 2026-04-27 there are a couple major issues. The primary issue is the nice!nano board itself. While it was a good microcontroller to get started with this project and to learn about the basics, it was sometimes difficult to work with. Even though there are SWD pads on the back of the board, I could not get it to work with my nRF52840-DK. I also could not get bluetooth to work on the nice!nano, which is why I switched to the nRF52840-dongle for the most recent development. The dongle is meant to be a receiver, but it has enough gpio to connect everything; and since it is a nordic product, development was much easier.

The second problem was with the pmw3389 sensor. I have not figured out why it was not working with my PCB, but I was able to get it working with a breakout board. A multimeter showed that the voltage at the VDD pin was not stable and would start below 1.9V, then rise to above 1.9V. This leads me to believe my step-down circuit is wrong; either I got the calculations for the resistors and capacitors wrong, or the buck converter was not soldered properly. I used a microscope and the connections looked good, but it is very small so it's possible there is a cold solder joint or something else I missed.

Future Improvements

The next step is to design the PCB without the nice!nano which will require using the nRF52840 SoC directly. This will involve further researching the nRF52840 for proper implementation as well as designing power management and charging circuits. I will also need to decide on whether to use an SoC with an included antenna or design one myself.

Becasue of the problems with the pmw3389, I will not use the TPS62821DLCR buck converter. I will probably use a linear step-down regulator instead, which will be less efficient but much simpler to implement.

On the software side, the next step is to develop custom application code for the mouse which will allow users to customize the behavior of the mouse, such as button mapping and sensitivity settings.

Parts

28
QtyValueFootprintReferences
40.1uFC1206C104K5RACTU:C1206C104K5RACTUC3, C4, C5, C8
410uFCL31A106KBHNNNE:CL31A106KBHNNNEC1, C6, C9, C11
24.7uFCL31B475KBHNNNE:CL31B475KBHNNNEC2, C7
110kRC1206FR_0710KL:RC1206FR-0710KLR1
1120pFC0805C121J5GACTU:C0805C121J5GACTUC10
113RC0805FR_0713RL:RC0805N_YAGR2
1330kCRGCQ1206F330K:RES_CRGCQ1206F330K_TECR5
1470nHDFE252012P-R47M=P2:DFE252012P-1R0M=P2L1
1B2B-PH-K-SB2B-PH-K-S:CONN2_B2B-PH-K-S_JSTJ1
1DPI_Button1825910-6:SW4_1825910-B_TECSW4
1LeftKailh_Switch:Kailh_SwitchKailh_Switch1
1PowerEG1218:SW_1218_EWISW1
1RightKailh_Switch:Kailh_SwitchKailh_Switch2
1Scroll_Button1825910-6:SW4_1825910-B_TECSW3
1SignalEG1218:SW_1218_EWISW2
1TPS62821DLCRTPS62821DLCR:TPS62821DLCRU1
1TTC_Gold_EncoderTTC_Gold_Encoder:TTC_Gold_EncoderU2
1Thumb1Kailh_Switch:Kailh_SwitchKailh_Switch3
1Thumb2Kailh_Switch:Kailh_SwitchKailh_Switch4
1nrf52840nrf52840_promicro:nrf52840_promicroNRF52840_ProMicro1
1pmw3389pmw3389dm-t3qu:pmw3389dm-t3quPMW3389DM-T3QU1

Questions

How big is the Mouse Project PCB?

It measures 50 × 73 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Mouse Project use?

28 parts, built around the TPS62821DLCR and B2B-PH-K-S. 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 Mouse Project KiCad files?

From the cotty52/Mouse repository on GitHub, at the commit this page was made from: the board is KiCad/Mouse_Project.kicad_pcb and its schematic KiCad/Mouse_Project.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Mouse Project design in my own project?

Its repository states no licence, so its author keeps all rights: ask cotty52 before reusing the design.

More from cotty52/Mouse

2
  • 2 layers18.1 × 33.3 mmNrfmicro, the printed circuit board in 3D

    Nrfmicro

    cotty52/Mouse

    Custom mouse using PMW3389 sensor and nRF52840 microcontroller

    25 parts1
  • 2 layers16 × 13.5 mmNrf52840 qfaa, the printed circuit board in 3D

    Nrf52840 qfaa

    cotty52/Mouse

    Custom mouse using PMW3389 sensor and nRF52840 microcontroller

    23 parts1

Similar boards

  • 4 layers58.4 × 22.9 mmQuickfeather board, the printed circuit board in 3D

    Quickfeather board

    QuickLogic-Corp/quick-feather-dev-board

    100% open source dev kit for EOS S3 MCU+eFPGA SoC supported by fully open source SDK and FPGA Toolchain

    101 parts66CC-BY-SA-4.0
  • 4 layers58.4 × 22.9 mmQuickfeather board, the printed circuit board in 3D

    Quickfeather board

    antmicro/quickfeather-dev-board

    This project contains open hardware design files for the QuickFeather development board based on the QuickLogic EOS S3 Sensor Processing Platform.

    101 parts6CC-BY-SA-4.0
  • 2 layers65 × 30 mmPovbot2, the printed circuit board in 3D

    Povbot2

    wattnotions/povbot2

    Look in 3dprint folder to find a 3mf file with the chassis , camera holder and wheels ready to print.

    29 parts28
  • 2 layers29.1 × 45.1 mmUSB GC2, the printed circuit board in 3D

    USB GC2

    Xenii1642/USB-GC2

    Meet the new generation of USB-C GameCube Power Board. Now compatible with both 12V and 15V chargers. Two voltages, twice the potential.

    23 parts24CERN-OHL-S-2.0
  • 2 layers50 × 100 mmSpoke, the printed circuit board in 3D

    Spoke

    FeruzTopalov/spoke

    Standalone LoRa-based real-time off-grid relative GPS navigation for group of up to 5 people. Improved version of LRNS Eleph

    143 parts16GPL-3.0
  • 4 layers50.9 × 63.2 mmLego gameboy main, the printed circuit board in 3D

    Lego gameboy main

    greigs/OpenBrickGB

    Functional / Playable Lego Game Boy Electronics - PCB Design Files

    56 parts15
  • 4 layers140 × 140 mmPCU, the printed circuit board in 3D

    PCU

    Andresse2020/NovaDrone-Hardware

    Complete electronic system design for a high-performance quadcopter drone, developed entirely from scratch. Includes power distribution, motor control, flight stabilization, sensor integration, and communication…

    760 parts3
  • 2 layers46 × 84 mmMicromouse, the printed circuit board in 3D

    Micromouse

    johnnyou1873/Mouse-Potato

    Micromouse design for AAMC 2024

    64 parts2