

USlime
Micro form of SlimeVR trackers using BNO085
- Size
- 25 × 22.6 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 48
- Nets
- 54
- Pads
- 210
- Tracks, vias
- 418, 51
- Pours
- 47
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 10 May 2024
- Updated
- 6 Jan 2025
Overview
USlime is an open-source printed circuit board by ReSummit, from the ReSummit/uSlime repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 25 × 22.6 mm with 48 parts on 54 nets, routed with 418 tracks and 51 vias.
It is built around the AP2112K-3.3TRG1, BNO085 and ESP32-C6-MINI-1, with the MCP73831T-2ACI/OT-HXY, 1.25T-2AW and MHT150RGBCT among its other parts. Its parts include 17 resistors, 7 capacitors, 5 ICs, 4 diodes and 3 connectors. It belongs with the ESP32 and RISC-V boards of this library.
Main components
7AP2112K-3.3TRG1
SOT-25-5-40℃~+85℃@(Ta) 1 250mV@(600mA) 3.3V 50uVrms 55uA 600mA 65dB@(1kHz) 6V Fixed Over Current Protection、Thermal Shutdown、Enable control Positive SOT-25-5 Voltage Regulators - Linear, Low Drop Out (LDO) Regulators ROHSDiodes IncorporatedVoltage Regulators - Linear, Low Drop Out (LDO) RegulatorsBNO085
LGA-28(3.8x5.2)1.65V~3.6V 12bit、16bit IMU (accelerometer + gyroscope) SPI、I2C、UART X,Y,Z X,Y,Z ±2000dps ±8g LGA-28(3.8x5.2) Accelerometers ROHSCEVAAccelerometersESP32-C6-MINI-1
SMD,13.2x16.6mmSMD,13.2x16.6mm New Arrivals ROHSEspressif SystemsUncategorisedMCP73831T-2ACI/OT-HXY
SOT-23-5LBattery ManagementHXY MOSFET1.25T-2AW
弯插,P=1.25mm-25℃~+85℃ 1 1.25mm 125V 1A 1x2P 2 2P 3.2mm 4.35mm 4.8mm Beige Brass Right Angle 弯插,P=1.25mm Wire To Board Connector ROHSCAXWire To Board ConnectorMHT150RGBCT
SMD-4P,3.2x1.3mm-40℃~+85℃ 1.7V~2.4V、2.5V~3.6V、2.5V~3.6V 112mcd~285mcd、112mcd~285mcd、450mcd~900mcd 130° 25mA 460nm~470nm、515nm~530nm、616nm~630nm 468nm、518nm、632nm Red, Green, Blue Reverse Mount Water Clear SMD-4P,3.2x1.3mm LED Indication - Discrete ROHSMEIHUALight Emitting Diodes (LED)X1502WR-05K-N0SN
弯插,P=1.5mm-25℃~+85℃ 1 1.5mm 1A 1x5P 5 50V 5P Brass PA66 Right Angle Tin UL94V-0 ZH 弯插,P=1.5mm Wire To Board Connector ROHSXKB ConnectionWire To Board Connector
README
README.md
Micro form of SlimeVR trackers using BNO085 and ESP32-C6-MINI module, as small as possible
Limited to 1 sided PCB but utilizes two layer to achieve a maximal dimension of 25mm x 28mm (including the ESP32-C6-MINI module)
Also includes some test points if you wanna add idk RGB lights to it or something like that lol
PCB Variants and Versions
Currently, v1.0.0 is the preferred PCB version and is listed in the releases. As a note, your red charge LED will always be on while the device is on. While this makes for a good indicator that your tracker is on, some may not like that the LED is always on. v1.1.0 fixes this but results in a long trace, change in pinout, and additional components needed.
If you do not mind the always on LED, use v1.0.0 as it is less likely to result in RF issues. If you are bothered by the LED, use a 2k or higher SMD resistor value or use v1.1.0.
On variants, there are currently three different types of main board PCBs and 2 types of supplementary modules. The first kind are listed as follows:
- uSlime_PCB: The default PCB with the BNO085 circuit on board. Contains the working BNO085 utilizing the internal crystal (of which there is little room for an external crystal)
- uSlime_PCB_Module: Similar to the default PCB; however, the BNO085 is replaced with a 5 pin I2C pin for attaching a uSlime_BNO085_Module on the back or front side of the PCB (in case you want to replace the IMU with a better one).
- uSlime_PCB_Pack: The default PCB but using pack resistors to attempt the reduction of part placements by quantity. This has not been updated to v1.0.0 yet, DO NOT USE.
For supplementary modules, the variants are as follows:
- uSlime_BNO085_Module: The default PCB for supplementary modules. In addition to the connectors that are compatible with the original SlimeVR trackers, they also have headers that you can use to connect it to something else instead if you decide not to use it for SlimeVR. This increases the versatility of the IMU for other projects. Due to the small size, a crystal could not be placed; however, one could be placed with a slightly larger PCB size.
- uSlime_BNO085: The other PCB for supplementary modules without the header pins. This is if you are sure that you are only using this for SlimeVR. You can technically still use this for other projects like with headers, but you will likely solder on wires.
BOM and Pre-requisites
Bill of materials (BOMs) can be found in the bom folder within the respective PCB folder. These are generated on a by release basis, so they may not be up to date. It is highly recommended to generate the BOM using the "Interactive Html Bom" plugin found in typical KiCAD repository plugins.
Following the BOM placements using a BOM plugin to show where components are placed is mandatory, as there is no space for reference designators on the PCB.
In addition to this, a hot plate, solder paste, and some needle tipped tweezers are also required. Flux may also be needed to fix any bridges that pop up on the board. Obviously, the components on the BOM are also required.
Building the PCB
When ordering the PCB, choose to place the JLC PCB indicator as a preferred spot is placed on the PCB itself (if using JLCPCB for PCB production). You should also get a stencil to put solder paste on the PCB.
Again, following the BOM placements using a BOM plugin to show where components are placed is mandatory, as there is no space for reference designators on the PCB. Place solder paste on the PCB. Afterwards, follow the Interactive HTML BOM to place all the capacitors, resistors, IMU, and MCU on the PCB. When ready, you can then place this on a hot plate. Please make sure that there are no bridges on the BNO085 or the USB C connector, as these can cause issues with functionality.
Verification (MUST READ)
Before testing and using, make sure to bridge the address bridge pads on the back of the PCB. Verify that the board and the IMU functions by flashing the ESP32-C6 firmware first. If there is no address response, something may be wrong with the IMU (more likely to fail). Once you have verified that the IMU and MCU works, you can then solder the rest of the THT components such as the external IMU connector and battery connector.
Firmware
The PCB currently uses a ESP32-C6 or equivalent MCU. Right now, there is a pull request to introduce this MCU into the SlimeVR ESP32 firmware located here:
SlimeVR ESP32-C6 Pull Request
The Arduino core is technically updated but is still pending its full support to the ESP32-C6 line. Therefore, treat this as a beta firmware and subject to broken features or bugs.
PCB Limitations
Due to the inherent nature of this PCB, there is a chance that this PCB may produce RF. We have not tested for RF emission but regardless, be careful if using this in RF restricted environments.
Also, the main PCB does not have USB voltage protection circuits! Unfortunately, we ran out of time for the release but it is plausible to add it...
In addition, due to the single-sided PCB layout, this is not technically as small as it could be. There have been countless videos that showcase the design possibly being smaller. Some resistor and SMD components can also be moved to the back due to the ease in soldering those components. However, those are slated for a v2.0.0 PCB and is not expected to be released within anytime this year.
Lastly, it is known that the charger SMD compoenent tends to heat up rather quickly while charging the battery. This shouldn't reach the melting point of solder but it is worth mentioning; perhaps a more efficient IC would be better here.
Images:
Footprints Used
Some footprints and symbols were used from other sources:
- ESP32-C6 Symbol: https://github.com/sparkfun/SparkFun_Thing_Plus_ESP32_C6
- ESP32-C6 Footprint: https://github.com/espressif/kicad-libraries
- BNO085 Footprint: Provided by Colin
- AP2112K-3.3TRG1 and MCP73831T-2ACI/OT Symbol / Footprint: From a class project :)
- MHT150RGBCT Footprint: Converted from EasyEDA
- JST ZH Pinout: Same as SlimeVR PCB :D
Parts
48| Qty | Value | Footprint | References |
|---|---|---|---|
| 5 | 10k | Resistor_SMD:R_0402_1005Metric | R5, R7, R13, R14, R15 |
| 4 | 1k | Resistor_SMD:R_0402_1005Metric | R9, R12, R16, R17 |
| 3 | 0.1uF | Capacitor_SMD:C_0402_1005Metric | C1, C2, C7 |
| 3 | 2.2k | Resistor_SMD:R_0402_1005Metric | R2, R10, R11 |
| 2 | 100k | Resistor_SMD:R_0402_1005Metric | R1, R6 |
| 2 | 10uF | Capacitor_SMD:C_0402_1005Metric | C3, C4 |
| 2 | 10μF | Capacitor_SMD:C_0402_1005Metric | C5, C6 |
| 2 | 5.1k | Resistor_SMD:R_0402_1005Metric | R4, R8 |
| 2 | D | uSlime-libs:D_0402_1005Metric | D1, D2 |
| 2 | IO14 | TestPoint:TestPoint_Pad_2.0x2.0mm | TP3, TP5 |
| 1 | 1.25T-2AW | uSlime-libs:CONN-TH_2P-P1.25_1.25T-2AW | CN1 |
| 1 | 180k | Resistor_SMD:R_0402_1005Metric | R3 |
| 1 | 3.3V | TestPoint:TestPoint_Pad_2.0x2.0mm | TP2 |
| 1 | 3mm_THT_Hole | uSlime-libs:3mm_THT_Hole | |
| 1 | AP2112K-3.3TRG1 | uSlime-libs:SOT95P285X140-5N | U3 |
| 1 | BNO085 | uSlime-libs:BNO080 | U5 |
| 1 | BOOT | TestPoint:TestPoint_Pad_D1.0mm | TP1 |
| 1 | D | Diode_SMD:D_0603_1608Metric | D3 |
| 1 | ESP32-C6-MINI-1 | PCM_Espressif:ESP32-C6-MINI-1 | U4 |
| 1 | GND | TestPoint:TestPoint_Pad_2.0x2.0mm | TP7 |
| 1 | Jumper_3_Open | Jumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mm | JP1 |
| 1 | LOGO | uSlime-libs:uSlime_logo | G*** |
| 1 | MCP73831T-2ACI/OT | uSlime-libs:SOT-23-5_MC_MCH | U1 |
| 1 | MHT150RGBCT | uSlime-libs:LED-ARRAY-SMD_1206-4P-L3.2-W1.3-BR-EH | LED1 |
| 1 | MSK-12C02_SMD_SPDT_SWITCH | uSlime-libs:SW_PCM12SMTR | U2 |
| 1 | SCL | TestPoint:TestPoint_Pad_2.0x2.0mm | TP4 |
| 1 | SDA | TestPoint:TestPoint_Pad_2.0x2.0mm | TP6 |
| 1 | SW_Push | Button_Switch_SMD:SW_SPST_B3U-1000P-B | RESET1 |
| 1 | USB_C_Receptacle_USB2.0_14P | Connector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_Horizontal | J1 |
| 1 | VBUS | TestPoint:TestPoint_Pad_2.0x2.0mm | TP8 |
| 1 | X1502WR-05K-N0SN | uSlime-libs:CONN-TH_5P-P1.50_X1502WR-05K-N0SN | CN2 |
Questions
How big is the USlime PCB?
It measures 25 × 22.6 mm and has 2 copper layers, 1.6 mm thick.
What parts does the USlime use?
48 parts, built around the AP2112K-3.3TRG1, BNO085, ESP32-C6-MINI-1 and MCP73831T-2ACI/OT-HXY. 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 USlime KiCad files?
From the ReSummit/uSlime repository on GitHub, at the commit this page was made from: the board is uSlime_PCB/uSlime.kicad_pcb and its schematic uSlime_BNO085/BNO085.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the USlime design in my own project?
Its repository publishes it under the GPL-3.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).
More from ReSummit/uSlime
4- 2 layers25 × 22.6 mm

