The Swiss Army Knife for your Motorcycle Chain.
An ESP32-based multi-tool featuring GPS-controlled chain lubrication, a Aux Power Manager for accessories, and an automated Heated Grips Controller. It combines intelligent maintenance with modern convenience and safety features like IMU-based crash detection.
Easy to Build: Designed around a widely available standard ESP32 Relay Board (LCTECH), this project requires no custom PCB and minimal soldering skills. It's the perfect entry point for DIY motorcycle electronics.
Easy to Install: No coding skills required! Use the Web Installer to flash your ESP32 directly from the browser. Future updates can be done wirelessly via OTA (Over-The-Air) using the latest firmware file.
Note: Version 2.0.0 introduces a new core architecture. For optimal stability and to prevent boot loops, please follow the Recommended Pin Layout below when building new hardware.
If you like this project, consider a tip. Your tip motivates me to continue developing useful stuff for the DIY community. Thank you very much for your support!
For the most stable operation (avoiding "Boot Loops" and conflicts with internal ESP32 Strapping Pins), use the following connection scheme for new builds.
| Component | ESP32 Pin (GPIO) | Notes |
|---|---|---|
| PUMP (MOSFET) | GPIO 26 | Safe Output |
| LED (WS2812B) | GPIO 32 | Standard |
| BUTTON | GPIO 0 | Use Boot Button or external btn to GND |
| TEMP (DS18B20) | GPIO 4 | Important: Requires 4.7kΩ Pull-Up Resistor. Do not use GPIO 2! |
| GPS RX | GPIO 16 (RX2) | Connect to GPS TX |
| GPS TX | GPIO 27 | Connect to GPS RX |
| IMU (SDA) | GPIO 21 | Standard Hardware I2C |
| IMU (SCL) | GPIO 22 | Standard Hardware I2C |
| SD Card (CS) | GPIO 5 | VSPI CS |
| SD Card (CLK) | GPIO 18 | VSPI CLK |
| SD Card (MISO) | GPIO 19 | VSPI MISO |
| SD Card (MOSI) | GPIO 23 | VSPI MOSI |
Warning: Avoid using GPIO 12, as it determines the flash voltage during boot (High = Boot Loop). Avoid GPIO 2 for sensors with pull-ups for the same reason.
- Features
- Optional IMU Features
- Optional SD Card Logging
- Hardware & Functionality Matrix
- Automatic Temperature Compensation
- Aux Port Manager
- Data Logging (SPI Flash)
- Hardware
- Operation
- Web Interface
- License
- Installation
- BOM & Costs
- Release Notes
| Feature | Description | Details |
|---|---|---|
| Speed-Dependent Oiling | 5 configurable speed ranges with individual intervals. | Intervals down to 0.1 km. Pre-configured "Swiss Alpine Profile" (Base 5km, optimized for passes & highways). Default: 2 pulses/event. |
| Smart Smoothing | Linear interpolation & low-pass filter. | Avoids harsh jumps in lubrication intervals. |
| Drift Filter | Ignores GPS multipath reflections. | Prevents "ghost mileage" indoors/tunnels (HDOP > 5.0 or < 5 Sats). |
| Safety Cutoff | Hard limit for pump runtime. | Max 30s continuous run to prevent hardware damage. |
| Start Delay | Distance driven before first oiling. | Default 250 m. Keeps garage floor clean. |
| GPS Precision | Exact distance measurement. | Uses TinyGPS++ library. |
| Rain Mode | Doubles oil amount in wet conditions. | Button: 1x Click. Auto-Off: 30 min or restart. LED: Blue Static. |
| Chain Flush Mode | Intensive oiling for cleaning/re-lubing. | Button: 4x Click. Action: Time-based (Configurable). LED: Cyan Blink (pulses while riding). |
| Offroad Mode | Time-based oiling for slow offroad riding. | Button: 3x Click. Action: Time-based (Pulses configurable). LED: Magenta Blink (pulses while riding). |
| Emergency Mode | Simulates speed if GPS fails. | Auto: After 3 min no signal (50 km/h sim). Forced: Manual activation. LED: Red Pulsing. |
| WiFi & WebUI | Configuration via Smartphone. | Activation: 5x Click. Features: OTA Update, LED config, Stats, Test functions. |
| Night Mode | Auto-dimming of LED. | Default: ON (20:00-06:00). Brightness: 5% (Dim) / 25% (Event). |
| Bleeding Mode | Continuous pumping for maintenance. | WebUI: "Start Bleeding Mode" Button. Fills oil line (25s). Additive: Trigger again to extend (max 75s). LED: Yellow Fast Blink. |
| Tank Monitor | Virtual oil level tracking. | Default: ON. Warns (Orange Fast Blink) when low (< Warning%). Red/Yellow Alt when empty. |
| Aux Port Manager | Smart control for accessories. | Aux Power: Auto-ON after boot (Delay). Heated Grips: Auto-PWM based on Speed/Temp/Rain. Toggle: Hold > 2s. |
| Web Console | Debugging without USB. | View live logs (GPS, Oiler, System) via WiFi on /console. |
| Advanced Stats | Usage analysis. | Usage % per speed range, total juice counts, odometer. |
| Auto-Save | Persistent storage. | Saves settings & odometer to NVS at standstill (< 7 km/h). |
| Factory Reset | Reset to defaults. | WebUI: Maintenance Page. |
By adding a BNO085 (or BNO080) 9-Axis IMU, the system gains "Intelligence" and advanced safety features. The system automatically detects if the sensor is connected.
| Feature | Description | Benefit |
|---|---|---|
| Garage Guard | Detects if the bike is Stationary (Stability Check). | Prevents accidental oiling in the garage, even if the motor is running or GPS drifts. (5s stability check) |
| Crash Detection | Detects tip-overs (> 70° lean) or accidents. | Immediate safety cutoff for the pump. Requires restart to reset. |
| Smart Stop | Detects standstill via accelerometer before GPS reacts. | More precise oiling stops at traffic lights. Visuals: LED pulses Green (OK) or Red (Empty) when stopped. |
| Telemetry Logger | Records max lean angles (L/R), max acceleration, and braking G-forces. | Fun stats for the web interface ("How deep was I in that corner?"). |
| Dynamic Intervals | Analyzes riding style (Cruising vs. Racing). | Reduces oiling intervals during aggressive riding (high load on chain). |
- Calibration: A dedicated Web Interface page allows zeroing the sensor. Includes a 5-second countdown and 3-second averaging for easy solo calibration.
- Logging: All IMU data will be logged to the SD card (if active) for analysis.
For advanced users and data analysis, you can connect a standard MicroSD Card Module (SPI). The system automatically detects the card at boot and starts logging telemetry data.
- File Format: CSV (Comma Separated Values)
- Interval: 1 Second
- Files:
log_X.csv(Increments automatically)
| Pin | ESP32 GPIO |
|---|---|
| CS | GPIO 5 |
| MOSI | GPIO 23 |
| MISO | GPIO 19 |
| CLK | GPIO 18 |
| VCC | 5V |
| GND | GND |
| Column | Description |
|---|---|
| Type | Event type (DATA = Periodic, EVENT = System Event) |
| Time_ms | System uptime in milliseconds |
| Speed_GPS | Raw GPS speed (km/h) |
| Speed_Smooth | Smoothed speed used for calculation (km/h) |
| Odo_Total | Total odometer reading (km) |
| Dist_Accum | Distance accumulated towards next oiling (km) |
| Target_Int | Current target interval (km) |
| Pump_State | 1 = Pump running, 0 = Idle |
| Rain_Mode | 1 = Active, 0 = Inactive |
| Temp_C | Current temperature (°C) |
| Sats | Number of satellites |
| HDOP | GPS Precision (Lower is better) |
| Message | System messages or debug info |
| Flush_Mode | 1 = Active, 0 = Inactive |
This table shows which features are available depending on the connected hardware components.
| Feature | Basic Setup | + Temp Sensor | + IMU (MPU6050) | + SD Card |
|---|---|---|---|---|
| Speed-Dependent Oiling | ✅ | ✅ | ✅ | ✅ |
| Rain Mode | ✅ | ✅ | ✅ | ✅ |
| Chain Flush Mode | ✅ | ✅ | ✅ | ✅ |
| Cross-Country Mode | ✅ | ✅ | ✅ | ✅ |
| Emergency Mode | ✅ | ✅ | ✅ | ✅ |
| Night Mode | ✅ | ✅ | ✅ | ✅ |
| Tank Monitor | ✅ | ✅ | ✅ | ✅ |
| Temp. Compensation | ❌ | ✅ | ✅ | ✅ |
| Turn Safety (Cornering) | ❌ | ❌ | ✅ | ✅ |
| Crash Detection | ❌ | ❌ | ✅ | ✅ |
| Garage Guard | ❌ | ❌ | ✅ | ✅ |
| Smart Stop | ❌ | ❌ | ✅ | ✅ |
| Aux Port: Aux Power | ✅ | ✅ | ✅ | ✅ |
| Aux Port: Heated Grips | ❌ | ✅ | ✅ | ✅ |
| Data Logging | ❌ | ❌ | ❌ | ✅ |
- Basic Setup: ESP32, GPS Module, Pump, Button, LED.
- Temp Sensor: DS18B20 (OneWire).
- IMU: BNO085 (I2C).
- SD Card / Flash: SPI Flash / MicroSD for Logging.
This system uses a DS18B20 temperature sensor to adjust the pump mechanics based on the viscosity of the oil.
Why? Oil becomes thick like syrup in winter and thin like water in summer. Without compensation, the pump might fail to move cold oil or squirt too much hot oil.
New Simplified Logic (Arrhenius): Instead of complex tables, the system uses the Arrhenius equation to model oil viscosity changes.
- Reference: You set the optimal Pulse and Pause duration for 25°C (Normal Temperature).
- Recommendation: Use a long pause (~2000ms) and adjust the pulse width. This ensures the pump always has enough time to refill, even with thick, cold oil.
- Oil Profile: Select your oil type (Thin, Normal, Thick).
- Calculation: The ESP32 automatically calculates the required energy for any temperature.
- Safety Limits:
- Minimum Pulse: The system enforces a hard limit of 50ms for the pulse duration to ensure the solenoid always moves, preventing "stuck" states at high temperatures.
- Update Interval: Temperature is measured every 1 minute to ensure stable operation.
Configuration:
- Web Interface: Simply enter your 25°C values and select the oil type.
- Sensor Detection: If no sensor is connected, the system defaults to 25°C.
Wiring:
- VCC: Board dependent (e.g. 5V-12V for Wide Range boards, or 3.3V/5V for standard)
- GND: GND
- Data: GPIO 4 - Requires 4.7kΩ Pull-Up Resistor to VCC.
If an IMU is connected, the system enables advanced safety and convenience features:
- Turn Safety: Prevents oiling while significant cornering.
- Logic: Oiling is paused if the bike leans > 20° towards the tire side (unsafe zone). Leaning towards the chain side is considered safe (oil drops on chain, not tire).
- Crash Detection: Stops the pump immediately if the lean angle exceeds 70° (bike on ground).
- Garage Guard: Detects if the bike is on the side stand or center stand and prevents oiling (even if GPS drifts).
- Smart Stop: Uses accelerometer data to detect standstill faster than GPS.
The system features a versatile Auxiliary Output (MOSFET/Relay driver) that can be configured for two main purposes:
Turns on your accessories (Navigation, USB, Lights) automatically when the ignition is ON.
- Logic: Activates the output after a configurable delay when the ESP boots.
- Start Delay: Configurable delay (default 15s) to protect the battery during engine cranking.
- Benefit: No need to tap into the bike's wiring harness or ignition switch. Connect directly to the battery via the Chain Juicer.
Advanced PWM control for heated grips, far superior to simple "Low/High" switches.
- Hardware Recommendation: Coolride Heating Cartridges (52W).
- Base Level: Set your preferred minimum heat. Default: 25%.
- Speed Compensation: Increases heat as you ride faster (Wind chill factor). Default: 0.5x (Medium).
- Temp Compensation: Increases heat as it gets colder (requires Temp Sensor). Default: 2.0x (High).
- Start Temp: Configurable threshold (Default: 20°C) below which the grips start working.
- Temp Offset: Adjusts the sensor reading if placed near heat sources (e.g. engine).
- Rain Boost: Automatically adds extra heat when Rain Mode is active. Default: +10%.
- Startup Boost: Heats up quickly (Default: 100% for 75s) when you start the ride.
- Start Delay: Configurable delay (Default: 15s) after boot before grips turn on to protect the battery.
- Reaction Speed: Configurable smoothing (Slow/Medium/Fast) to determine how quickly the heat adjusts to speed changes.
- Slow (Default): ~10s smoothing. Very comfortable, filters out traffic lights.
- Medium: ~5s smoothing. Balanced.
- Fast: ~1s smoothing. Sporty response.
Configuration: All parameters (Base %, Speed Factor, Temp Factor, Boosts, Delays, Reaction) are fully configurable via the new "Aux Config" web page. Default Mode: The Aux Port is OFF by default and must be enabled in the Web Interface.
For vibration-heavy environments or integrated builds, the system supports SPI Flash memory (simulated as SD card) for durable data logging.
Recommended Hardware:
- Adafruit SPI Flash SD Socket Adapter (Product ID: 4899)
- Why? It acts like an SD card but is a soldered chip. Completely vibration-proof.
- Capacity: 512 MB (plenty for years of logs).
Storage Capacity (512 MB Example):
The system logs GPS tracks, speed, and events to gps_log.csv.
| Metric | Value |
|---|---|
| Log Format | CSV (Timestamp, Lat, Lon, Speed, Satellites, Alt) |
| Data Rate | 1 log entry per second (approx. 60 bytes) |
| Storage per Hour | ~216 KB |
| Storage per 1000km | ~3.6 MB (Avg. 60km/h) |
| Total Capacity | > 140,000 km of riding history |
Data Retrieval: Since the chip is soldered, you cannot remove it.
- Web Download: Use the "Maintenance" page in the Web Interface to download the full log file as
gps_log.csv.
- MCU: LCTECH ESP32 Relay X1.
- Specs: ESP32-WROOM-32E, Wide Range Input (7-30V), 2x Onboard MOSFET (NCE6020AK).
- GPS: ATGM336H or NEO-6M (UART, 9600 Baud)
- Pump: 12V Dosing Pump.
- Durability: Tested with 2 pumps, each > 100,000 strokes without failure.
- Tip: Use my Smart Pump Calibrator to find the perfect settings for your pump.
- Temp Sensor: DS18B20 (Waterproof)
- IMU (Optional): BNO085 (or BNO080) for lean angle detection and standstill logic.
- LED: WS2812B (NeoPixel) for status indication
- Button: Normally Open against GND (Input Pullup)
| Component | ESP32 Pin | Description |
|---|---|---|
| Pump | GPIO 26 | MOSFET Gate (Direct Drive) |
| GPS RX | GPIO 16 | Connected to GPS TX |
| GPS TX | GPIO 27 | Connected to GPS RX |
| Button | GPIO 0 | Switched against GND |
| Boot Button | GPIO 0 | Onboard Button (Parallel function) |
| LED | GPIO 32 | WS2812B Data In |
| Temp Sensor | GPIO 4 | DS18B20 Data (with 4k7 resistor between VCC and Data!) |
| IMU SDA | GPIO 21 | I2C Data |
| IMU SCL | GPIO 22 | I2C Clock |
(Configurable in include/config.h)
To prevent the pump from triggering briefly during boot, desolder the little driver transistor of one output MOSFET (NCE6020AK) and connect the Gate of the MOSFET via a 220 Ohm resistor directly to the GPIO of the ESP. Add a Pull-Down resistor to stabilize the MOSFET. This modification may not be necessary for the Aux Port - your choice!
Recommended Fuses:
- Main Fuse (Battery): 15A (Blue) - Protects the entire system.
- Aux Circuit (Grips): 7.5A (Brown) - Protects the heated grips wiring (Load ~5.2A).
- Pump Circuit: 5A (Tan) - Protects the pump and its MOSFET (Load ~4A Peak).
Important: The 220Ω series resistor and 10kΩ Pull-Down resistor are mandatory to prevent the pump from running uncontrollably during the ESP32 boot sequence.
ESP32 GPIO (the one that switches the MOSFET
) ----[ 200R ]----+-----> MOSFET Gate
|
[existing SMD pull-down resistor with 10k]
|
GND
- 200R (Series): Protects the ESP32 pin from current spikes (Gate capacitance).
- 10k (Pull-Down): Keeps the Gate at GND (0V) while the ESP32 is booting.
| Action | Duration | Condition | Function |
|---|---|---|---|
| 1x Click | < 1s | Not in Emergency Mode | Rain Mode On/Off (LED: Blue). Note: Toggles with 600ms delay. |
| 3x Click | < 2s | Always | Offroad Mode On/Off (LED: Magenta Blink). Time based oiling. |
| 4x Click | < 2s | Always | Chain Flush Mode On/Off (LED: Cyan Blink). Time-based (Configurable). |
| 5x Click | < 2s | Always | Activate WiFi & Web Interface (LED: White pulsing). |
| Hold | > 2s | Always | Aux Port / Grip Heating Manual Toggle (Override). |
| Hold at Boot | > 10s | During Power-On | Factory Reset (LED: Yellow -> Red fast blink) |
If multiple modes are active simultaneously, the system follows this priority logic:
| Priority | Mode | LED Indication | Interaction Notes |
|---|---|---|---|
| 1 (Highest) | Chain Flush | Cyan Blink | Runs in parallel with Offroad Mode. Requires Speed > 7 km/h. |
| 2 | Offroad | Magenta Blink | Runs in parallel with Flush Mode. GPS speed is ignored; if IMU is present, oiling happens only when motion is detected. |
| 3 | Emergency | Red Pulsing | Active if GPS is lost. Disables Rain Mode. Note: Flush/Offroad will NOT oil because GPS speed is 0. |
| 4 (Lowest) | Rain | Blue | Disabled by Emergency Mode. |
| Color / Pattern | LED 1 (Main System) | LED 2 (Aux Port) |
|---|---|---|
| Green | Normal Operation (GPS Fix) | Aux Power: ON (12V Active) |
| Blue | Rain Mode Active | Heated Grips: Level 1 (Low) |
| Yellow | Oiling Event (Breathing) / Bleeding Mode (Fast Blink) | Heated Grips: Level 2 (Medium) |
| Orange | Tank Warning (2x Blink; pulses while riding) | Heated Grips: Level 3 (High) |
| Red | Emergency Mode (Pulsing) | Heated Grips: Level 4 (Max) |
| Cycle | - | Heated Grips: Boost (Blue->Red) |
| Magenta | No GPS (Solid) / Offroad (Blink; pulses while riding) | - |
| Cyan | Flush (Blink; pulses while riding) | - |
| White | WiFi Config Mode (Pulse) | - |
| Red/Yellow | Tank Empty (Alternating) | - |
| Off | - | Aux Port: OFF |
Safety Note: While riding, the system uses only steady or pulsing LED patterns to reduce distraction. Hard blinking is limited to standstill, maintenance, or warnings.
Connect to the WiFi network (Default SSID: ChainJuicer, no password) after activating it. Open 192.168.4.1 in your browser.
Adjustable Parameters:
- Intervals: Distance and pump pulses for 5 speed ranges.
- Modes: Rain Mode, Emergency Mode (Force), Night Mode (Times & Brightness).
- LED: Brightness for Day and Night (in %).
- Statistics:
- Usage %: Driving profile analysis to optimize intervals.
- Juices: Counter for oilings per range.
- Reset: Reset stats or refill tank.
Screenshots: Check out the web-ui examples folder to see what the interface looks like.
The system uses two LEDs to communicate its status.
- LED 1 (Main): System Status, Oiling, Warnings.
- LED 2 (Aux): Status of the Auxiliary Port (Heated Grips / Aux Power).
| Scenario | Trigger / Action | LED 1 (Main) | LED 2 (Aux) | System Behavior |
|---|---|---|---|---|
| Normal Ride | GPS Fix, Speed > 7 km/h | Green | State dependent | System oils automatically based on speed and configured distance intervals. |
| Oiling Event | Distance reached | Yellow Breathing | State dependent | Pump releases oil pulse. |
| Tunnel / Signal Loss | No GPS signal > 3 min | Red Pulsing | State dependent | Enters Auto Emergency Mode. Assumes 50 km/h for oiling. Returns to Green when GPS is back. |
| Rain Ride | 1x Click | Blue | State dependent | Rain Mode active. Oiling amount is doubled (or interval halved). Auto-off after 30 min or restart. |
| Aux Port: Manual Toggle | Hold > 2s | State dependent | Off / On | Manually toggles the Aux Port (Override). |
| Offroad / Enduro | 3x Click | Magenta Blink | State dependent | Offroad Mode active. Oils based on time. If IMU is present, oiling happens only when motion is detected (GPS speed is ignored). |
| Dust / Flushing | 4x Click | Cyan Blink | State dependent | Chain Flush Mode active. Oils based on time (e.g. every 60s). Good for flushing dust or after cleaning. |
| Configuration | 5x Click | White Pulse | State dependent | Activates WiFi AP ChainJuicer. Open 192.168.4.1 to config. |
| Tank Empty | Reserve reached | Red/Yellow Alternating | State dependent | Tank Empty. Refill tank and reset counter via Web Interface. |
| Aux Port: Aux Power | Ignition ON (Delay) | State dependent | Green | Aux Port is ON (12V). Powers accessories like Dashcam/Navi. |
| Aux Port: Heated Grips | Auto-Control | State dependent | Blue → Red | Blue: Low Heat Yellow: Medium Heat Orange: High Heat Red: Max Heat |
| Hardware Debug | Pump runs at boot | Check Wiring! | Check Wiring! | Ensure 10k Pull-Down resistor is installed between Gate and GND. |
- Non-Blocking: Pump control is asynchronous.
- Adaptive Smoothing: Combination of Lookup Table and Low-Pass Filter.
- Smart Oiling (Hysteresis): Start threshold at 95%, trigger at 100% (95% + 5% = 100%).
- Auto-Save: The odometer is saved intelligently (at standstill < 7 km/h, but max. every 2 minutes).
- Timezone: Automatic calculation of Central European Time (CET/CEST).
Flash the firmware directly from your browser (Chrome/Edge) without installing any software. Open Web Installer
Important: The recommended ESP32-32E board does not have a built-in USB-to-Serial converter. You need an external USB-to-UART Adapter (e.g., CP2102, CH340) to flash the initial firmware once. For updates, you can use the OTA page to upload new firmware via the webinterface.
- Connections: TX->RX, RX->TX, GND->GND, 3.3V->3.3V (or 5V->5V).
- Boot Mode: You might need to bridge GPIO0 to GND during power-up to enter bootloader mode.
- Clone or download the repository.
- Open in VS Code with installed PlatformIO Extension.
- Adjust Upload Port in
platformio.iniif necessary. - Compile and upload project (
Upload). - File system is not necessary (Data is saved in NVS/Preferences).
The total project cost is very low compared to commercial alternatives (~150€+).
| Component | Description | Link (Example) | Approx. Price |
|---|---|---|---|
| ESP32 Board | LCTECH Relay X1 (NCE6020AK) | Manufacturer | ~ 6.00 € |
| GPS Module | ATGM336H (Small & Fast) | AliExpress | ~ 4.50 € |
| Dosing Pump | 12V Pulse Pump | AliExpress | ~ 12.00 € |
| Oil Tank | 120cc RC Tank | AliExpress | ~ 4.00 € |
| Dosing Needle | 14G Needle (100mm) | AliExpress | ~ 2.00 € |
| Luer Lock Adapter | Adapter for Needle | AliExpress | ~ 1.00 € |
| TPU Hose | 2m Oil/Fuel Line | AliExpress | ~ 3.00 € |
| Button | Waterproof Button | AliExpress | ~ 0.70 € |
| LED | WS2812B (Code supports up to 2x) | Generic | ~ 1.00 € |
| Fuses | KFZ-Flachsicherungen (15A, 7.5A, 5A) | Generic | ~ 2.00 € |
| Small Parts | Automotive Connectors (2x 2pin, 1x 4pin), Wires | Generic | ~ 13.00 € |
| Housing | 3D Printed (PETG/ASA) | DIY | ~ 2.00 € |
| Flasher | USB-to-UART Adapter (CP2102/CH340) | Generic | ~ 3.00 € |
| Total (Basic) | **~ 52.50 €** | ||
| Temp Sensor (Optional) | DS18B20 (Waterproof) | AliExpress | ~ 1.50 € |
| IMU (Optional) | BNO085 (9-Axis) | AliExpress | ~ 15.00 € |
| SD Card (Optional) | MicroSD SPI Module | AliExpress | ~ 1.00 € |
| Total (Full) | **~ 70.00 €** |
Note: Prices vary by shipping location and seller.
- LED: The code is configured for 2x WS2812B LEDs. You can use one for the Chain Juicer status display in the cockpit and a second one (optional) for the Aux Port (Grip Heating or Aux Power).
- LCTECH Board Modification (Critical): If you are using the LCTECH Relay Board with the NCE6020AK MOSFET and J3Y driver circuit, you should modify the switching circuit of the pump (only the pump circuit!) to prevent the pump from triggering briefly during boot as follows:
- Remove: Transistor
J3Y(S8050) and ResistorsR8&R7. - Keep: Resistor
R3(10k Pull-Down). - Add: A 220 Ohm resistor between GPIO 16 and the Gate of the MOSFET.
- See
Docs/SCHEMATIC.txtfor details.
- Remove: Transistor
READ CAREFULLY BEFORE BUILDING OR USING THIS SYSTEM!
- DIY Project: This is a Do-It-Yourself project. You are solely responsible for the assembly, installation, and operation of the system.
- No Liability: The author accepts no liability for any damage to your motorcycle, property, or person, nor for any accidents caused by the use or failure of this system.
- Oil on Tires: Chain oilers involve liquids near moving parts. Oil on the tire significantly reduces traction and can lead to crashes.
- Ensure the dosing needle is positioned correctly so oil drips ONLY on the chain/sprocket, never on the tire or brake disc.
- Regularly check the system for leaks.
- IMMEDIATELY clean any oil off the tire if a spill occurs. Do not ride with oil on your tires.
- Road Safety: Do not operate the configuration interface while riding. Focus on the road.
This project is licensed under the PolyForm Noncommercial License 1.0.0.
- Noncommercial Use: You may use this software for personal, educational, or evaluation purposes.
- Commercial Use Restricted: You may NOT use this software for commercial purposes (selling, paid services, business use) without prior written consent.
View Full License Text
This license allows you to use the software for noncommercial purposes.
In order to receive this license, you must agree to its rules. The rules of this license are both obligations (like a contract) and conditions to your license. You must not do anything with this software that triggers a rule that you cannot or will not follow.
The licensor grants you a copyright license for the software to do everything you might do with the software that would otherwise infringe the licensor's copyright in it for any permitted purpose. However, you may only do so to the extent that such use does not violate the rules.
A purpose is a permitted purpose if it consists of:
- Personal use
- Evaluation of the software
- Development of software using the software as a dependency or evaluation tool
- Educational use
Commercial use is strictly prohibited without prior written consent from the author.
You must not use the software for any commercial purpose. A commercial purpose includes, but is not limited to:
- Using the software to provide a service to third parties for a fee.
- Selling the software or a derivative work.
- Using the software in a commercial environment or business workflow.
You must ensure that anyone who gets a copy of any part of the software from you also gets a copy of these terms or the URL for them above, as well as copies of any copyright notice or other rights notice in the software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.