# SD Card Setup Instructions for HannaBox

## Required Directory Structure

Your SD card must have the following directory structure for the HannaBox to work properly:

```
SD Card Root/
├── system/
│   ├── style.css          (Web interface CSS - copy from web/style.css)
│   ├── script.js          (Web interface JavaScript - copy from web/script.js)
|   ├── index.html         (homepage - copy from web/index.html)
│   ├── start.mp3          (Startup sound)
│   └── sleep.mp3          (Sleep sound)
├── [your music folders]/
└── [your music files]/
```

## Setup Steps

1. **Format your SD card** (FAT32 recommended)

2. **Create the system directory**:
   - Create a folder named `system` in the root of your SD card

3. **Copy the web interface files**:
   - Copy the file `web/style.css` from this project to `system/style.css` on your SD card
   - Copy the file `web/script.js` from this project to `system/script.js` on your SD card
   - Copy the file `web/index.html` from this project to `system/index.html` on your SD card
   - These files contain all the styling and functionality for the web interface

4. **Add sound files** (optional):
   - Copy `sounds/start.mp3` to `system/start.mp3` on your SD card (startup sound)
   - Copy `sounds/sleep.mp3` to `system/sleep.mp3` on your SD card (sleep sound)

5. **Add your music**:
   - Copy your MP3 files and folders to the root of the SD card
   - The HannaBox will automatically scan and build a directory tree

## Memory Optimization

By moving the CSS and JavaScript files to the SD card, we've freed up approximately **7-8KB of flash memory** on the ESP32. The web interface will now:

- Serve CSS and JavaScript directly from the SD card
- Fall back to minimal functionality if files are missing
- Maintain all functionality while using significantly less flash memory

## Troubleshooting

- **Web interface has no styling**: Check that `system/style.css` exists on your SD card
- **Web interface not working properly**: Check that `system/script.js` exists on your SD card
- **SD card not detected**: Ensure the SD card is properly formatted (FAT32) and inserted
- **Files not loading**: Verify the file paths are exactly `/system/style.css` and `/system/script.js` (case sensitive)

## File Locations

- **Source files**: `web/style.css` and `web/script.js` (in this project)
- **Target locations**: `system/style.css` and `system/script.js` (on SD card)
- **Fallbacks**: Minimal CSS and JavaScript if files are missing
