Assembly

Testing & Validation

Comprehensive testing procedures for validating your Moto32 control unit.

Testing & Validation

Thorough testing procedures to ensure your Moto32 is functioning correctly before motorcycle installation.

Safety First

CRITICAL: Never connect Moto32 to your motorcycle until ALL bench tests pass successfully. A faulty unit can damage your bike's electrical system or cause safety issues.

Test Equipment

Required

  • Multimeter (voltage, continuity, resistance modes)
  • 12V Power Supply (current-limited bench supply recommended)
  • USB-C Cable (for programming and serial monitoring)
  • Test LEDs (with appropriate resistors, 470Ω-1kΩ)
  • Alligator Clips or jumper wires

Optional

  • Oscilloscope (for signal analysis)
  • Current meter (clamp or inline)
  • Automotive test light
  • Load resistors (10Ω, 10W) for load testing
  • Fuse tester

Pre-Power Visual Inspection

Before applying any power:

Checklist

  • All components soldered properly
  • No visible solder bridges between pins
  • All ICs oriented correctly (pin 1 markers align)
  • All diodes in correct polarity
  • All MOSFETs oriented correctly
  • USB-C connector securely attached
  • No cold solder joints or lifted pads
  • PCB clean of flux residue
  • No damaged traces or components
  • All required components present (check BOM)

Continuity Tests

Test for shorts with multimeter (continuity mode):

Test PointsExpected Result
12V to GNDOpen circuit (no continuity)
3.3V to GNDOpen circuit
12V to 3.3VOpen circuit
USB D+ to GNDHigh resistance (10kΩ+)
USB D- to GNDHigh resistance (10kΩ+)
If Any Short Found: DO NOT power on. Locate and fix the short first using magnification and ohmmeter to trace the connection.

First Power-Up (USB Only)

Step 1: USB Power Test

  1. Connect USB-C cable to computer (Moto32 unpowered)
  2. Watch carefully for:
    • Smoke (disconnect immediately if seen)
    • Unusual smells
    • Excessive heat on any component
  3. Check Device Manager (Windows) or lsusb (Linux):
    • CH340 device should appear
    • May show as "USB Serial" or "CH340"

Expected Current Draw:

  • Initial: <100mA
  • Idle: 50-80mA typical
  • Programming: 150-200mA

Step 2: Voltage Measurements

With USB connected, measure voltages:

Test PointExpectedTolerance
3.3V Rail3.3V±0.15V (3.15-3.45V)
ESP32 VCC3.3V±0.1V
CH340 VCC3.3V±0.1V
USB VBUS~5V4.75-5.25V

If voltages are wrong:

  • No 3.3V: Check buck converter (U3) orientation and soldering
  • Low voltage: Short circuit or damaged regulator
  • Fluctuating: Poor solder joints or intermittent connection

Step 3: Serial Communication Test

  1. Open Arduino IDE Serial Monitor or PlatformIO terminal
  2. Set baud rate to 115200
  3. Press Reset button on Moto32 (or disconnect/reconnect USB)
  4. You should see ESP32 boot messages:
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00...

Success: Communication working! Failure: Check CH340 soldering, USB cable, drivers.

Programming Test

Upload Test Firmware

  1. Open Arduino IDE or PlatformIO
  2. Use the basic test firmware
  3. Click Upload
  4. Wait for "Connecting..." message
  5. Hold BOOT button if needed
  6. Upload should complete successfully

Verify:

  • Compile finishes without errors
  • Upload completes (progress to 100%)
  • "Hard resetting via RTS pin" message
  • ESP32 boots into new firmware

12V Power System Test

Use Current-Limited Supply: Set limit to 500mA initially. This protects against shorts and component failures.

Step 1: Initial 12V Power-Up

Setup:

  1. Disconnect USB (test with 12V only)
  2. Connect 12V bench supply:
    • Positive (+) to Moto32 12V input
    • Negative (-) to Moto32 GND
  3. Set current limit to 500mA
  4. Power ON

Observations:

  • Current draw should stabilize at <200mA
  • No smoke or unusual smells
  • No excessive heat on any component
  • 3.3V rail should be present and stable

Step 2: Voltage Verification

Measure with multimeter:

