# SparkFun RedBoard Projects Arduino sketches for SparkFun RedBoard, built and uploaded via `arduino-build.sh`. ## Prerequisites - [arduino-cli](https://arduino.github.io/arduino-cli/) - Run `./arduino-build.sh --setup` once after installing ## Quick Start ```bash ./arduino-build.sh --devices # find your board ./arduino-build.sh --monitor ./blink # build, upload, serial console ``` ## Project Layout ``` sparkfun/ arduino-build.sh Build/upload/monitor tool (run --help) blink/ blink.ino LED blink + serial hello world ``` ## Two-Terminal Workflow ```bash # Terminal 1: persistent serial monitor ./arduino-build.sh --watch # Terminal 2: edit, build, upload (monitor reconnects automatically) ./arduino-build.sh ./blink ``` ## Adding a New Sketch ```bash mkdir my_sketch # Create my_sketch/my_sketch.ino (filename must match directory) ./arduino-build.sh --verify ./my_sketch # compile check ./arduino-build.sh ./my_sketch # build + upload ``` ## Troubleshooting ### Ubuntu: Board not detected (CH340 / RedBoard) On Ubuntu, `brltty` (a braille display daemon) may claim the CH340 USB-serial interface before the `ch341` kernel driver can bind to it. The board will appear in `lsusb` but no `/dev/ttyUSB*` device is created. Symptoms in `dmesg`: ``` usb 1-3.1.3: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1 ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0 ``` If you are not using a braille display, remove `brltty` entirely: ```bash sudo systemctl stop brltty-udev sudo systemctl disable brltty-udev sudo systemctl stop brltty sudo systemctl disable brltty sudo apt remove brltty ``` Alternatively, to keep `brltty` installed but block it from claiming CH340 devices, add a udev rule: ```bash sudo tee /etc/udev/rules.d/99-ch340-no-brltty.rules << 'EOF' SUBSYSTEM=="usb", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", ENV{BRLTTY_BRAILLE_DRIVER}="none" EOF sudo udevadm control --reload-rules sudo udevadm trigger ```