KrakenKodersLights/INSTALLATION_GUIDE.md

5.3 KiB

Installation Guide - D1 Mini Blinkin Emulator

Two Ways to Install

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:

#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:

#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:
    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:
    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"

"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:
    // 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

Upload this minimal test first:

#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

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!