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.
2y
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?
2y
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
SW3
A2
5V
N_D
A1
3_3V
N_C#
GND
N_C
N_D#
A2
B2
SDA_3
3_3V
N_E
5V
B1
SDA
SW4
RSW_2
5V
RSW_1
3_3V
SCL
N_F
GND
SDA
SCL_3
SCL
5V
GND
N_C#
B2
B1
3_3V
RSW_2
SDA
GND
5V
A1
3_3V
SCL
N_F
GND
5V
N_D
N_C
RSW_1
5V
SCL_3
GND
3_3V
N_D#
SDA_3
5V
N_E
R24
Resistance
1MΩ
C2
Capacitance
4.7uF
OLED1
R27
Resistance
50KΩ
R16
Resistance
1MΩ
R21
Resistance
1MΩ
R34
Resistance
10KΩ
R7
Resistance
100 Ω
R4
Resistance
100 Ω
Q2
NOTE_A#
R28
Resistance
50KΩ
R25
Resistance
50KΩ
R8
Resistance
100 Ω
NOTE_G
R13
Resistance
1MΩ
NOTE_C
NOTE_C#
R12
Resistance
100 Ω
R11
Resistance
100 Ω
R23
Resistance
1MΩ
R30
Resistance
10KΩ
NOTE_D#
R29
Resistance
10KΩ
R26
Resistance
50KΩ
R20
Resistance
1MΩ
R36
Resistance
10KΩ
R5
Resistance
100 Ω
R9
Resistance
100 Ω
R22
Resistance
1MΩ
C1
Capacitance
100nF
R2
Resistance
100 Ω
Q1
R17
Resistance
1MΩ
R15
Resistance
1MΩ
NOTE_F
NOTE_D
NOTE_A
NOTE_E
R33
Resistance
10KΩ
R6
Resistance
100 Ω
R14
Resistance
1MΩ
NOTE_G#
R35
Resistance
10KΩ
R31
Resistance
3.6KΩ
R1
Resistance
100 Ω
NOTE_F#
R18
Resistance
1MΩ
NOTE_B
R32
Resistance
3.6KΩ
R19
Resistance
1MΩ
R10
Resistance
100 Ω
R3
Resistance
100 Ω
3_3V
U2
U1
J1
5V
SW2

No files yet

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    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