Comprehensive Test Plan Development

Test Plan: ArduinoMicro‐MidiFreak 1. Scope & Objectives
Scope
Validate hardware, firmware, and interfaces of the ArduinoMicro‐MidiFreak MIDI controller, ensuring functional correctness, reliability, and robustness under expected operating conditions.
Objectives
  • Verify correct electrical behavior of power & signal lines.
  • Confirm sensor, encoder, button, and touch inputs register accurately.
  • Validate OLED display operation and UI navigation.
  • Ensure reliable USB MIDI and DIN‐MIDI (via J1).
  • Assess mechanical durability and thermal performance.
  • Identify and mitigate potential risks (ESD, EMI, overvoltage).

2. Test Environment & Setup
  • Test Bench
    • Bench power supply (5 V, 1 A)
    • USB host (PC with MIDI software)
    • DIN‐MIDI interface cable and MIDI instrument
    • Digital oscilloscope & logic analyzer
    • Environmental chamber (optional)
  • Fixtures & Tools
    • Custom jig for pluggable U1 module
    • Automated script (Python/Arduino) for exercise vectors
    • Temperature sensor probe for thermal tests

3. Automation Strategy
  • Firmware Test Harness:
    • Preprogrammed routines to send/receive MIDI, poll sensors, toggle LEDs.
    • Serial logging for pass/fail reporting.
  • Hardware‐in‐the‐Loop (HIL):
    • Use logic analyzer scripts to verify timings on I²C lines (OLED1, U2).
  • Regression Suite:
    • Automate electrical parameter checks (current draw, voltage rails).
    • Randomized input sequences to exercise edge cases.

4. Test Categories & Cases 4.1 Electrical Testing

Table


Test Case IDDescriptionExpected OutcomePass/Fail Criteria
ET-01Power‐on Rise Time: 5 V railRise time ≤ 100 msMeasured 500 mV overshoot
ET-05Level Shifter Operation: Gate of Q1/Q2Proper 3.3 V↔5 V translationLogic analyzer confirms correct levels
4.2 Thermal Testing

Table


Test Case IDDescriptionExpected OutcomePass/Fail Criteria
TT-01Operating at +50 °CNo malfunction; temperature rise ≤ +10 °CComponents 5 ms
MT-02Rotary Encoder: SW3 & SW4 20 k detentsAccurate detent count; no miscountsEncoder count error = 0%
MT-03USB Connector Durability≥ 500 mating cycles; no intermittent connectivityUSB still enumerates consistently
4.4 Environmental Testing

Table


Test Case IDDescriptionExpected OutcomePass/Fail Criteria
EV-01Humidity: 85% RH at 40 °CNo corrosion; normal operationFunctional pass after soak
EV-02ESD Immunity: ±8 kV contactNo latch-up; no data corruptionDevice still responsive; no reset
EV-03EMC EmissionsBelow CISPR‐22 Class B limitsMeasured emissions within spec
4.5 Communication & Interface Testing

Table


Test Case IDDescriptionExpected OutcomePass/Fail Criteria
CT-01USB MIDI EnumerationRecognized as MIDI deviceOS lists device without errors
CT-02DIN‐MIDI Output via J1Correct 31.25 kbps data streamLogic analyzer shows valid MIDI frames
CT-03OLED Display: I²C update at 60 HzNo flicker; full resolution contentVisual smoothness; no display artifacts
CT-04Proximity Sensor: U2 range testAccuracy within ±10 mm over 400 mm rangeMeasurement error ≤ ±10 mm

5. Edge Cases & Stress Tests
  • Brown-out: Rapid power dropout/recovery cycles.
  • High-speed Encoder Rotation: > 300 RPM continuous.
  • Maximum Touch Key Load: Simultaneous activation of all 12 capacitive pads.
  • Firmware Crash Recovery: Inject malformed MIDI from host.

6. Potential Risks & Mitigations
  • ESD Damage: Add TVS diode on input rails.
  • Thermal Overstress: Improve copper pours under high-power ICs.
  • Signal Crosstalk: Route high-speed nets away from analog sensors.
  • Firmware Deadlock: Implement watchdog timer.

