https://github.com/kndndrj/mouse
https://github.com/kndndrj/mouse
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kndndrj/mouse
- Owner: kndndrj
- Created: 2021-12-29T10:44:48.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-17T06:23:04.000Z (over 1 year ago)
- Last Synced: 2025-04-25T08:43:39.027Z (5 months ago)
- Language: C
- Size: 32.7 MB
- Stars: 21
- Watchers: 5
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mouse
Computer mouse from scratch.
This repository serves as an appendix to my master thesis.
New features and bugfixes won't be added to this repository.
I plan on separating different parts of the repository into
a bigger project sometime in the future. If you come across
this repository before I do that, feel free to open an issue here.
## Overview
This repository contains blueprints for building a computer mouse.
### PCB
The pcb is made using Kicad with components from LCSC, to support assembly service from JLCPCB.
[more](pcb/)
### Housing
Housing (or case) is designed in Fusion360 and is meant to be 3D printed using SLS (also available on JLCPCB).
[more](housing/)
### Firmware
First iteration of the firmware was written in C using libopencm3 library.
Due to a lack of higher level ergonomics and support for board specific abstractions,
it was later re-written in Rust.The new version of firmware is split into 2 parts:
- **Drivers for various components** (e.g. sensor, encoder...) are exposed as a library using embedded-hal
traits as abstraction. It is intended to be portable across different hardware and possibly used in
other mouse-related projects.
- **Board specific implementation** is essentially just glue-code between hardware specifics and modules
from the forementioned library.[more - C](firmware-c/)
[more - Rust](firmware-rust/)