Test PointExpected Value
12V Input12.0V ±0.5V
3.3V Rail3.3V ±0.1V
Buck Converter Output3.3V
ESP32 Module VCC3.3V

Step 3: Load Test

  1. Gradually increase current limit: 500mA → 1A → 2A
  2. Monitor voltage stability
  3. Check temperature of:
    • Buck converter (U3) - should be warm, not hot
    • ESP32 module - slightly warm
    • MOSFETs - cool (no load yet)

Expected Current Draw (No Load):

  • Idle: 100-150mA
  • Wi-Fi active: 200-300mA
  • Peak: <500mA without loads

Output Testing

Test Setup

Connect test loads to each output:

Output Terminal
      │
    [LED]  ← Test LED
      │
    [470Ω]  ← Current limiting resistor
      │
    GND

Alternative: Use automotive test light (12V bulb) for higher current test.

Output Activation Test

Upload this test firmware:

void testOutputs() {
  const int outputs[] = {1, 2, 3, 4, 5, 6, 7, 8};
  
  for(int i = 0; i < 8; i++) {
    Serial.print("Testing Output ");
    Serial.println(i + 1);
    
    digitalWrite(outputs[i], LOW);  // Turn ON
    delay(1000);
    
    digitalWrite(outputs[i], HIGH); // Turn OFF
    delay(500);
  }
}

Verify Each Output:

  • LED lights when output activated
  • LED turns off when output deactivated
  • Voltage at output: ~12V when ON, ~0V when OFF
  • No flickering or instability
  • Smooth on/off transitions

Output Voltage Measurement

For each output, measure with multimeter:

StateVoltage (Output to GND)Notes
OFF (HIGH)<0.5VMOSFET fully blocking
ON (LOW)11.5-12VClose to supply voltage
On-Resistance Drop<0.5VAt 1A load

Load Current Test

Connect increasing loads:

  1. LED (20-50mA): Should work perfectly
  2. Small bulb (1A): Measure voltage drop
  3. 5A load (optional): Use power resistor or automotive bulb

Monitor:

  • MOSFET temperature (should be warm, not hot)
  • Voltage drop across MOSFET
  • Circuit current draw
  • Buck converter stability
MOSFET Temperature: Under 5A continuous load, MOSFETs will get warm (50-70°C). This is normal. Above 80°C, add heatsinking or reduce load.

Input Testing

Pull-Up Test

All inputs should have internal pull-ups enabled in firmware:

pinMode(INPUT_PIN, INPUT_PULLUP);

Test:

  • Measure input voltage with multimeter: Should be ~3.3V (pulled high)
  • Short input to GND: Should read 0V
  • Release: Should return to 3.3V

Switch Simulation

Connect push button between input and GND:

  1. Upload firmware with input monitoring
  2. Press button: Serial should show "Input Active"
  3. Release: Serial shows "Input Inactive"
  4. Test debouncing with rapid presses

Functional Tests

Test 1: Basic I/O Mapping

Map a button to an LED:

int buttonPin = 9;
int ledPin = 1;

void loop() {
  bool pressed = (digitalRead(buttonPin) == LOW);
  digitalWrite(ledPin, pressed ? LOW : HIGH);
}

Verify: LED responds immediately to button press.

Test 2: Turn Signal Flasher

void loop() {
  static unsigned long lastFlash = 0;
  static bool state = false;
  
  if(millis() - lastFlash > 500) {
    state = !state;
    lastFlash = millis();
    digitalWrite(OUT5_PIN, state ? LOW : HIGH);
  }
}

Verify: Output flashes at ~1Hz (500ms on, 500ms off).

Test 3: Multiple Outputs Simultaneously

Activate several outputs at once:

digitalWrite(OUT1_PIN, LOW); // Headlight
digitalWrite(OUT3_PIN, LOW); // Tail light
digitalWrite(OUT4_PIN, LOW); // Brake light

Monitor:

  • All outputs active simultaneously
  • 3.3V and 12V rails remain stable
  • Current draw increases appropriately
  • No interference between outputs

Long-Term Stability Test

Burn-In Test

Run for 2-4 hours:

  1. Power from 12V supply
  2. Activate half the outputs (simulate riding at night)
  3. Cycle remaining outputs periodically
  4. Monitor:
    • Temperature stability
    • Voltage rails remain stable
    • No unexpected resets
    • Serial output shows no errors

