Commit Graph

65 Commits

Author SHA1 Message Date
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
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 d957e276bd Fix daisy-chain MUX byte order: MUX1 (first 8 bits) → low byte/switches 0-7, MUX2 → high byte/switches 8-15 2026-06-23 22:49:59 +00:00
ash 9a56591453 Fix NUM_LEDS=10, NUM_BUTTONS=16 for 2 daisy-chained MUX boards. Fix pixel7 stuck blue (was only sending 8 LED data to 10-LED chain) 2026-06-23 22:43:53 +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 cc6cc2fa32 FIX SWAPPED PINS: GPIO 9 is 74HC165 data, GPIO 12 is WS2812C data. Product docs: DAT/LD/CLK = 74HC165, + WS2812C data. 2026-06-23 22:31:08 +00:00
ash 8d585e9c40 Fix RMT crash: use FASTLED_USES_ESP32S3_I2S to avoid broken RMT. Remove rmtled. 2026-06-23 22:29:25 +00:00
ash 6274ff4182 Add rmtled: direct RMT WS2812 driver via ESP-IDF API 2026-06-23 22:26:04 +00:00
ash 835e30b8b1 Add anim command to run FastLED animation from loop() 2026-06-23 22:24:28 +00:00
ash 943e9c02a4 Add gpio.h and esp_rom_sys.h includes for rawled 2026-06-23 14:48:15 +00:00
ash 715aca3365 Fix rawled: GRB RED={0x00,0xFF,0x00}, differentiate 0/1 bit timing 2026-06-23 14:47:48 +00:00
ash bec8025f0a Add rawled bit-bang command, restore FastLED 2026-06-23 14:39:46 +00:00
ash 6c678ce18a Add raw GPIO test command to diagnose pin connectivity 2026-06-23 14:35:15 +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 2931571880 Fix WS2812 color order to GRB (matching BMC) 2026-06-23 14:26:27 +00:00
ash 30b56a0b4c Match BMC protocol: 5µs delays, read DI before CLK, WS2812+RGB, power limit 2026-06-23 14:08:43 +00:00
ash 0db36a0129 Better MUX probe: 5 rounds, CLK before/after DI reads, single LED test 2026-06-23 14:01:51 +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 76dec0d359 Fix 74HC165 protocol: match RoxMux library polarity
Key difference from RoxMux (the library designed for this hardware):
- LD pin starts HIGH, pulses LOW->HIGH to latch (was inverted)
- Data pin is INPUT (not INPUT_PULLUP) - 10k pullups on MUX board
- bitWrite instead of manual bit shifting
2026-06-23 13:51:21 +00:00
ash 70097057fb Add hardware probe and single-pixel test commands
- probe: toggles LD/CLK, reads DI state at each step, tests single pixel
- pixel0/pixel1: single pixel at max brightness for testing
- Increased LD pulse timing to 20us
- Increased CLK timing to 2us
- NeoPixel brightness raised to 80
2026-06-23 13:45:37 +00:00