Skip to content

TechwriterSSchmidt/ChainJuicer

Repository files navigation

🍋 Chain Juicer v2.0.0 (ESP32)

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.

Support my projects

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!

ko-fi

Recommended Pin Layout (Hardware v2.0)

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.

Table of Contents

Features

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.

Optional IMU Features

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.

Optional SD Card Logging

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)

Wiring (VSPI Default)

Pin ESP32 GPIO
CS GPIO 5
MOSI GPIO 23
MISO GPIO 19
CLK GPIO 18
VCC 5V
GND GND

Logged Data

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

Hardware & Functionality Matrix

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.

Automatic Temperature Compensation

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.

IMU Features (BNO085)

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.

Aux Port Manager (GPIO 17)

The system features a versatile Auxiliary Output (MOSFET/Relay driver) that can be configured for two main purposes:

1. Aux Power (Switched Live)

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.

2. Automated Heated Grips

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.

Data Logging (SPI Flash)

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.

Hardware

  • 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)

Pin Assignment (Current Config)

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)

MOSFET Wiring (Direct Drive)

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.

Operation

Button Functions

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)

Mode Hierarchy & Interactions

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.

LED Status Codes

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.

Web Interface

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.

Usage Scenarios & LED Status

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.

Technical Details

  • 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).

Installation

Option A: Web Installer (Recommended)

Flash the firmware directly from your browser (Chrome/Edge) without installing any software. Open Web Installer

Option B: PlatformIO (For Developers)

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.
  1. Clone or download the repository.
  2. Open in VS Code with installed PlatformIO Extension.
  3. Adjust Upload Port in platformio.ini if necessary.
  4. Compile and upload project (Upload).
  5. File system is not necessary (Data is saved in NVS/Preferences).

BOM & Costs (approx. 2025)

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.

Hardware Notes

  • 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:
    1. Remove: Transistor J3Y (S8050) and Resistors R8 & R7.
    2. Keep: Resistor R3 (10k Pull-Down).
    3. Add: A 220 Ohm resistor between GPIO 16 and the Gate of the MOSFET.
    • See Docs/SCHEMATIC.txt for details.

Disclaimer & Safety

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.

License

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

PolyForm Noncommercial License 1.0.0

1. Purpose

This license allows you to use the software for noncommercial purposes.

2. Agreement

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.

3. License Grant

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.

4. Permitted Purpose

A purpose is a permitted purpose if it consists of:

  1. Personal use
  2. Evaluation of the software
  3. Development of software using the software as a dependency or evaluation tool
  4. Educational use

Commercial use is strictly prohibited without prior written consent from the author.

5. Rules

5.1. Noncommercial Use

You must not use the software for any commercial purpose. A commercial purpose includes, but is not limited to:

  1. Using the software to provide a service to third parties for a fee.
  2. Selling the software or a derivative work.
  3. Using the software in a commercial environment or business workflow.
5.2. Notices

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.

6. Disclaimer

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.

About

Sophisticated, GNSS-based automatic chain lubricator for motorcycles, based on a readily available, classic ESP32 board.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors