Commit Graph

34 Commits

Author SHA1 Message Date
ash c02121cd09 Add pre-build script to patch core's pins_arduino.h with Launchpad X VID/PID
- pre_build.py patches framework-arduinoespressif32/variants/esp32s3_devkitc/pins_arduino.h
- Replaces USB_VID 0x303a -> 0x1235, USB_PID 0x1001 -> 0x0103
- Adds USB_MANUFACTURER/PRODUCT
2026-06-25 22:21:51 +00:00
ash 109106f1f1 Add custom pins_arduino.h variant with Launchpad X VID/PID
- variants/esp32s3/pins_arduino.h overrides USB_VID/USB_PID
- Included via -I in build_flags before core variant
- This should force USB descriptors at hardware level
2026-06-25 22:03:15 +00:00
ash 75f583b3c4 Revert to standard board, try VID/PID via board_build.arduino.vid/pid 2026-06-25 10:57:12 +00:00
ash b380133b3e Add custom board definition with Launchpad X VID/PID (0x1235/0x0103)
- boards/launchpad_x_variant.json defines custom board
- platformio.ini uses custom board
- Board sets VID/PID at hardware level
2026-06-25 08:27:47 +00:00
ash 25713707aa Revert to working USB mode (ARDUINO_USB_MODE=0 + CDC) 2026-06-25 08:20:19 +00:00
ash 7558082e7b Try ARDUINO_USB_MODE=2 (native MIDI only)
Disable CDC, use ESP32 core native USB MIDI stack
2026-06-25 08:12:07 +00:00
ash 0d738a6e5e Fix compilation: add flash_sysex to interface + remove conflicting build flags 2026-06-25 07:40:10 +00:00
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 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 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 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 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 c737849a96 Fix build: add Adafruit_TinyUSB.h include in main.cpp, add build_unflags to prevent ARDUINO_USB_MODE redefinition warning 2026-06-23 23:12:42 +00:00
ash a3e86d0ddf Fix USB MIDI enumeration: switch from ARDUINO_USB_MODE=1 to 0 (matches working Adafruit TinyUSB example), add explicit TinyUSBDevice.begin(0) and detach/attach re-enumeration, remove conflicting tusb_config.h 2026-06-23 23:10:20 +00:00
ash be36ba9bf4 Remove broken I2S define, revert to default RMT + correct pin 12 2026-06-23 22:37:03 +00:00
ash 2b689f3b18 Move FASTLED_USES_ESP32S3_I2S to build_flags so FastLED .cpp files compile with it 2026-06-23 22:32:31 +00:00
ash bec8025f0a Add rawled bit-bang command, restore FastLED 2026-06-23 14:39:46 +00:00
ash 5f2ad9ef91 Switch from FastLED to Adafruit NeoPixel (more reliable on ESP32-S3 RMT) 2026-06-23 14:32:19 +00:00
ash 5de4de4f1a Switch from NeoPixel to FastLED for ESP32-S3 LED reliability
FastLED has better ESP32 support and handles timing/RMT properly.
- Use CRGB array instead of Adafruit_NeoPixel
- FastLED.show() is more reliable on ESP32-S3
- probe command now tests all LEDs at max brightness
2026-06-23 13:56:05 +00:00
ash 07e5cd8994 Rewrite MUX: WS2812C LEDs (NeoPixel) + 74HC165 buttons
PixelStomp MUX uses:
- WS2812C LEDs: one data line via DAT (GPIO 9), NeoPixel protocol
- 74HC165 shift register: LD/CLK/DI for reading 8 button states

Changes:
- Use Adafruit NeoPixel library for LED control
- Proper 74HC165 parallel-load shift-in for buttons
- 8 switches + 8 LEDs (was incorrectly 10)
- Diagnostic commands: dump, ledtest, red, green, blue, read
2026-06-23 13:38:51 +00:00
ash 81cd2b41fd Remove fixed monitor_port, let PlatformIO auto-detect 2026-06-23 13:30:06 +00:00
ash f51df7e660 Fix board ID back to esp32-s3-devkitc-1 2026-06-23 13:28:32 +00:00
ash c94be67384 Fix for ESP32-S3-WROOM-1: safe GPIO pins, serial flush, delays
- Switch pins: 2-7, 15-18 (avoids USB 19/20, PSRAM 26-32, JTAG 34-37)
- LED pins: 38-42, 45-48, 21 (high GPIOs, no special functions)
- Add Serial.flush() after init messages
- Increase startup delays for reliable serial output
- Board: esp32-s3-devkitc-1-n16r8
2026-06-23 13:22:49 +00:00
ash 22572b9baa Fix Adafruit TinyUSB API: TinyUSBDevice, writePacket, mounted() 2026-06-23 13:12:32 +00:00
ash 987288fd41 Fix USB MIDI: use Adafruit TinyUSB Library for proper MIDI support
- Add Adafruit TinyUSB Library dependency
- Create tusb_config.h enabling MIDI class
- USB device named 'Loopy Foot Controller'
- is_connected() check before sending
2026-06-23 13:10:25 +00:00
ash 4d81386f78 Fix USB MIDI, add LED startup animation, improve logging
- Use ArduinoUSBMIDI library for proper USB MIDI device recognition
- Add LED startup colour cycle (red, green, blue, yellow, magenta, cyan, white)
- Add comprehensive console logging for all MIDI in/out and switch events
- Log unmapped MIDI messages
2026-06-23 13:06:57 +00:00
ash c1b163c8b8 Fix MIDI transport: use TinyUSB directly instead of non-existent USBMIDI.h 2026-06-23 13:00:39 +00:00
ash 9078001404 Convert to PlatformIO/Arduino format
- Replace ESP-IDF structure with PlatformIO (platformio.ini)
- Move source files to src/ and include/
- Move libraries to lib/ directory
- Replace FreeRTOS with Arduino task/vTaskDelay
- Use Arduino MIDI library instead of raw TinyUSB
- Dual-core: MIDI on core 0, controller on core 1
2026-06-23 12:55:12 +00:00