What to Watch:

  • Thermal: Components reach steady-state temperature
  • Electrical: No voltage droops or fluctuations
  • Software: ESP32 runs without crashes or watchdog resets

Vibration Test (Optional)

If you have access to vibration test equipment:

  1. Secure Moto32 to vibrating surface
  2. Apply motorcycle-like vibration (10-50 Hz)
  3. Run functional tests during vibration
  4. Inspect solder joints after test

Protection Circuit Tests

Reverse Polarity Test

CAUTION: This test verifies protection but could damage the unit if protection fails. Use current-limited supply!
  1. Set power supply to 12V, 500mA limit
  2. Deliberately connect backwards (+ to GND, - to 12V)
  3. Expected: No damage, no power-up (D1 blocks reverse voltage)
  4. Disconnect, reconnect correctly
  5. Verify unit still functions normally

Overvoltage Test

  1. Gradually increase supply voltage: 12V → 14V → 16V
  2. Monitor 3.3V rail (should remain stable)
  3. At 16-18V, buck converter should regulate properly
  4. Do not exceed 20V (rated max for buck converter)

Short Circuit Output Test

Controlled Short: Use low-value resistor (1Ω) to simulate partial short, or direct short for brief moment.
  1. Activate one output
  2. Momentarily short output to GND (1-2 seconds)
  3. Expected: MOSFET may get hot, but should survive
  4. Remove short
  5. Verify output still functions

Note: MOSFETs can handle short circuits briefly. Prolonged shorts will overheat and potentially damage the device.

Final Validation Checklist

Before installation on motorcycle:

  • All 8 outputs tested and working
  • All inputs respond correctly
  • USB programming and serial communication working
  • 3.3V rail stable under all conditions
  • 12V input handling correct (9-16V range)
  • No unexpected resets or crashes
  • Thermal performance acceptable
  • Solder joints inspected and acceptable
  • Protection circuits verified
  • Firmware uploaded and tested
  • Documentation of pin assignments complete

Pass/Fail Criteria

PASS Criteria

All of the following must be true:

  • ✅ 3.3V rail: 3.15-3.45V under all conditions
  • ✅ All 8 outputs activate and deactivate correctly
  • ✅ Output voltage: >11.5V when ON (@1A load)
  • ✅ USB communication functional
  • ✅ ESP32 programs and runs reliably
  • ✅ No excessive heat (all <80°C under load)
  • ✅ Current draw reasonable (<200mA idle, <5A under full load)
  • ✅ No resets or crashes during testing
  • ✅ Reverse polarity protection works

FAIL Criteria (Do Not Install)

Any of these indicates a problem:

  • ❌ 3.3V rail out of spec or unstable
  • ❌ Any output not working
  • ❌ Excessive current draw (>500mA idle)
  • ❌ Components overheating (>90°C)
  • ❌ Random resets or crashes
  • ❌ USB communication fails
  • ❌ Shorts between power rails
  • ❌ Visible damage to components

If unit fails: Troubleshoot and repair before installation. See Troubleshooting Guide.

Test Documentation

Record Your Results

Create a test report:

Moto32 Unit Test Report
Date: [Date]
Unit Serial: [If you're tracking multiple units]

POWER TESTS:
☐ USB power-up: PASS/FAIL
☐ 3.3V rail voltage: _____V
☐ 12V operation: PASS/FAIL
☐ Current draw (idle): _____mA

OUTPUT TESTS:
☐ Output 1: PASS/FAIL, Voltage: _____V
☐ Output 2: PASS/FAIL, Voltage: _____V
[... continue for all 8]

FUNCTIONAL TESTS:
☐ Programming: PASS/FAIL
☐ Serial communication: PASS/FAIL
☐ Input response: PASS/FAIL
☐ Burn-in (2hrs): PASS/FAIL

FINAL: PASS/FAIL
Notes: [Any observations]

Next Steps

Motorcycle Installation

Install your tested unit on the bike

Troubleshooting

Fix any issues found during testing

Firmware Configuration

Customize for your motorcycle

All Tests Passed? Excellent! Your Moto32 is ready for installation on your motorcycle. Proceed with confidence!