224 lines
5.3 KiB
Markdown
224 lines
5.3 KiB
Markdown
|
|
# Installation Guide - D1 Mini Blinkin Emulator
|
||
|
|
|
||
|
|
## Two Ways to Install
|
||
|
|
|
||
|
|
### Option 1: PlatformIO (Recommended for VS Code Users)
|
||
|
|
|
||
|
|
#### Step 1: Install PlatformIO
|
||
|
|
1. Open VS Code
|
||
|
|
2. Go to Extensions (Ctrl+Shift+X)
|
||
|
|
3. Search for "PlatformIO IDE"
|
||
|
|
4. Click Install
|
||
|
|
5. Restart VS Code
|
||
|
|
|
||
|
|
#### Step 2: Open the Project
|
||
|
|
1. File → Open Folder
|
||
|
|
2. Select `KrakenKodersAllianceLights` folder
|
||
|
|
3. PlatformIO will auto-detect the project
|
||
|
|
|
||
|
|
#### Step 3: Install Libraries
|
||
|
|
The libraries should install automatically when you build. If not:
|
||
|
|
|
||
|
|
**Method A: Through PlatformIO Home**
|
||
|
|
1. Click PlatformIO icon in sidebar
|
||
|
|
2. Open "PIO Home" → Libraries
|
||
|
|
3. Search for "Adafruit NeoPixel"
|
||
|
|
4. Click "Add to Project"
|
||
|
|
5. Select your project
|
||
|
|
|
||
|
|
**Method B: Manual Command**
|
||
|
|
1. Open PlatformIO Terminal (bottom toolbar)
|
||
|
|
2. Run: `pio lib install "Adafruit NeoPixel"`
|
||
|
|
|
||
|
|
#### Step 4: Configure Your Settings
|
||
|
|
Edit `src/D1Mini_Blinkin_Ready.ino`:
|
||
|
|
```cpp
|
||
|
|
#define NUM_LEDS 60 // Your LED count
|
||
|
|
#define BRIGHTNESS 100 // 0-255
|
||
|
|
```
|
||
|
|
|
||
|
|
#### Step 5: Build and Upload
|
||
|
|
1. Connect D1 Mini via USB
|
||
|
|
2. Click checkmark (✓) to build
|
||
|
|
3. Click arrow (→) to upload
|
||
|
|
|
||
|
|
### Option 2: Arduino IDE (Simpler for Beginners)
|
||
|
|
|
||
|
|
#### Step 1: Install Arduino IDE
|
||
|
|
Download from: https://www.arduino.cc/en/software
|
||
|
|
|
||
|
|
#### Step 2: Add ESP8266 Board Support
|
||
|
|
1. Open Arduino IDE
|
||
|
|
2. File → Preferences
|
||
|
|
3. In "Additional Board Manager URLs" add:
|
||
|
|
```
|
||
|
|
http://arduino.esp8266.com/stable/package_esp8266com_index.json
|
||
|
|
```
|
||
|
|
4. Click OK
|
||
|
|
5. Tools → Board → Board Manager
|
||
|
|
6. Search "ESP8266"
|
||
|
|
7. Install "ESP8266 by ESP8266 Community"
|
||
|
|
|
||
|
|
#### Step 3: Install NeoPixel Library
|
||
|
|
1. Tools → Manage Libraries
|
||
|
|
2. Search "Adafruit NeoPixel"
|
||
|
|
3. Click Install
|
||
|
|
4. Also install any dependencies it asks for
|
||
|
|
|
||
|
|
#### Step 4: Open the Sketch
|
||
|
|
1. File → Open
|
||
|
|
2. Navigate to `D1Mini_Blinkin_Arduino.ino`
|
||
|
|
|
||
|
|
#### Step 5: Configure Board Settings
|
||
|
|
Tools menu:
|
||
|
|
- Board: "LOLIN(WEMOS) D1 R2 & mini"
|
||
|
|
- Upload Speed: 921600
|
||
|
|
- CPU Frequency: 80 MHz
|
||
|
|
- Flash Size: 4MB (FS:2MB OTA:~1019KB)
|
||
|
|
- Port: Select your COM port (appears when D1 Mini connected)
|
||
|
|
|
||
|
|
#### Step 6: Configure Your LEDs
|
||
|
|
Edit these lines in the code:
|
||
|
|
```cpp
|
||
|
|
#define NUM_LEDS 60 // Your LED count
|
||
|
|
#define BRIGHTNESS 100 // 0-255
|
||
|
|
```
|
||
|
|
|
||
|
|
#### Step 7: Upload
|
||
|
|
1. Connect D1 Mini via USB
|
||
|
|
2. Click Upload button (→)
|
||
|
|
3. Wait for "Done uploading"
|
||
|
|
|
||
|
|
## Troubleshooting
|
||
|
|
|
||
|
|
### PlatformIO Issues
|
||
|
|
|
||
|
|
**"Adafruit_NeoPixel.h not found"**
|
||
|
|
- Ensure platformio.ini contains:
|
||
|
|
```ini
|
||
|
|
lib_deps =
|
||
|
|
adafruit/Adafruit NeoPixel@^1.11.0
|
||
|
|
```
|
||
|
|
- Clean and rebuild: PlatformIO → Clean, then Build
|
||
|
|
|
||
|
|
**"Platform not installed"**
|
||
|
|
- Terminal: `pio platform install espressif8266`
|
||
|
|
|
||
|
|
**Wrong COM Port**
|
||
|
|
- Add to platformio.ini:
|
||
|
|
```ini
|
||
|
|
upload_port = COM3 ; Change to your port
|
||
|
|
monitor_port = COM3
|
||
|
|
```
|
||
|
|
|
||
|
|
### Arduino IDE Issues
|
||
|
|
|
||
|
|
**"Board not found"**
|
||
|
|
- Ensure ESP8266 package is installed
|
||
|
|
- Restart Arduino IDE
|
||
|
|
- Select correct board from Tools → Board menu
|
||
|
|
|
||
|
|
**"Port not showing"**
|
||
|
|
- Install CH340 drivers: https://sparks.gogo.co.nz/ch340.html
|
||
|
|
- Try different USB cable (data cable, not charge-only)
|
||
|
|
- Windows: Check Device Manager for COM port
|
||
|
|
|
||
|
|
**"Upload failed"**
|
||
|
|
- Hold FLASH button on D1 Mini while uploading starts
|
||
|
|
- Release after upload begins
|
||
|
|
- Try slower upload speed (115200)
|
||
|
|
|
||
|
|
### General Issues
|
||
|
|
|
||
|
|
**LEDs not working after upload**
|
||
|
|
- Check wiring (D4 → LED Data)
|
||
|
|
- Verify LED strip has power
|
||
|
|
- Test with Serial Monitor for debug output
|
||
|
|
- Check voltage divider if using servo port
|
||
|
|
|
||
|
|
**Wrong colors or flickering**
|
||
|
|
- Some LED strips are RGB instead of GRB
|
||
|
|
- Change in code:
|
||
|
|
```cpp
|
||
|
|
// From:
|
||
|
|
Adafruit_NeoPixel strip(NUM_LEDS, LED_DATA_PIN, NEO_GRB + NEO_KHZ800);
|
||
|
|
// To:
|
||
|
|
Adafruit_NeoPixel strip(NUM_LEDS, LED_DATA_PIN, NEO_RGB + NEO_KHZ800);
|
||
|
|
```
|
||
|
|
|
||
|
|
## Testing Your Installation
|
||
|
|
|
||
|
|
### Serial Monitor Test
|
||
|
|
1. Open Serial Monitor (115200 baud)
|
||
|
|
2. Should see:
|
||
|
|
```
|
||
|
|
D1 Mini Blinkin Emulator
|
||
|
|
Kraken Koders FTC Team
|
||
|
|
LEDs: 60
|
||
|
|
Ready!
|
||
|
|
```
|
||
|
|
|
||
|
|
### LED Test
|
||
|
|
1. LEDs should show green sweep on startup
|
||
|
|
2. Without PWM input, LEDs turn off
|
||
|
|
3. With PWM input, patterns change
|
||
|
|
|
||
|
|
### Simple Blink Test
|
||
|
|
Upload this minimal test first:
|
||
|
|
```cpp
|
||
|
|
#include <Adafruit_NeoPixel.h>
|
||
|
|
#define PIN 2 // D4
|
||
|
|
#define NUMPIXELS 10
|
||
|
|
|
||
|
|
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
|
||
|
|
|
||
|
|
void setup() {
|
||
|
|
pixels.begin();
|
||
|
|
pixels.setBrightness(50);
|
||
|
|
}
|
||
|
|
|
||
|
|
void loop() {
|
||
|
|
pixels.clear();
|
||
|
|
pixels.setPixelColor(0, pixels.Color(255, 0, 0));
|
||
|
|
pixels.show();
|
||
|
|
delay(500);
|
||
|
|
pixels.clear();
|
||
|
|
pixels.show();
|
||
|
|
delay(500);
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
## Next Steps
|
||
|
|
|
||
|
|
1. **Build the voltage divider** - See VOLTAGE_DIVIDER_BUILD_GUIDE.md
|
||
|
|
2. **Test with servo tester** - Verify PWM reading
|
||
|
|
3. **Connect to FTC robot** - Configure as servo device
|
||
|
|
4. **Customize patterns** - Add your team colors!
|
||
|
|
|
||
|
|
## Quick Command Reference
|
||
|
|
|
||
|
|
### PlatformIO Commands
|
||
|
|
```bash
|
||
|
|
pio run # Build
|
||
|
|
pio run -t upload # Upload
|
||
|
|
pio run -t clean # Clean
|
||
|
|
pio device monitor # Serial monitor
|
||
|
|
pio lib install "name" # Install library
|
||
|
|
```
|
||
|
|
|
||
|
|
### Arduino IDE Shortcuts
|
||
|
|
- Ctrl+R - Verify/Compile
|
||
|
|
- Ctrl+U - Upload
|
||
|
|
- Ctrl+Shift+M - Serial Monitor
|
||
|
|
- Ctrl+Shift+L - Library Manager
|
||
|
|
|
||
|
|
## Support
|
||
|
|
|
||
|
|
If you're still having issues:
|
||
|
|
1. Check all connections with multimeter
|
||
|
|
2. Try the simple blink test first
|
||
|
|
3. Enable DEBUG_MODE in code for more output
|
||
|
|
4. Verify voltage divider output is 2.5-3.3V
|
||
|
|
5. Test with different USB cable/port
|
||
|
|
|
||
|
|
Remember: The D1 Mini is 3.3V logic - never connect 5V directly to GPIO pins!
|