Based off the SlimeVR Official Component Guide.
@Nadeshiko's Slimes run on a Wemos D1 Mini with an IMU IC of your choice that has the same module profile as the SlimeVR BNO085's, the BMI160 or Meia's BMI-270's. They use the TP4056 lithium charger module for 3.7V LiPo batteries.
- Easy and cheap to build.
- No wires needed to be soldered.
- Lightweight and smooth, clean looks.
- 40mm or 50mm strap width is supported.
- Detailed component purchase list.
- Photographed assembly instructions.
Important
For the smaller, ESP32-C3 Supermini variant please view this branch: ESP32-C3-Supermini
- PCB
- Case
- Components
- Basic Assembly Guide
- Resources
- Detailed Assembly Guide
- How to order PCB/3DPrints
- Support
The main PCB lets every component be soldered on without any wire connections between the modules. This includes the diodes and resistors for battery sense and charge protection. The TP4056 charger is on the back side to save on size and cost; a JST 2mm 2-pin connector can be added to make battery connections easier; an SK12D07VG 3-pin switch will be used to turn the tracker on or off; and a ZH 1.5mm 5-pin connector is used for extension tracker communication with SCL and SDA in the same cable layout as the official tracker extension method to avoid crosstalk on long extension cables.
The PCB's can also be used without a case, as there are built-in cutouts for straps to pass through.
PCBs can be ordered from JLCPCB, Elecrow, PCBGOGO, NextPCB or your preferred low cost PCB manufacturer.
PCB Front/Back - Extension Tracker
The tracker case, can house a 3.7V LiPo in 103450 size or any up to 10mm thick. Cell dimensions advised are 10x34x50mm or less. These cells have a similar runtime to 18650 Li-ion cells but are cheaper.
The case has been designed according to JLCPCB/JLC3DP resin 3D printing guideline. The case can be ordered from JLC3DP or Elecrow, and the resin to select on your order is up to you. I prefer the 8111X, CBY, Black Resin, or equivalent.
The case and the tracker extension case are two part with snap-fitting closures, with added extra security once a strap is used.
It prints as two parts: a snap-fit main body with strap holes on the side, ports for the D1 Mini, an extension tracker connector, and the power switch. The other is the base plate with strap holes on the bottom, and PCB stand/aligners, and a port for the TP4056 charger.
Up to a 50mm strap can be fitted to the main case; the best one to use is the non-slip elastic kind with plastic buckles in the same size to make it easier to remove, as listed in the Google Sheet BOM. The strap has a few bends through the case to stop any unnecessary slop and keep it locked against the skin.
A gentle curve has been added on the underside of the case, matching that of arms, legs, or hip; this is to reduce any edges digging into the skin and also increase the contact area of the non-slip strap.
The files for the case are:
Tracker Extension: It also has three parts: the main case, an endcap, and the PCB to mount the BMI/BNO module and ZH 1.5mm 5-Pin connector. 25mm hook and loop straps can be used with the extension case. The PCB is based on the SlimeVR OSHWLab DIY Extension changes to make it easier for hand soldering and case fitment.
The files for the extension are:
The components needed have all been added to a Google sheet here with links to each item's store page and total estimated cost.
BNO-085 modules can be purchased directly from SlimeVR. If you would like to use the BMI-270, they can be purchased from KOUNO.
While soldering, use flux to make things easier, keep your solder iron's tip tinned with solder when not in use to protect from oxidation. Make sure to clean the PCBs after soldering. You can use PCB cleaner or isopropyl alcohol. This is to remove the flux, which some are acidic and will attack the solder joint over time.
The basic steps of assembly for the main trackers are:
- 1x 180K resistor and 2x 1N5817 diodes soldered in the correct orientation on the PCB.
- Clip off the excess pins of the diodes and resistor and keep it aside for soldering the TP4056.
- Solder a TP4056 flush to the backside of the breakout PCB, using the clipped excess pins from previous step to make this step easier.
- Solder on a JST PH 2mm 2-Pin header for the battery.
- Solder on a SK12D07VG slide switch.
- (Optional/Ankle trackers for foot extensions) Solder on a ZH 1.5mm 5-Pin header for communication with an extension tracker.
- Solder the BMI/BNO08X module to the PCB with header pins or flush.
- Solder on a D1 Mini with included header pins, adjust them if needed.
- Use polyimide tape or equivalent on header pins and the LiPo battery to protect it from puncture, and shorts.
- Check LiPo's battery JST plug matches the +/- polarity as on the PCB's header (Fix the battery plug if not).
- Connect the LiPo battery with the power switch in the OFF position.
- Power switch still in the OFF position: flash firmware using the online firmware flasher or by following the SlimeVR firmware documentation.
The basic steps of assembly for the extension trackers:
- Solder on a 100nf capacitor to the extension PCB.
- Then the ZH 1.5mm 5-pin header for communication with the main tracker.
- Solder a BMI/BNO08X module flush to the extension PCB.
Useful Links:
- Online Firmware Flasher
- SlimeVR Documentation
- IMU Rotation
- CH340 Driver
- BMI160 Calibration
- SlimeVR Github
- SlimeVR Discord
First bend the resistor and diodes like this to make it fit the breakout PCB:
If they do not stay in place, secure them down with some polyimide tape:
While they are level with the PCB, solder them down:
You can use these excess to make flush mounting the TP4056 easier if unexperienced with flush mount soldering.
If experienced with soldering, you can skip using the excess from the previous step and flush solder; If not, then bend the excess through the TP4056 and the PCB holes so it stays in place and solder, this helps solder flow into the hole, good if you are unsure flush soldering is making good connections:
Here's how the topside of the breakout PCB should look when using the excess for help:
Then do the same thing on all the other pads of the TP4056, 6 in total:
Clip off the excess from all 6 points so it's nice and neat:
Again, if you know how to flush solder and get good connection, then you can skip on using the excess pins.
First, place it in the correct position and orientation as shown on the PCB:
Then keep it in place with a helper:
And solder both of the pins on the backside of the PCB quickly, to not overheat the housing:
Step 6 - We now do the power switch and optionally a ZH 1.5mm 5-pin header for communication with an extension tracker.
OPTIONAL: If a 5-pin is needed on the tracker for extension communication, then clamp it down like this so its flush with the PCB:
OPTIONAL: Solder the pins on the backside of the PCB similar to the JST 2-pin, stop soldering after the pin is wetted enough to not melt the plastic housing:
Next we will do the power switch, clamp it secure for soldering by the edge case grounding pin:
Solder it in place just like the previous step:
Begin by snapping the correct length of the header pins for the side with the holes on the PCB.
The repositioning of the plastic spacer can be easily done by hand on a flat surface, best to have them even like this for good battery clearance in the cases:
Place it on the PCB with the excess next to it, as we will use this temporarily to keep the IMU level:
Next we place the IMU on top to have a surface to clamp the header pin down on:
Flip everything over to the backside and solder all the header pins to the breakout PCB:
Next we will solder the IMU module itself to the header pins. For the module to be level, you can continue using the excess header pins as a guide to level the module with the PCB:
Solder the IMU module to the header pins and remove the temporary excess header pins:
Again repositioning of the plastic spacer can be easily done by hand on a flat surface, have them even both sides like this to help battery clearance:
Place the header pins on the PCB and then the D1 Mini. Clamp down the D1 securing the header pins:
Flip to the backside as this will be soldered first:
Solder the D1 Mini header pins on the backside of the PCB:
Finish step by soldering the D1 Mini to the header pins, making sure not to overheat the header pin's black plastic:
Tip
It may be best to add a sheet of plastic below the battery to protect it further. Such as plastic cut from a bottle.
Step 11 - Flash the firmware, the light will turn from blinking to solid for a moment when complete.
For more accurate SlimeVR dashboard battery percentage/voltage readout for @Nadeshiko Slimes, set BATTERY_SHIELD_RESISTANCE
to 168
K.
After firmware flashing is complete, you can tape the battery to the PCB and/or place into the 3D printed cases.
Ordering the PCB and 3D Prints is easy. Head to the releases section and download the 3D print .stl files, and the PCB Gerber .zip files.
For PCB ordering, head over to JLCPCB and upload the gerber .zip files. Use the settings below on the order page:
They can also be ordered from Elecrow, PCBGOGO, NextPCB or your preferred PCB manufacturer.
For 3D Print case ordering, head over to JLC3DP and upload the .stl files for each model, including the top/body and base/end cap etc. One case comes in two parts, so make sure you upload both halves. Then use the settings below on the order page and set the quantity of each part to the number of trackers you are building. The available SLA material and prices will vary, as the model has been designed to be used with any of the SLA resins, any of the cheapest option will be good enough for the trackers,
Cases can also be ordered from Elecrow or your preferred 3D print services.
Feel free to open an issue if you have any questions or to share some pictures! :3
You may also DM me on Discord: @aeurias, or add on VRChat: Nadeshiko ~.