""" ESP32-C6 test: send JSON messages to Pico over UART (GPIO17). Settings use strips = [[pin, num_leds], ...]. Run with Pico connected on RX. Run with mpremote (from repo root): ./esp32/run_test_uart_json.sh # or mpremote run esp32/test/test_uart_send_json.py # or with port mpremote connect /dev/ttyUSB0 run esp32/test/test_uart_send_json.py """ import machine import time import json UART_TX_PIN = 17 UART_BAUD = 921600 LED_PIN = 15 def send_json(uart, obj): line = json.dumps(obj) + "\n" uart.write(line) print("TX:", line.strip()) def main(): uart = machine.UART(1, baudrate=UART_BAUD, tx=UART_TX_PIN) led = machine.Pin(LED_PIN, machine.Pin.OUT) # 1) Settings: one strip, pin 2, 10 LEDs (list of lists) send_json(uart, { "v": 1, "settings": { "strips": [[2, 10]], "brightness": 30, }, }) led.value(1) time.sleep(0.2) led.value(0) time.sleep(0.3) # 2) led-controller format: light + settings.color (hex) send_json(uart, {"light": "strip1", "settings": {"color": "#FF0000"}, "save": False}) time.sleep(0.5) # 3) led-controller format: light + settings.r,g,b send_json(uart, {"light": "strip1", "settings": {"r": 0, "g": 255, "b": 0}, "save": False}) time.sleep(0.5) # 4) led-controller format: blue (hex) send_json(uart, {"light": "strip1", "settings": {"color": "#0000FF"}, "save": False}) time.sleep(0.5) # 5) Off (existing format) send_json(uart, {"v": 1, "off": True}) time.sleep(0.3) print("Done. Pico: settings -> red (hex) -> green (r,g,b) -> blue (hex) -> off.") if __name__ == "__main__": main()