Initial commit: project docs and ignore rules

This commit is contained in:
Dr Jones
2026-05-03 23:18:34 -07:00
commit e80f4d72c5
7 changed files with 173 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
.DS_Store
*.swp
*~

58
FLASH_INSTRUCTIONS.md Normal file
View File

@@ -0,0 +1,58 @@
# ESP32-C6 Flashing Instructions
## Quick Flash (Once Device is Detected)
Run the automated script:
```bash
./flash_esp32c6.sh
```
Or manually specify the port:
```bash
./flash_esp32c6.sh /dev/cu.usbserial-XXXX
```
## Manual Flash Command
If you know the serial port, use this one-liner:
```bash
cd /Users/indianaholmessr/Documents/iamDEV/ai && \
/opt/homebrew/bin/esptool --chip esp32c6 --port /dev/cu.YOUR_PORT_HERE \
erase-flash && \
/opt/homebrew/bin/esptool --chip esp32c6 --port /dev/cu.YOUR_PORT_HERE \
write-flash 0x0 bootloader.bin 0x8000 partitions.bin 0x10000 firmware.bin
```
## Steps to Flash
1. **Connect ESP32-C6 via USB** to your Mac
2. **Put device in download mode:**
- Hold the **BOOT** button
- Press and release the **RESET** button
- Release the **BOOT** button
3. **Find the serial port:**
```bash
ls -1 /dev/cu.* | grep -v Bluetooth
```
Look for ports like `/dev/cu.usbserial-XXXX` or `/dev/cu.wchusbserialXXXX`
4. **Run the flash script:**
```bash
./flash_esp32c6.sh
```
## Memory Layout
- Bootloader: `0x0`
- Partition Table: `0x8000`
- Firmware: `0x10000`
## Troubleshooting
- **Device not detected**: Make sure it's in download mode (BOOT button sequence)
- **Port busy**: Close any serial monitor or other programs using the port
- **Permission denied**: You may need to add your user to the `dialout` group or use `sudo` (not recommended)

26
README.md Normal file
View File

@@ -0,0 +1,26 @@
# AI (ESP32-C6 firmware artifacts)
This folder holds **prebuilt ESP32-C6 images** and a small flash helper — useful for recovery or flashing without rebuilding from source.
| File | Role |
|------|------|
| `bootloader.bin` | Bootloader |
| `partitions.bin` | Partition table |
| `firmware.bin` | Application image |
| `flash_esp32c6.sh` | Convenience flash script |
| `FLASH_INSTRUCTIONS.md` | Step-by-step flashing |
## Flash
See `FLASH_INSTRUCTIONS.md`. Typical:
```bash
./flash_esp32c6.sh
# or pass serial port: ./flash_esp32c6.sh /dev/cu.usbserial-XXXX
```
Paths inside `FLASH_INSTRUCTIONS.md` may reference an old machine location; edit the script for your environment.
## Note
If you need reproducible builds, prefer checking in **source** from the corresponding xiaozhi / project tree elsewhere in this workspace and CI-building artifacts, rather than relying on blobs alone.

BIN
bootloader.bin Normal file

Binary file not shown.

BIN
firmware.bin Normal file

Binary file not shown.

86
flash_esp32c6.sh Executable file
View File

@@ -0,0 +1,86 @@
#!/bin/bash
# Flash script for ESP32-C6
# Usage: ./flash_esp32c6.sh [PORT]
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
# ESP32-C6 flash addresses
BOOTLOADER_ADDR=0x0
PARTITIONS_ADDR=0x8000
FIRMWARE_ADDR=0x10000
# Detect port if not provided
if [ -z "$1" ]; then
echo "Detecting ESP32-C6 serial port..."
# Try to detect by attempting chip-id on all available ports
for port in /dev/cu.* /dev/tty.*; do
[ -e "$port" ] || continue
# Skip Bluetooth and debug ports
echo "$port" | grep -qE "(Bluetooth|debug-console)" && continue
# Try to connect to this port
if /opt/homebrew/bin/esptool --chip esp32c6 --port "$port" chip-id >/dev/null 2>&1; then
PORT="$port"
break
fi
done
if [ -z "$PORT" ]; then
echo "ERROR: Could not auto-detect ESP32-C6 serial port."
echo ""
echo "Please:"
echo "1. Ensure the ESP32-C6 is plugged in via USB"
echo "2. Put the device in download mode:"
echo " - Hold BOOT button, press and release RESET, then release BOOT"
echo "3. Run this script with the port: ./flash_esp32c6.sh /dev/cu.usbserial-XXXX"
echo ""
echo "Available serial ports:"
ls -1 /dev/cu.* /dev/tty.* 2>/dev/null | grep -vE "(Bluetooth|debug-console)" || echo " (none found)"
exit 1
fi
echo "Detected port: $PORT"
else
PORT="$1"
fi
# Verify files exist
if [ ! -f "bootloader.bin" ] || [ ! -f "partitions.bin" ] || [ ! -f "firmware.bin" ]; then
echo "ERROR: Required firmware files not found!"
echo "Expected: bootloader.bin, partitions.bin, firmware.bin"
exit 1
fi
echo ""
echo "Flashing ESP32-C6 on $PORT..."
echo "=================================="
echo ""
# Erase flash
echo "Step 1: Erasing flash..."
/opt/homebrew/bin/esptool --chip esp32c6 --port "$PORT" erase-flash
# Flash bootloader
echo ""
echo "Step 2: Flashing bootloader..."
/opt/homebrew/bin/esptool --chip esp32c6 --port "$PORT" write-flash --force $BOOTLOADER_ADDR bootloader.bin
# Flash partitions
echo ""
echo "Step 3: Flashing partition table..."
/opt/homebrew/bin/esptool --chip esp32c6 --port "$PORT" write-flash --force $PARTITIONS_ADDR partitions.bin
# Flash firmware
echo ""
echo "Step 4: Flashing firmware..."
/opt/homebrew/bin/esptool --chip esp32c6 --port "$PORT" write-flash --force $FIRMWARE_ADDR firmware.bin
echo ""
echo "=================================="
echo "Flash completed successfully!"
echo ""
echo "The device will now boot with the new firmware."
echo "Press RESET button if needed."

BIN
partitions.bin Normal file

Binary file not shown.