GeekIMU/1.Hardware/GeekIMU-Wireless/README.md

133 lines
5.9 KiB
Markdown
Raw Normal View History

# Marzipan
![sample](./assets/sample.jpg)
<p align="center">
<img src="https://licensebuttons.net/l/by-nc/4.0/88x31.png"></img>
</p>
<p align="center">
English | <a href="./README_CN.md">简体中文</a>
</p>
A compact and easy soldering modular Smol Slimes / nRFSlime solution with dimensions of 40x28x17mm!
If you'd like to learn more about Smol Slimes / nRFSlime, feel free to read the [Smol Slime - SlimeVR Docs](https://docs.slimevr.dev/diy/smol-slime.html).
>[!CAUTION]
>The current version (1.1) has the following issues:
>
>- When using the ICM-45686 module from LWKJ, the sensor cannot be detected upon powering up the switch; youll need to press the button again to start it properly.
>- The button's functionality does not behave as expected.
>
>Pull Requests are welcome to help fix these issues!
## Description
### PCB
The PCB is designed using the **EasyEDA** Pro version, and the repository provides the source files for further modification.
For different pre-made sensor modules, Ive created the following PCBs for different types. However, due to time constraints, only the `VGGALXI` version has been verified. The others should theoretically work.
- **`VGGALXI`**: Pin order from bottom to top is `VCC GND GND SDA SCL X INT` (**verified**)
- **`VGLAXXI`**: Pin order from bottom to top is `VCC GND SCL SDA X X INT` (**not verified**)
- **`KOUNO'S_ICM45`**: Designed for KOUNO's module (**not verified**)
### Case
For the case, two versions are provided:
- **`Case_v5.stl`**, which requires M2 heat insert nuts.
- **`Case_v5_No_Heat_Insert_Nut.stl`**, where screws can be directly fastened into the case.
The version with heat insert nuts is more durable.
For Bambu Lab printers, pre-configured printing settings are provided here.
**https://makerworld.com/zh/models/966982**
The case files in the repository are designed to fit **25mm-wide straps** and are also compatible with ReboCaps quick-release system.
If you prefer wider straps, feel free to modify the `.step` source files.
### Firmware
The pin positions of this PCB match the default layout in the original project (`SDA-006`, `SCL-008`, `INT-017`), so you can directly flash the firmware provided on the [Smol Slime Docs](https://docs.slimevr.dev/diy/smol-slime.html) without additional changes.
## BOM
### PCB and Assembly
The table below shows the components needed for **one tracker**. Note that youll also need to purchase one **nRF52840 SuperMini/Dongle** as a receiver. For more details, refer to the Smol Slime page.
According to the Discord community, one receiver can pair with approximately **20 trackers** (this hasnt been fully tested, but it should work for at least 6).
| Component | Qty | Notes |
| :-----------------------: | :--: | :--------------------------------: |
| nRF52840 SuperMini Board | 1 | |
| MSK-12D19 Slide Switch | 1 | A legacy switch; other switches may also work |
| 3*6*4.3 Tactile Switch (Side) | 1 | Other side tactile switches can also be used |
| 401230 / 501230 Battery | 1 | 501230 is recommended; smaller batteries are also fine |
| Double-sided tape for battery | 1 | |
| Sensor Module | 1 | |
| M2*14 Screws | 2 | Used to secure the case |
| M2*4.5*3 Heat Insert Nut | 2 | Not needed for the screw-only case version |
| 25mm-wide strap | 1 | You can modify the case files for other straps |
### 3D Printing
For 3D printing, PETG is recommended, but PLA is also fine.
| Component | Qty | Notes |
| :-------------: | :--: | :----------------------------------------------------------: |
| Lid_v5 | 1 | The lid |
| Case_v5 | 1 | Case body that requires heat insert nuts; use `Case_v5_No_Heat_Insert_Nut` if not needed |
| Button_Cap_v5 | 1 | Button cap for extending buttons |
| Switch_Cap_v5 | 1 | Switch cap for extending switches |
| Screw_Holder_v5 | 2 | Screw support pillars; optional but increases durability |
## Assembly Instructions
### Soldering and Assembly
- (Optional) Use a probe or other tools to check if the SuperMini, sensor module, etc., are functioning properly.
- **Solder the sensor module first**:
- Make sure the sensors pin order matches the PCB.
- Align the pins and secure them by melting solder from the back of the PCB. After soldering, use a multimeter to ensure the circuit is properly connected.
- Solder the switch and button.
- Make sure the switch is in the OFF position, then solder the battery.
- Finally, solder the SuperMini module.
- After confirming normal functionality, stick the battery to the back of the PCB using double-sided tape in the designated rectangular area.
- Embed the heat insert nut into the Case.
- Install the button and switch caps into the case, align the holes, and insert the main body into the case.
- Insert the screw support pillars, attach the lid, and fasten the screws.
### Flashing Firmware
- Refer to the [Smol Slime Docs](https://docs.slimevr.dev/diy/smol-slime.html) for instructions on flashing firmware.
- When using **LWKJ's ICM-45686 module + `VGGALXI` layout**, the firmware configuration `Tracker SuperMini Disabled Disabled` works properly.
## Links
- **SlimeVR nRF Receiver Firmware:** https://github.com/SlimeVR/SlimeVR-Tracker-nRF-Receiver
- **SlimeVR nRF Tracker Firmware:** https://github.com/SlimeVR/SlimeVR-Tracker-nRF
- **Scawanf's PCB R3 on Github:** https://github.com/SlimeVR/SlimeVR-Tracker-nRF-PCB
- **Scawanf's PCB R3 on OSHWLab:** https://oshwlab.com/sctanf/slimenrf3
- **SlimeVR Discord:** https://discord.gg/SlimeVR
- **Smol Slime Docs:** https://docs.slimevr.dev/diy/smol-slime.html