Comprehensive Test Plan Development

1:47

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


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


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


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


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
287 days

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


  • Ground
    A common return path for electric current. Commonly known as ground.
  • Net Portal
    Wirelessly connects nets on schematic. Used to organize schematics and separate functional blocks. To wirelessly connect net portals, give them same designator. #portal
  • Power Net Portal
    Wirelessly connects power nets on schematic. Identical to the net portal, but with a power symbol. Used to organize schematics and separate functional blocks. To wirelessly connect power net portals, give them the same designator. #portal #power
  • Generic Resistor
    A generic fixed resistor ideal for rapid circuit topology development. Its footprint automatically adapts based on the selected package case code—supporting 0402, 0603, 0805, 1203, and many other standard SMD packages, as well as axial horizontal and vertical configurations. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard resistor values: 1.0 ohm, 10 ohm, 100 ohm, 1.0k ohm, 10k ohm, 100k ohm, 1.0M ohm 1.1 ohm, 11 ohm, 110 ohm, 1.1k ohm, 11k ohm, 110k ohm, 1.1M ohm 1.2 ohm, 12 ohm, 120 ohm, 1.2k ohm, 12k ohm, 120k ohm, 1.2M ohm 1.3 ohm, 13 ohm, 130 ohm, 1.3k ohm, 13k ohm, 130k ohm, 1.3M ohm 1.5 ohm, 15 ohm, 150 ohm, 1.5k ohm, 15k ohm, 150k ohm, 1.5M ohm 1.6 ohm, 16 ohm, 160 ohm, 1.6k ohm, 16k ohm, 160k ohm, 1.6M ohm 1.8 ohm, 18 ohm, 180 ohm, 1.8K ohm, 18k ohm, 180k ohm, 1.8M ohm 2.0 ohm, 20 ohm, 200 ohm, 2.0k ohm, 20k ohm, 200k ohm, 2.0M ohm 2.2 ohm, 22 ohm, 220 ohm, 2.2k ohm, 22k ohm, 220k ohm, 2.2M ohm 2.4 ohm, 24 ohm, 240 ohm, 2.4k ohm, 24k ohm, 240k ohm, 2.4M ohm 2.7 ohm, 27 ohm, 270 ohm, 2.7k ohm, 27k ohm, 270k ohm, 2.7M ohm 3.0 ohm, 30 ohm, 300 ohm, 3.0K ohm, 30K ohm, 300K ohm, 3.0M ohm 3.3 ohm, 33 ohm, 330 ohm, 3.3k ohm, 33k ohm, 330k ohm, 3.3M ohm 3.6 ohm, 36 ohm, 360 ohm, 3.6k ohm, 36k ohm, 360k ohm, 3.6M ohm 3.9 ohm, 39 ohm, 390 ohm, 3.9k ohm, 39k ohm, 390k ohm, 3.9M ohm 4.3 ohm, 43 ohm, 430 ohm, 4.3k ohm, 43K ohm, 430K ohm, 4.3M ohm 4.7 ohm, 47 ohm, 470 ohm, 4.7k ohm, 47k ohm, 470k ohm, 4.7M ohm 5.1 ohm, 51 ohm, 510 ohm, 5.1k ohm, 51k ohm, 510k ohm, 5.1M ohm 5.6 ohm, 56 ohm, 560 ohm, 5.6k ohm, 56k ohm, 560k ohm, 5.6M ohm 6.2 ohm, 62 ohm, 620 ohm, 6.2k ohm, 62K ohm, 620K ohm, 6.2M ohm 6.8 ohm, 68 ohm, 680 ohm, 6.8k ohm, 68k ohm, 680k ohm, 6.8M ohm 7.5 ohm, 75 ohm, 750 ohm, 7.5k ohm, 75k ohm, 750k ohm, 7.5M ohm 8.2 ohm, 82 ohm, 820 ohm, 8.2k ohm, 82k ohm, 820k ohm, 8.2M ohm 9.1 ohm, 91 ohm, 910 ohm, 9.1k ohm, 91k ohm, 910k ohm, 9.1M ohm #generics #CommonPartsLibrary
  • Generic Capacitor
    A generic fixed capacitor ideal for rapid circuit topology development. You can choose between polarized and non-polarized types, its symbol and the footprint will automatically adapt based on your selection. Supported options include standard SMD sizes for ceramic capacitors (e.g., 0402, 0603, 0805), SMD sizes for aluminum electrolytic capacitors, and through-hole footprints for polarized capacitors. Save precious design time by seamlessly add more information to this part (value, footprint, etc.) as it becomes available. Standard capacitor values: 1.0pF, 10pF, 100pF, 1000pF, 0.01uF, 0.1uF, 1.0uF, 10uF, 100uF, 1000uF, 10000uF 1.1pF, 11pF, 110pF, 1100pF 1.2pF, 12pF, 120pF, 1200pF 1.3pF, 13pF, 130pF, 1300pF 1.5pF, 15pF, 150pF, 1500pF, 0.015uF, 0.15uF, 1.5uF, 15uF, 150uF, 1500uF 1.6pF, 16pF, 160pF, 1600pF 1.8pF, 18pF, 180pF, 1800pF 2.0pF, 20pF, 200pF, 2000pF 2.2pF, 22pF, 220pF, 2200pF, 0.022uF, 0.22uF, 2.2uF, 22uF, 220uF, 2200uF 2.4pF, 24pF, 240pF, 2400pF 2.7pF, 27pF, 270pF, 2700pF 3.0pF, 30pF, 300pF, 3000pF 3.3pF, 33pF, 330pF, 3300pF, 0.033uF, 0.33uF, 3.3uF, 33uF, 330uF, 3300uF 3.6pF, 36pF, 360pF, 3600pF 3.9pF, 39pF, 390pF, 3900pF 4.3pF, 43pF, 430pF, 4300pF 4.7pF, 47pF, 470pF, 4700pF, 0.047uF, 0.47uF, 4.7uF, 47uF, 470uF, 4700uF 5.1pF, 51pF, 510pF, 5100pF 5.6pF, 56pF, 560pF, 5600pF 6.2pF, 62pF, 620pF, 6200pF 6.8pF, 68pF, 680pF, 6800pF, 0.068uF, 0.68uF, 6.8uF, 68uF, 680uF, 6800uF 7.5pF, 75pF, 750pF, 7500pF 8.2pF, 82pF, 820pF, 8200pF 9.1pF, 91pF, 910pF, 9100pF #generics #CommonPartsLibrary
  • Generic Inductor
    A generic fixed inductor suitable for rapid circuit topology development. The footprint automatically adapts based on the selected package, supporting standard SMD sizes (e.g., 0402, 0603, 0805) as well as well-known inductor packages such as SDR1806, PA4320, SRN6028, and SRR1260. Standard inductor values: 1.0 nH, 10 nH, 100 nH, 1.0 µH, 10 µH, 100 µH, 1.0 mH 1.2 nH, 12 nH, 120 nH, 1.2 µH, 12 µH, 120 µH, 1.2 mH 1.5 nH, 15 nH, 150 nH, 1.5 µH, 15 µH, 150 µH, 1.5 mH 1.8 nH, 18 nH, 180 nH, 1.8 µH, 18 µH, 180 µH, 1.8 mH 2.2 nH, 22 nH, 220 nH, 2.2 µH, 22 µH, 220 µH, 2.2 mH 2.7 nH, 27 nH, 270 nH, 2.7 µH, 27 µH, 270 µH, 2.7 mH 3.3 nH, 33 nH, 330 nH, 3.3 µH, 33 µH, 330 µH, 3.3 mH 3.9 nH, 39 nH, 390 nH, 3.9 µH, 39 µH, 390 µH, 3.9 mH 4.7 nH, 47 nH, 470 nH, 4.7 µH, 47 µH, 470 µH, 4.7 mH 5.6 nH, 56 nH, 560 nH, 5.6 µH, 56 µH, 560 µH, 5.6 mH 6.8 nH, 68 nH, 680 nH, 6.8 µH, 68 µH, 680 µH, 6.8 mH 8.2 nH, 82 nH, 820 nH, 8.2 µH, 82 µH, 820 µH, 8.2 mH #generics #CommonPartsLibrary
  • Terminal
    Terminal
    An electrical connector acting as reusable interface to a conductor and creating a point where external circuits can be connected.
  • RMCF0805JT47K0
    47 kOhms ±5% 0.125W, 1/8W Chip Resistor 0805 (2012 Metric) Automotive AEC-Q200 Thick Film #forLedBlink
  • 875105359001
    10uF Capacitor Aluminum Polymer 20% 16V SMD 5x5.3mm #forLedBlink #commonpartslibrary #capacitor #aluminumpolymer #radialcan
  • CTL1206FYW1T
    Yellow 595nm LED Indication - Discrete 1.7V 1206 (3216 Metric) #forLedBlink

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