- C 96.8%
- CMake 1.7%
- Dockerfile 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .devcontainer | ||
| main | ||
| models | ||
| schematics | ||
| .clangd | ||
| .gitignore | ||
| CMakeLists.txt | ||
| MCU.jpg | ||
| README.md | ||
| Session 10.sal | ||
OpenCaixianlin
A custom shocker compatible with OpenShock based on a Caixianlin shocker.
What is this
OpenCaixianlin is a small custom esp32 based shocker which can be build yourself. Required parts are an Caixianlin shocker (from which we salvage the transformer, vibration motor, beeper and battery), some transistors and an SeedStudio XIAO ESP32C3.
This repo contains a basic testing firmware, 3d printing files and schematics (soon). The actual firmware lives at this repo
Comparison with Caixianlin + OpenShock Hub
Plus
- Bluetooth Low Energy support for controling shocker without internet
- Smaller footprint of
47.4mm x 24.1mm x ~20/30mmcompared to59.5mm x 36.1mm x 39.8mm(l x w x h; measured on 02.07.2026, subject to change) - Hub software runs directly on the shocker hardware, therefore no extra hub is needed
- Insecure 433MHz Protocol is skipped, providing security against replay attacks or id enumeration
- More precise control of shocker: Duration has an accuracy of ~20ms, different battery levels provide the same shock
- Easy switching between e. g. FlatShocker operation and tense unit operation via magnetically removable bottom covers
- More comfort during wear with FlatShocker bottom
Minus
- Less battery life due to esp getting drived by the same battery
- More expensive shocker (Adds around ~10€ in parts to a 6€ shocker instead of once 10€ for a hub which you could use for multiple shockers)
- No support for default remote (however I'm planning to make a hardware remote based on BLE)
- No more water resistance
Build guide
We have yet to build a first functional prototype. Therefore a build guide cannot be provided. However we do have a hijacked Caixianlin which runs our firmware and are currently working on putting the required hardware in the case
Pinout
- GPIO2/D0: Power button (used for ble pairing and possible more in future)
- GPIO3/D1: Transformer (Shocking part)
- GPIO4/D2: Beeper (Annoying part, may be able to play songs in future)
- GPIO5/D3: White LED (optional)
- GPIO6/D4: Green LED (optional)
- GPIO7/D5: Vibration motor (Brrrrrr)
Usage guide
ToDo. Controlled via ShockAlarm
Measured from of Caixianlin
Vibrate
PWM at 85Hz from 14% to 100%
Shock
PWM at 666hz from 4% to 30%
Dev cable
Orange - Power button Black - GND Red - VCC (3.7V; or 3.3, whatever you want lol) Grey - Green LED Yellow - White LEDs Purple - Beep Green - Shocker White - Vib