ash
62d1e430d5
Switch from NimBLE-Arduino to ESP32-BLE-MIDI library
...
Replace direct NimBLE-Arduino dependency with max22/ESP32-BLE-MIDI
wrapper library (v0.3.2). Rewrite ble_midi_transport to use
BLEMidiServer API instead of raw NimBLEDevice calls.
Removes patch_nimble_device() from pre_build.py — no longer needed
since BT controller init is managed by the library internally.
The library uses NimBLE v1.4.1 internally and configures advertising
without setScanResponse() or setName(), which may resolve the invisible
BLE advertising issue on ESP32-S3.
2026-07-01 06:34:36 +00:00
ash
855c97d8c6
revert to NimBLE-Arduino v1.4.0 (v2.2.3 caused button crash regression); restore v1.4.0 callback signatures, service->start(), and setScanResponse
2026-07-01 04:47:22 +00:00
ash
18844c17c0
upgrade NimBLE-Arduino to v2.2.3 for proper ESP32-S3 support; fix setScanResponse->enableScanResponse API change
2026-07-01 04:27:22 +00:00
ash
7530772acd
add adv->setName, remove diagnostics and ext adv flag; revert to stable
2026-07-01 04:18:00 +00:00
ash
2d3a5a9031
queue MIDI sends with delay(1) to avoid race; force legacy advertising
2026-06-30 21:59:55 +00:00
ash
323bc072ee
fix: remove redundant ROLE defines from pre_build.py, suppress -Wno-macro-redefined
2026-06-30 07:09:15 +00:00
ash
2db09b76bf
Add BT controller diagnostics, init BLE before USB MIDI
2026-06-30 06:43:58 +00:00
ash
8a36296043
Add sdkconfig.defaults for BLE, remove bad CONFIG flags, increase stack
2026-06-30 06:36:40 +00:00
ash
f5eca2c7bc
Switch to NimBLE stack, add BT build flags, add error checking
2026-06-30 06:24:19 +00:00
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