Skip to the content
PCBKitNew board
2 layers25 × 22.6 mmUSlime, the printed circuit board in 3D

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

7

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:

Parts

48
QtyValueFootprintReferences
510kResistor_SMD:R_0402_1005MetricR5, R7, R13, R14, R15
41kResistor_SMD:R_0402_1005MetricR9, R12, R16, R17
30.1uFCapacitor_SMD:C_0402_1005MetricC1, C2, C7
32.2kResistor_SMD:R_0402_1005MetricR2, R10, R11
2100kResistor_SMD:R_0402_1005MetricR1, R6
210uFCapacitor_SMD:C_0402_1005MetricC3, C4
210μFCapacitor_SMD:C_0402_1005MetricC5, C6
25.1kResistor_SMD:R_0402_1005MetricR4, R8
2DuSlime-libs:D_0402_1005MetricD1, D2
2IO14TestPoint:TestPoint_Pad_2.0x2.0mmTP3, TP5
11.25T-2AWuSlime-libs:CONN-TH_2P-P1.25_1.25T-2AWCN1
1180kResistor_SMD:R_0402_1005MetricR3
13.3VTestPoint:TestPoint_Pad_2.0x2.0mmTP2
13mm_THT_HoleuSlime-libs:3mm_THT_Hole
1AP2112K-3.3TRG1uSlime-libs:SOT95P285X140-5NU3
1BNO085uSlime-libs:BNO080U5
1BOOTTestPoint:TestPoint_Pad_D1.0mmTP1
1DDiode_SMD:D_0603_1608MetricD3
1ESP32-C6-MINI-1PCM_Espressif:ESP32-C6-MINI-1U4
1GNDTestPoint:TestPoint_Pad_2.0x2.0mmTP7
1Jumper_3_OpenJumper:SolderJumper-3_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1LOGOuSlime-libs:uSlime_logoG***
1MCP73831T-2ACI/OTuSlime-libs:SOT-23-5_MC_MCHU1
1MHT150RGBCTuSlime-libs:LED-ARRAY-SMD_1206-4P-L3.2-W1.3-BR-EHLED1
1MSK-12C02_SMD_SPDT_SWITCHuSlime-libs:SW_PCM12SMTRU2
1SCLTestPoint:TestPoint_Pad_2.0x2.0mmTP4
1SDATestPoint:TestPoint_Pad_2.0x2.0mmTP6
1SW_PushButton_Switch_SMD:SW_SPST_B3U-1000P-BRESET1
1USB_C_Receptacle_USB2.0_14PConnector_USB:USB_C_Receptacle_GCT_USB4105-xx-A_16P_TopMnt_HorizontalJ1
1VBUSTestPoint:TestPoint_Pad_2.0x2.0mmTP8
1X1502WR-05K-N0SNuSlime-libs:CONN-TH_5P-P1.50_X1502WR-05K-N0SNCN2

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 mmUSlime PCB Pack, the printed circuit board in 3D

    USlime PCB Pack

    ReSummit/uSlime

    Micro form of SlimeVR trackers using BNO085

    40 parts4GPL-3.0
  • 2 layers25 × 22.6 mmUSlime PCB Module, the printed circuit board in 3D

    USlime PCB Module

    ReSummit/uSlime

    Micro form of SlimeVR trackers using BNO085

    36 parts4GPL-3.0
  • 2 layers16.7 × 12.8 mmUSlime BNO085 Module, the printed circuit board in 3D

    USlime BNO085 Module

    ReSummit/uSlime

    Micro form of SlimeVR trackers using BNO085

    19 parts4GPL-3.0
  • 2 layers16.7 × 12.8 mmUSlime BNO085, the printed circuit board in 3D

    USlime BNO085

    ReSummit/uSlime

    Micro form of SlimeVR trackers using BNO085

    14 parts4GPL-3.0

Similar boards

  • 2 layers30 × 30 mmMicro drone(esp32 s3 xiao), the printed circuit board in 3D

    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 mmCarbon, the printed circuit board in 3D

    Carbon

    Enderman8843/Carbon

    Carbon is an open-source indoor air quality sensing board designed for accurate VOC, temperature, and humidity monitoring.

    38 parts1
  • 4 layers100 × 100 mmV25Panel, the printed circuit board in 3D

    V25Panel

    maholli/SAM32

    Feather-sized SAMD51 with M4 core serving as UART bridge to WROOM ESP32

    211 parts43
  • 2 layers63.5 × 99.1 mmBlugasm, the printed circuit board in 3D

    Blugasm

    saawsm/Blugasm

    A battery powered nogasm with support for bluetooth toys.

    74 parts19GPL-3.0
  • 2 layers142.7 × 72 mmBlinky bowtie, the printed circuit board in 3D

    Blinky bowtie

    joshajohnson/bsidescbr2021

    Slides and Design Files for BSides Canberra 2021

    101 parts5GPL-3.0
  • 2 layers47.9 × 28.5 mmPosture tracker v2, the printed circuit board in 3D

    Posture tracker v2

    kiranj26/Posture-Tracker-Using-ESP32

    Posture Correction using ESP32-MINI-1 and MU sensor (GY-521 / MPU-6050)

    52 parts3MIT