7. Recommendations for Improved Coverage
  • Include automated hardware‐in‐loop for continuous integration.
  • Add power rail monitoring in‐circuit via ADC.
  • Instrument code coverage for firmware unit tests (e.g., touch/latest encoder library).
  • Plan periodic regression of environmental tests after firmware updates.

Pass/Fail Summary
All tests must report PASS under expected conditions. Any FAIL must be triaged and resolved before production release.
Automate measurements
Select ESD protection
Configure test reporting
Add vibration test
Fixture recommendations
explain this project.

@copilot explain this project.
1y
Sure! Let's break down this project, which is a MIDI controller using an Arduino Micro.
Overview
This project involves designing a USB MIDI controller using an Arduino Micro. The MIDI controller features the following:
  • A capacitive touch octave (12 keys)
  • Two rotary encoders
  • A button
  • A proximity sensor
Additionally, an OLED screen is used to display various configuration options. It can be set to any channel or Control Change (C.C.) value to modify the behavior of other instruments. The capacitive touch keys can also function as 12 drum machine pads.
Components and Their Roles Microcontroller
  • Arduino Micro (U1)
    • Handles the processing, MIDI communication, and interface with peripheral sensors and inputs.
Rotary Encoders
  • EC12D1564402 (SW3, SW4)
    • Two rotary encoders for adjusting parameters like volume, pitch, or other MIDI controls.
    • Pins: A, B, C for rotary signals, S1 and S2 for switch functions.
Capacitive Touch Keys
  • These touch keys are likely implemented using capacitive touch sensors connected to the Arduino Micro's input pins.
Proximity Sensor OLED Display
  • B08L7QW7SR (OLED1)
    • Displays configuration options and parameters.
    • Communicates with the microcontroller through I2C.
Resistors
  • Various resistors are used throughout the circuit to ensure proper functionality, signal integrity, and protection.
Capacitors
  • Capacitors like C2 are used for filtering and signal stability.
Power Management
  • The circuit includes nets for 5V and 3.3V power rails to supply various components.
  • GND nets are used to establish a common ground.
Connections
Here are some key connections:
  • OLED Display:
  • Rotary Encoder SW3:
    • A: Connect A to 7
    • C: Connect C to GND
    • B: Connect B to a net (e.g., B2)
    • S1: Connect S1 to 5(PWM)
    • S2: Connect S2 to GND
  • Proximity Sensor (VL53L1CX):
    • SCL: Connect SCL to SCL_3
    • SDA: Connect SDA to SDA_3
    • AVDD: Connect AVDD to 3.3V
Assumptions
  • The capacitive touch keys are connected to analog or digital pins on the Arduino Micro.
  • The code for handling the capacitive touch input, rotary encoder input, proximity sensor readings, and displaying on the OLED will be managed within the Arduino Micro.
  • The power distribution ensures that all components receive the required voltage levels.
Summary
The project integrates multiple input modalities (touch, rotary, proximity) and a display to create a versatile MIDI controller. The connectivity ensures sensible routes for signal and power, and the use of an Arduino Micro makes the project highly programmable and customizable.
Do you have any specific questions about any part of the project, or need clarification on a particular section?
1y
Someone is typing...
5
what is this?

what is this?
2y
Someone is typing...
2
please explain what N\_C does.

@copilot please explain what N_C does.
1y
Someone is typing...
6
explain this project.

make a voltage convertor power circuit
2y
@copilot explain this project.
2y
Someone is typing...
4
GND
SCL
SDA
J1


No results...

ArduinoMicro-MidiFreak

ArduinoMicro-MidiFreak thumbnail
Arduino Micro - MIDI Controller
It uses the Arduino Micro as USB midi controller. It has 1 capacitive touch octave (12 Keys), 2 rotary encoders, a button, and a proximity sensor that can be used as a mod wheel, sustain pedal or MPE.
The oled screen displays the different configuration options. It can be set to any channel or C.C. so it can be used to modify other instruments behavior. The capacitive touch keys can also be used as 12 drum machine pads.

Properties

Properties describe core aspects of the project.

Pricing & Availability

Distributor

Qty 1

Digi-Key

$10.79–$24.09

LCSC

$13.49–$13.62

Mouser

$27.22

Controls