Commit Graph

86 Commits

Author SHA1 Message Date
ash 399c4341ed Add VID/PID to build flags for ESP32 core + stronger visual indicators
- Set USB VID/PID via ESP32 core build flags (may work better than TinyUSB API)
- Heartbeat on LED 9 (amber pulse every 2s) confirms device is alive
- SysEx flashes ALL LEDs white for 200ms
- Regular MIDI flashes LED 0 white for 50ms
2026-06-25 07:33:12 +00:00
ash b5bbe24977 Add SysEx handling for Launchpad X Programmer mode
- Parse all SysEx CIN types (start, continue, end)
- Reassemble multi-packet SysEx messages
- Handle layout select (Programmer mode = 0x7F)
- Handle Programmer/Live mode switch
2026-06-25 07:20:47 +00:00
ash 8d859ce0af Fix: use setID(vid, pid) not setVID/setPID 2026-06-25 06:53:02 +00:00
ash edb86bf49a Spoof Novation Launchpad X USB VID/PID
Change USB device descriptor to VID 0x1235 PID 0x0103
so Loopy Pro recognizes the device as a Launchpad X
and sends LED control MIDI in Launchpad mode.
2026-06-25 06:51:39 +00:00
ash 500720dadf Add visual MIDI activity indicator
Flash LED 0 white for 30ms on any MIDI input.
Visible without serial - helps diagnose whether MIDI
is arriving when connected to iPad with Loopy Pro.
2026-06-25 06:43:00 +00:00
ash 40dfe775ea Fix Launchpad mode MIDI receive and color palette
- Fixed note matching bug: removed channel check so notes 36-45 match
  across channels 1-3 (Launchpad static/flashing/pulsing)
- Simplified LED lookup to match by note only (channel stored for mode)
- Replaced sparse palette with proper RGB gradients between key
  breakpoints (Red, Orange, Yellow, Green, Cyan, Blue, Purple, Off)
