LeanOMeter User Manual
Table of Contents
- Overview
- Getting Started
- Navigation and Controls
- Display Modes
- Menu System
- Settings
- Preferences
- Theme Customization
- Track Mode
- Bluetooth Features
- SD Card Logging
- IMU Calibration
- Device Information
- Mobile App
- Web App
- Troubleshooting
Overview
The LeanOMeter is a high-performance motorcycle lean angle and G-force display device featuring:
- 466x466 AMOLED Display - Bright, OLED-level high-resolution circular display
- Real-time IMU Data - Accurate lean angle, pitch (wheelie/stoppie), and G-force measurements
- Track Mode - Lap timer with session logging
- Bluetooth Connectivity - Wireless data streaming to mobile apps
- SD Card Logging - Data recording for analysis
- Customizable Themes - Personalize colors and appearance
- Multiple Display Modes - Choose your preferred view
Hardware Specifications
- Board: ESP32-S3
- Display: 466x466 CO5300 AMOLED (QSPI)
- IMU: QMI8658 (6-axis accelerometer + gyroscope)
- Touch: CST9217 capacitive touch panel
- Power: AXP2101 PMU with comprehensive battery management (3.7V)
- Storage: SD card slot (MMC)
Getting Started
First Power On
- Power the device using the USB-C port or battery (battery port is nearest the USB-C port, as a white plug on the back of the device)
- The device will show a boot screen briefly
- The home screen will appear showing real-time lean angle data
Initial Setup
-
Calibrate the IMU (see IMU Calibration)
- Place the device on a flat, level surface, preferably mounted on the bike, in a straight, upright position.
- Access Menu → Calibrate
- Device shall auto calibrate itself, and save the data so you'll never need to calibrate again!
-
Adjust brightness if needed
- Menu → Brightness
- Choose from 4 levels: Low, Medium, High, Max
-
Configure preferences (optional)
- Menu → Preferences
- Set screen rotation, max value persistence, etc.
Navigation and Controls
Physical Buttons
The device has two physical buttons:
- Button 1 (Power Button) - Located nearest the battery/USB port
- Button 2 (Boot Button) - Located near the expanded IO pins
Button 1 (Power Button)
- Short Press: Cycles display modes on home screen, as well as cycling through menu items/sub-menus
- Long Press (2-3 seconds): Selects menu item or performs action
Button 2 (Boot Button)
- Short Press: Opens/closes menu
- Long Press: Closes menu if open
Touch Screen
- Tap Home Screen: Cycles through display modes (if not locked)
-
Tap Menu Screen:
- Center button: Selects highlighted menu item
- Left/Right edges: Scrolls through menu items
- Tap Track Mode: Starts timer if not running, or logs lap if running
- Tap Sub-menus: Selects highlighted item
Screen Navigation
- Home Screen: Main display showing IMU data
- Menu Screen: Access to all features and settings
- Sub-menus: Settings, Preferences, Theme (navigate with buttons or touch)
Display Modes
The LeanOMeter offers 4 different display modes for viewing your data:
1. Full Mode (Default)
- Shows both lean angle and pitch (wheelie/stoppie)
- Circular border design
- Displays max values for lean (L/R) and pitch (W/S)
- Best for: General riding, seeing all data at once
2. Lean Only Mode
- Large lean angle display - maximum visibility
- Full-width horizontal bar
- Shows max left/right lean values
- Best for: Track days, focusing on cornering technique
3. Pitch Only Mode
- Large pitch display - wheelie/stoppie focus
- Vertical bar showing pitch angle
- Shows max wheelie and stoppie values
- Best for: Stunt riding, wheelie practice
4. G-Force Mode
- G-force display - acceleration and braking
- Shows forward G-force (positive = acceleration, negative = braking)
- Displays max acceleration and braking G-forces
- Best for: Performance analysis, launch control
Switching Display Modes
Method 1: Tap anywhere on the home screen (if display mode is not locked)
Method 2: Use Button 1 (short press) on home screen
Note: If "Lock Display Mode" is enabled, you cannot change modes without unlocking first.
Menu System
Access the menu by:
- Short press Button 1 (nearest to battery/USB port button)
- Short press Button 2 (near the expanded IO strip button)
Menu Items
- Lock Display Mode - Prevents accidental mode changes
- Brightness - Adjust screen brightness (4 levels)
- Preferences - Screen rotation, max value persistence
- Theme - Customize colors and appearance
- Settings - Bluetooth, data logging
- Stopwatch - Lap timer and race logging
- Device - Device information and battery status
- Calibrate - IMU calibration
- Power Off - Enter sleep mode
Navigating the Menu
- Scroll: Tap left/right edges of screen, or use Button 1 (short press)
- Select: Tap center button, or Button 1 (long press)
- Back: Button 2 (short press), or Button 1 (short press)
Settings
Access: Menu → Settings
Bluetooth
- Enable/Disable: Toggle Bluetooth connectivity
- Status: Shows connection status (Connected/Disconnected)
-
Features:
- Streams IMU data (roll, pitch) to connected devices
- Receives configuration commands
- Theme synchronization
- Calibration commands
Data Logging
- Enable/Disable: Toggle SD card logging
-
Modes:
- Regular: Continuous IMU data logging
- Race: Lap-based logging (Track Mode only)
- Status: Shows logging state and SD card status
Preferences
Access: Menu → Preferences
Screen Rotation (180°)
- Enable: Rotates display 180° for different mounting orientations
- Effect: Flips both display and sensor readings
- Use Case: Mount device upside-down or rotated
Persist Max Values
- Enable: Max values persist across power cycles
- Disable: Max values reset when switching display modes
-
Max Values Tracked:
- Max left/right lean angle
- Max wheelie/stoppie angle
- Max acceleration/braking G-force
Theme Customization
Access: Menu → Theme
Available Themes
- Default - Standard color scheme (green/red for lean, etc.)
- Custom 1 - User-customizable theme
- Custom 2 - Second user-customizable theme
Theme Colors
Each theme allows customization of:
- Lean Bar Right - Color when leaning right (default: Green)
- Lean Bar Left - Color when leaning left (default: Red)
- Pitch Bar Wheelie - Color for wheelie (default: Grey/Blue)
- Pitch Bar Stoppie - Color for stoppie (default: Magenta/Purple)
- G-Force Bar Active - Color for active G-force (default: Green)
- Baseline Axis - Color for baseline/axis lines (default: White)
- Menu Button Start - Menu button gradient start (default: Blue)
- Menu Button End - Menu button gradient end (default: Light Blue)
Customizing Themes
- Select Custom 1 or Custom 2
- Use Bluetooth app or BLE commands to set colors
- Colors are saved automatically
Note: The Default theme cannot be modified.
Track Mode
Access: Menu → Stopwatch
Track Mode is a specialized screen for track days and racing, featuring:
Features
- Large Timer Display - lagrg font, easy to read at speed
- Live Lean Angle - Current lean angle with visual bar
- Max Lean Tracking - Session and per-lap maximums
- Lap Timer - Start/stop timer with lap logging
- Last Lap Time - Shows previous lap time at top of screen
Using Track Mode
Starting a Session
- Navigate to Track Mode screen
- Tap anywhere to start the timer
- Timer begins counting up from 00:00.00
Logging Laps
- Tap anywhere while timer is running to log a lap
- Lap number increments automatically
- Max lean values reset for each new lap
- Last lap time displays at top
Stopping the Session
- Long press Button 1 (Power button) or use menu to stop timer
- Session data is saved to SD card (if logging enabled)
- Max values for the session are displayed
Track Mode Display Layout
┌─────────────────────┐
│ LAST 01:23.45 │ ← Last lap time
│ │
│ 00:00.00 │ ← Main timer (large)
│ │
│ 12.5 deg │ ← Live lean angle
│ ──────●─────── │ ← Visual lean bar
│ │
│ L 45.2 | R 48.7 │ ← Max lean values
└─────────────────────┘
SD Card Logging in Track Mode
When Track Mode logging is enabled:
- Creates files in
/logs/race/directory - Logs each lap with:
- Lap number
- Lap time
- Total session time
- Max lean left/right for lap
- Max wheelie/stoppie for lap
- Periodic data points logged at 2 Hz during session
Bluetooth Features
Connection
- Enable Bluetooth in Menu → Settings
- Device appears as "LeanOMeter"
- Connect from your mobile app or BLE device or web app by visiting the URL: https://leanometer.app
- Status shows "Connected" when paired
Data Streaming
IMU Data Characteristic:
- Streams roll and pitch angles in real-time
- Update rate: ~20 Hz
- Format: Binary data (float values)
Status Characteristic:
- Connection status updates
- Device state information
Configuration via Bluetooth
Calibration Command:
- Send calibration command via BLE
- Device enters calibration mode
- Status updates sent back
Theme Data:
- Send theme colors via BLE
- Updates Custom 1 or Custom 2 theme
- Changes apply immediately
Log Commands:
- Start/stop logging remotely
- Query logging status
SD Card Logging
SD Card Setup
- Insert SD card (FAT32 formatted)
-
Device automatically creates folder structure:
/logs/ /regular/ - Regular IMU logging /race/ - Track Mode lap logging
Regular Logging
Purpose: Continuous IMU data recording
Enable: Menu → Settings → Data Logging → Enable
File Format: CSV files with timestamp, roll, pitch, G-force
Logging Rate: 10 Hz (throttled to reduce SD card wear)
File Naming: YYYYMMDD_HHMMSS.csv
Data Format:
timestamp_ms,roll_deg,pitch_deg,g_forward
0,0.0,0.0,0.0
100,2.5,-1.2,0.15
200,5.1,-0.8,0.22
...
Race Logging (Track Mode)
Purpose: Lap-based logging for track sessions
Enable: Automatically enabled when Track Mode timer starts
File Format: CSV files with lap data and periodic samples
Logging Rate:
- Lap events: Logged immediately
- Periodic data: 2 Hz during active session
File Naming: race_YYYYMMDD_HHMMSS.csv
Data Format:
lap_number,lap_time_ms,total_time_ms,max_lean_left,max_lean_right,max_wheelie,max_stoppie
1,45230,45230,42.5,45.2,-5.1,8.3
2,43890,89120,44.1,46.8,-4.9,7.8
...
SD Card Management
View Card Info: Menu → Device → Shows SD card status
Format Card:
- Remove card and format on computer (FAT32)
- Or use device formatting (if implemented)
File Access: Remove SD card and read files on computer
Best Practices:
- Use high-quality SD cards (Class 10 or better)
- Format regularly to prevent fragmentation
- Keep card inserted during logging sessions
- Don't remove card while logging is active
IMU Calibration
Why Calibrate?
Calibration ensures accurate readings by:
- Setting zero reference for lean angle
- Compensating for mounting angle
- Accounting for sensor bias
When to Calibrate
- First time setup
- After remounting the device
- If readings seem offset from expected
- Periodically (every few months)
Calibration Process
- Access: Menu → Calibrate
- Place device on flat, level surface
-
Follow on-screen instructions:
- Calibration overlay appears
- Device samples IMU data for several seconds
- Plus (+) indicator shows calibration in progress
- Wait for completion - overlay disappears when done
- Calibration saved automatically to device memory
Calibration Tips
- Use a truly level surface (spirit level recommended)
- Don't move the device during calibration
- Wait for completion - don't interrupt the process
- Verify by checking readings match expected values
Calibration via Bluetooth
You can also trigger calibration remotely:
- Send calibration command via BLE
- Device enters calibration mode
- Status updates sent back when complete
Device Information
Access: Menu → Device
Information Displayed
- Device Name: LeanOMeter
- Firmware Version: Current version number
- Serial Number: Unique device identifier
- Battery Status: (if available)
Battery Screen
Access: Menu → Device → Battery (if available)
Shows:
- Battery Voltage: Current voltage reading
- Battery Percentage: Charge level (0-100%)
- Charging Status: Whether device is charging
- Power Source: Battery or USB
Mobile App
The LeanOMeter mobile app provides advanced data visualization and analysis capabilities for your logged IMU data. Available for iOS and Android devices.
Getting Started with the Mobile App
-
Install the App:
- Published Apps: iOS App Store and Google Play Store
-
Connect to Device:
- Ensure Bluetooth is enabled on your device
- Open the app and tap "Connect"
- Select "LeanOMeter" from the available Bluetooth devices
- Connection status will show "Connected" when paired
-
Load Log Data:
- Navigate to the "Data" tab
- Tap "Load" to read available log files from the device
- Select a log file from the list to visualize
Data Visualization
The mobile app provides rich chart visualization of your LeanOMeter data:
Chart Features
- Real-time Data Display: Roll, pitch, and G-force values plotted over time
- Multiple Traces: Toggle visibility of roll, pitch, and G-force traces
- Interactive Zoom: Use pinch gestures or slider controls to zoom in/out
- Pan Control: Drag to pan through time series data
- Reset View: Return to default zoom and pan settings
Trace Visibility
Control which data traces are displayed:
- Roll: Lean angle data (green/red traces)
- Pitch: Wheelie/stoppie angle data (blue/purple traces)
- G-Force: Acceleration/braking data (orange trace)
Toggle traces on/off using the buttons above the controls or in the chart legend.
Log Analysis
Log File Management
- Load Logs: Read log files from device SD card
- File Browser: Navigate through regular and race log directories
- File Information: View file size, creation date, and type
- Rename Files: Rename log files directly from the app
- Delete Logs: Remove unwanted log files (with confirmation)
Data Export
- View Raw Data: Inspect CSV data in table format
- Export Options: Save data to device storage or share
- File Formats: Native CSV format with timestamp, roll, pitch, G-force columns
Fullscreen Chart
Access fullscreen mode for detailed analysis:
Entering Fullscreen
- Tap the expand button (⛶) in the top-right corner of any chart
- Chart expands to fill the entire screen
Fullscreen Features
- Maximized Chart Area: Utilize full screen real estate
- Gesture Controls: Pinch-to-zoom and pan work in fullscreen
- Landscape Orientation: Chart automatically rotates for landscape viewing
- Fixed Controls: Zoom/pan/reset controls positioned at bottom
- Trace Toggles: Roll/pitch/G-force toggles positioned above controls
Exiting Fullscreen
- Tap the "✕" button in the top-right corner
- Returns to normal chart view
Gesture Controls
The mobile app supports advanced touch gestures for intuitive chart navigation:
Pan (Drag)
- Single Finger: Drag left/right to scroll through time series
- In Fullscreen: Dragging adjusts horizontal pan position
- Smooth Scrolling: Momentum-based scrolling for natural feel
Pinch-to-Zoom
- Two Fingers: Pinch in/out to zoom chart timeline
- Zoom Range: 1x to 20x magnification
- Real-time Updates: Zoom level updates smoothly during gesture
- Works Everywhere: Available in both normal and fullscreen modes
Touch Responsiveness
- 60 FPS Updates: Smooth 60Hz gesture updates
- Debounced Controls: Prevents excessive state updates
- Error Handling: Graceful handling of gesture errors
BLE Connection Integration
The mobile app integrates with BLE connection status for enhanced user experience:
Tab Navigation Behavior
- Smart Tab Visibility: Tab bar automatically hides when BLE connection is lost
- Auto-Navigation: When disconnected, app automatically returns to Home tab
- Connection-Aware UI: Interface adapts based on connection status
Haptic Feedback & Visual Effects
- iOS Haptic Feedback: Light haptic feedback when pressing tab buttons
- Animated Highlights: Active tabs feature gradient highlights with smooth scaling animations
- Visual Feedback: Enhanced visual cues for better user interaction
Mobile App Settings
Connection Settings
- Auto-connect: Automatically reconnect to last paired device
- Connection Timeout: Configurable connection attempt duration
- Debug Logging: Enable detailed logging for troubleshooting
Chart Preferences
- Default Zoom Level: Set preferred initial zoom level
- Trace Visibility: Configure default visible traces
- Theme Sync: Synchronize chart colors with device theme
Web App
The LeanOMeter web app provides full functionality through any modern web browser with Bluetooth support.
Accessing the Web App
Browser Compatibility
Supported Browsers
- Chrome/Edge (Desktop): Full Web Bluetooth API support
- Bluefy (iOS): Web Bluetooth support for iPhone/iPad
- Android Browsers: Chrome, Edge, Samsung Internet
Unsupported Browsers
- iOS Safari: Does not support Web Bluetooth API
- Firefox: Limited Web Bluetooth support
Web App Features
The web app includes all mobile app features:
- Real-time Data Visualization: Live charts of roll, pitch, and G-force
- Log File Analysis: Upload and analyze CSV log files
- Interactive Charts: Zoom, pan, and trace toggling
- Fullscreen Mode: Expanded chart viewing
- Theme Customization: Synchronize with device themes
- BLE Configuration: Remote device settings and calibration
Connection Process
- Open Web App: Navigate to https://leanometer.app
- Allow Bluetooth: Grant Bluetooth permissions when prompted
- Scan for Device: Click "Connect" and select "LeanOMeter"
- Start Using: All features available once connected
Data Upload
- Drag & Drop: Upload CSV files directly to the browser
- File Selection: Browse and select log files from your computer
- Real-time Analysis: Visualize and analyze your riding data
- Export Options: Download processed data or charts
Cross-Platform Access
The web app works on:
- Desktop Computers: Windows, macOS, Linux
- Mobile Devices: iOS (with Bluefy), Android
- Tablets: iPad, Android tablets
- Any Device: With a modern web browser and Bluetooth
Troubleshooting
Display Issues
Problem: Screen is blank or black
- Solution: Check brightness setting (Menu → Brightness)
- Solution: Press Button 1 (Power button) to wake from sleep
- Solution: Check power connection
Problem: Display is rotated incorrectly
- Solution: Menu → Preferences → Screen Rotation → Toggle
Problem: Display mode won't change
- Solution: Check if "Lock Display Mode" is enabled (Menu → Lock Display Mode)
IMU Issues
Problem: Readings seem incorrect or offset
- Solution: Recalibrate IMU (Menu → Calibrate)
- Solution: Check device mounting - ensure it's level
- Solution: Verify device is securely mounted
Problem: Readings are jumpy or unstable
- Solution: Normal - device uses smoothing filters
- Solution: Ensure device is securely mounted (vibration can cause issues)
- Solution: Check for loose connections
Touch Issues
Problem: Touch screen not responding
- Solution: Clean screen surface
- Solution: Check screen rotation setting (affects touch mapping)
- Solution: Use physical buttons as alternative
Problem: Touch responds in wrong location
- Solution: Check screen rotation setting
- Solution: Recalibrate touch (if feature available)
Bluetooth Issues
Problem: Bluetooth won't connect
- Solution: Ensure Bluetooth is enabled (Menu → Settings → Bluetooth)
- Solution: Check device is in pairing mode
- Solution: Restart Bluetooth on your device
- Solution: Check device is within range
Problem: Data not streaming
- Solution: Verify connection is active
- Solution: Check app is subscribed to IMU data characteristic
- Solution: Restart Bluetooth connection
Problem: Can't connect from iPhone/iPad
- Solution: iOS Safari doesn't support Web Bluetooth - use Bluefy browser instead
- Solution: Install Bluefy from App Store, then open web app in Bluefy
- Solution: See iOS Device Connection section for details
SD Card Issues
Problem: SD card not detected
- Solution: Check card is properly inserted
- Solution: Format card as FAT32
- Solution: Try a different SD card
- Solution: Check card is not write-protected
Problem: Logging not working
- Solution: Enable logging (Menu → Settings → Data Logging)
- Solution: Check SD card is inserted and detected
- Solution: Verify card has free space
- Solution: Check card is formatted correctly (FAT32)
Problem: Files not appearing on computer
- Solution: Ensure logging was active when files should have been created
- Solution: Check card on device (Menu → Device)
- Solution: Try reading card with different card reader
- Solution: Check file system is readable (FAT32)
Power Issues
Problem: Device won't power on
- Solution: Check USB-C connection
- Solution: Check battery charge level
- Solution: Try different USB cable/power source
- Solution: Press and hold Button 1 (Power button)
Problem: Battery drains quickly
- Solution: Reduce screen brightness
- Solution: Disable Bluetooth when not needed
- Solution: Disable SD card logging when not needed
- Solution: Use Power Off feature when not in use
Problem: Device enters sleep unexpectedly
- Solution: Check battery level (may be low)
- Solution: Check power connection
- Solution: Device may have auto-sleep enabled
Track Mode Issues
Problem: Timer won't start
- Solution: Ensure you're on Track Mode screen
- Solution: Tap anywhere on screen
- Solution: Check if timer is already running
Problem: Laps not logging
- Solution: Ensure SD card is inserted and logging enabled
- Solution: Check SD card has free space
- Solution: Verify logging is active (Menu → Settings → Data Logging)
Problem: Max values not resetting
- Solution: Check "Persist Max Values" setting (Menu → Preferences)
- Solution: Max values reset when starting new session
- Solution: Manually reset by switching display modes (if persistence disabled)
General Issues
Problem: Menu won't open
- Solution: Try Button 2 (Boot button) instead of Button 1
- Solution: Restart device
Problem: Settings not saving
- Solution: Settings save automatically - no action needed
- Solution: If issues persist, device may need reset
- Solution: Check device has sufficient memory
Problem: Device seems slow or laggy
- Solution: Normal - device updates at 60 Hz for smooth display
- Solution: Reduce number of active features (Bluetooth, logging)
- Solution: Check SD card performance (slow card can affect system)
Technical Specifications
Display
- Type: AMOLED
- Resolution: 466x466 pixels
- Interface: QSPI
- Brightness: 4 levels (64, 128, 192, 255)
- Update Rate: 60 Hz
IMU (QMI8658)
- Accelerometer: ±16g range
- Gyroscope: ±2000 dps range
- Update Rate: 1000 Hz (filtered to 60 Hz display)
- Accuracy: ±0.05° (after calibration), ±0.1° (displayed, after calibration)
Data Logging
- Regular Logging: 50 Hz (with filtered queue)
- Race Logging: 100 Hz (with filtered queue)
- File Format: CSV
- Max File Size: Limited by SD card capacity
Bluetooth
- Standard: BLE 5.0
- Range: ~10 meters (typical)
- Update Rate: ~20 Hz
- Power: Low power consumption
Power
- Input: USB-C (5V)
- Battery: Integrated (if available)
- Sleep Mode: Light sleep (wakes on button press)
-
Power Consumption:
- Active: ~200-300mA
- Sleep: <10mA
Safety and Warnings
Mounting
- Secure Mounting: Ensure device is securely mounted to prevent detachment
- Vibration: Excessive vibration may affect readings
- Weather: Protect from water and extreme temperatures
- Visibility: Mount where it doesn't obstruct your view
Usage
- Focus on Riding: Don't stare at display while riding
- Track Use: Track Mode is for closed-course use only
- Data Accuracy: Readings are for reference only, not for safety-critical applications
- Calibration: Regular calibration ensures accuracy
Maintenance
- Cleaning: Clean screen with soft, dry cloth
- Storage: Store in protective case when not in use
- Updates: Check for firmware updates periodically
- Backup: Regularly backup SD card data
Support and Resources
Documentation
- This user manual
- Technical documentation (for developers)
Appendix: Quick Reference
Button Shortcuts
| Button | Location | Short Press | Long Press |
|---|---|---|---|
| Button 1 (Power) | Nearest battery/USB port | Cycle modes/menu items | Select/Action |
| Button 2 (Boot) | Near expanded IO pins | Open/Close Menu | Close Menu |
Display Mode Shortcuts
- Tap Home Screen: Cycle modes (if unlocked)
- Button 1 (short press): Cycle modes (if unlocked)
Menu Navigation
- Scroll: Tap left/right edges, or Button 1 (short press)
- Select: Tap center, or Button 1 (long press)
- Back: Button 2 (short press), or Button 1 (short press)
Track Mode Shortcuts
- Tap Screen: Start timer / Log lap
- Long Press Button 1: Stop timer
Common Settings Locations
- Brightness: Menu → Brightness
- Bluetooth: Menu → Settings → Bluetooth
- Logging: Menu → Settings → Data Logging
- Rotation: Menu → Preferences → Screen Rotation
- Calibration: Menu → Calibrate
Last Updated: January 2025 Version: 1.3 Device: LeanOMeter