Note: This repo has submodules, so if cloning, it's best to use the recursive option.
The ZC95 is a DIY four channel EStim box with similar form factor & output design to the MK312-BT (which in turn is a clone of the ET-312B). Unlike the 312B, it uses 2x Raspberry Pico microcontrollers instead of an ATMEGA16, and the firmware is open source and mostly written in C++.
The box can be controlled remotely via a Python GUI, and run Lua scripts uploaded to it, either using RS232 serial or WiFi if a Pico-W is used for the main MCU.
Compared to an MK312-BT, it has 2 extra channels, two trigger inputs (think predicament bondage), and an accessory port. It has bluetooth support and, so far, is missing most of the patterns of the 312. Audio input is possible with an extra/optional board.
Additionally, if a 433MHz transmitter is fitted it can be used to control certain types of shock collars from some patterns.
The main board is built using through hole parts, with the output and front panel PCBs being mostly SMD (requiring hand-soldering of a few through hole parts) - but using parts available through the JLCPCB SMT assembly service.
The ZC95 now has a channel on Joanne's E-Stim Community discord, see Estim control boxes -> zc95. Please drop by and say hello 🙂
The ZC95 consists of 4-5 PCBs:
The primary reason for having separate PCBs for the main and output board is for future flexibility - most of the time & expense is the firmware, case, display, controls, etc., so being able to test new output designs whilst being able to keep all of that should be an advantage. I'm well aware the output design currently used is known to have flaws, mostly stemming from its lack of feedback (which applies equally to the 312b it was taken from). A challenge for another day.
The zc624 output module can also be used standalone and controlled from an Arduino (tested with an ESP32), but this is not ideal for a few reasons, and not the focus of this project.
May do some of this, all of this, or none of this!
Can hang on entering WiFi setup (AP) mode due to bad choice of MOSFET Q1 (see #25 & #46).
Fix:
Fit a Schottky diode (e.g. 1N5819) in place of Q1 - see build notes
Workarounds:
Battery gauge is pretty hopeless
Depending on the pattern, the LEDs aren't very useful - either Red or Green, with no dimming depending on power