2026-06-25 06:31:16 +00:00
ash fee8ab5b94 Focus on Launchpad X mode: NOTE 36-45 ch1-3, send NOTE_ON/OFF for buttons 2026-06-24 06:43:16 +00:00
ash 4f6ff39af4 Add run_palette_test() declaration to header 2026-06-24 06:32:57 +00:00
ash 6aa3579317 Add palette test mode (hold pad 0+9 for 2s), comprehensive MIDI handling 2026-06-24 06:29:08 +00:00
ash 840bcf9a1e Fix MidiEvent::SYSTEM -> SYSEX 2026-06-24 06:23:42 +00:00
ash 37c6e66584 Add visual MIDI activity indicator (flashes pad 0 on any MIDI receive) 2026-06-24 06:03:27 +00:00
ash 296611ce52 Send CC2-11 for button presses (match Loopy Pro) 2026-06-24 05:58:10 +00:00
ash b5a1710ebd Map CC 2-11 to pads 0-9 for Loopy Pro LED feedback 2026-06-24 05:56:58 +00:00
ash 550fb7616e Add CC (Control Change) handling for Loopy Pro LED control 2026-06-24 05:52:21 +00:00
ash 0e5cbeb73d Clean up: remove boot layout test (Launchpad X mapping confirmed working) 2026-06-24 05:47:09 +00:00
ash e2997a595d Simplify boot layout test to single quick pass (Launchpad X only) 2026-06-24 05:39:39 +00:00
ash 5df74b28e2 Add run_layout_test() declaration to header 2026-06-24 05:32:49 +00:00
ash 26c86be7ea Add boot-time layout test (no serial input needed) 2026-06-24 04:33:02 +00:00
ash 83e9e29520 Add padtest command - tests each pad individually with 3s delay 2026-06-24 04:22:34 +00:00
ash 6ec306bbf7 Replace delay() with vTaskDelay() in miditest to avoid watchdog reset 2026-06-24 04:05:25 +00:00
ash 6c64c91e55 Add miditest and mapping commands for LED layout debugging 2026-06-24 03:56:30 +00:00
ash e5e546ed39 Update pad_mapping to Launchpad X standard notes 36-45 (C2-A2) on channel 1 2026-06-24 03:37:29 +00:00
ash 7f061aecbf Fix palette to 128 entries (3 purple at end) 2026-06-24 03:20:40 +00:00
ash efaec9df71 Fix palette to exactly 128 entries (0-127) 2026-06-24 03:16:50 +00:00
ash 6503799875 Fix palette array size (128) and remove duplicate clear_all() 2026-06-24 01:41:14 +00:00
ash bd20d1938b Fix duplicate set_led_state, add set_led_brightness to interface 2026-06-24 01:28:56 +00:00
ash b2d726a953 Add Launchpad X velocity->color palette and matching startup animation 2026-06-24 01:25:45 +00:00
ash 2eced5c007 Add debug logging for incoming MIDI events 2026-06-24 01:07:00 +00:00
ash ec0834ed48 Remove isInitialized() check - not in v3.1.0 API 2026-06-24 00:56:44 +00:00
ash 9c95225a37 Back to Adafruit TinyUSB Library v3.1.0 with full init ownership (no USE_TINYUSB=1 conflict) 2026-06-24 00:53:13 +00:00
ash 65d8120abb Fix USB diagnostic command to use native USB API 2026-06-24 00:47:00 +00:00
ash 10f5117a15 Try USB.h only for USB MIDI 2026-06-24 00:45:53 +00:00
ash 7d44a9407d Remove esp32/USB from lib_deps - built into ESP32 Arduino core 2026-06-24 00:42:38 +00:00
ash c1a78db7f1 Add ESP32 USB built-in library, remove Adafruit_TinyUSB.h include from main.cpp 2026-06-24 00:38:24 +00:00
ash e4f348db66 Fix duplicate monitor_speed in platformio.ini 2026-06-24 00:33:51 +00:00
ash 9fd0231b48 Switch to ESP32 Arduino core native USB MIDI API (USB.h + USBMIDI.h), remove Adafruit TinyUSB dependency 2026-06-24 00:31:15 +00:00
ash 9ebd568b9c Add detach/attach re-enumeration after MIDI interface added 2026-06-24 00:20:45 +00:00
ash 5fdf45aa14 Pin Adafruit TinyUSB Library to 3.1.0 (older, compatible with ESP32 core TinyUSB) 2026-06-24 00:14:59 +00:00
ash d5b0daf018 Pin Adafruit TinyUSB to v3.0.0 exactly, restore DCD (no deletion), keep --allow-multiple-definition 2026-06-24 00:08:36 +00:00
ash 39a052d7da Pin Adafruit TinyUSB to <3.0.0 (older TinyUSB compatible with ESP32 core). Remove dcd_stubs. 2026-06-23 23:51:49 +00:00
ash 9d350621fc Use os.remove instead of rename for DCD deletion 2026-06-23 23:44:40 +00:00
ash f4e7e6a64c Delete Adafruit's DCD, add stubs for missing DCD functions, use ESP32 core DCD 2026-06-23 23:44:30 +00:00
ash 12b0d3c2c5 Restore Adafruit's DCD: ESP32 core's DCD too old, missing dcd_sof_enable etc 2026-06-23 23:35:18 +00:00
ash 66592dc33e Delete Adafruit's generic dcd_dwc2.c so ESP32 core's patched DCD is used 2026-06-23 23:33:51 +00:00
ash bb5f992ccb Revert to --allow-multiple-definition: Adafruit v3.7.7 needs its own TinyUSB core files (newer API than lib in esp32 core) 2026-06-23 23:26:02 +00:00
ash 9379d0c0eb Fix build: remove TinyUSBDevice.idVendor/idProduct (API doesn't exist) 2026-06-23 23:24:23 +00:00
ash 8bbf572414 Fix crash/reboot: remove conflicting TinyUSB core sources from Adafruit lib instead of allow-multiple-definition 2026-06-23 23:23:40 +00:00
ash 9ea09d52fe Add extra_script.py to pass -Wl,--allow-multiple-definition to linker for duplicate TinyUSB symbol fix 2026-06-23 23:18:34 +00:00
ash dbb66e1e77 Fix duplicate TinyUSB symbols: add lib_archive=no (prevents Adafruit library archiving, changes link order so local .o defines symbols before libarduino_tinyusb.a) 2026-06-23 23:14:51 +00:00
ash cdfac43bfe Fix usb command: remove non-existent getter methods, use only mounted() and ready() 2026-06-23 23:13:28 +00:00