- 2 layers25 × 22.6 mm

- 2 layers16.7 × 12.8 mm

- 2 layers16.7 × 12.8 mm

Similar boards
- 4 layers40 × 40 mm

- 2 layers30 × 30 mm

Micro drone(esp32 s3 xiao)
aryaman2050/Micro_ESP_Drone
A compact micro brushed drone featuring an ESP32-based flight controller, a custom-designed 2-layer PCB, and Wi-Fi-based control.
67 parts - 2 layers46.3 × 43.4 mm

Carbon
Enderman8843/Carbon
Carbon is an open-source indoor air quality sensing board designed for accurate VOC, temperature, and humidity monitoring.
38 parts1 - 4 layers130 × 75 mm

- 4 layers100 × 100 mm

V25Panel
maholli/SAM32
Feather-sized SAMD51 with M4 core serving as UART bridge to WROOM ESP32
211 parts43 - 2 layers63.5 × 99.1 mm

- 2 layers142.7 × 72 mm

Blinky bowtie
joshajohnson/bsidescbr2021
Slides and Design Files for BSides Canberra 2021
101 parts5GPL-3.0 - 2 layers47.9 × 28.5 mm

Posture tracker v2
kiranj26/Posture-Tracker-Using-ESP32
Posture Correction using ESP32-MINI-1 and MU sensor (GY-521 / MPU-6050)
52 parts3MIT