⚡ Based on ESP32 Marauder by justcallmekoko
This is a custom port adapted for the TwinWave module with
ESP32-PICO-V3-02chip. All credit for the original firmware goes to the Marauder project and its contributors.
📖 For complete project documentation, see the main README
| Property | Value |
|---|---|
| Base Firmware | ESP32 Marauder v1.12.1 |
| Target Chip | ESP32-PICO-V3-02 |
| Flash Size | 8MB |
| Framework | Arduino (PlatformIO) |
| Board Config | GENERIC_ESP32 |
Download the latest release: MARAUDER-vX.Y.Z-ESP32-PICO-V3-02.zip
The package contains:
bootloader.bin– ESP32 bootloaderfirmware.bin– Main firmware imagepartitions.bin– Partition table
Flash using esptool:
# Install esptool
pip install esptool
# Flash firmware (adjust port as needed)
esptool --chip esp32 --port /dev/cu.usbserial-0001 --baud 115200 write-flash -z \
0x1000 bootloader.bin \
0x8000 partitions.bin \
0x10000 firmware.binPort examples:
/dev/cu.usbserial-*(macOS),/dev/ttyUSB0(Linux),COM3(Windows)
- Install PlatformIO – VS Code extension or CLI
- Open this folder in VS Code with PlatformIO
- Connect USB-TTL adapter to the TwinWave GPIO pins (see pinout below)
- Enter flash mode – Hold BOOT, press RESET, release both
- Click Upload (→) in PlatformIO toolbar
Connect a USB-TTL adapter (CP2102, CH340, FT232) to the 10-pin header on the bottom of TwinWave PCB:
| TwinWave Pin | USB-TTL Adapter |
|---|---|
| Pin 1 (3V3) | VCC |
| Pin 3 (GND) | GND |
| Pin 5 (RX) | TX |
| Pin 6 (TX) | RX |
⚠️ Warning: Using 5V will permanently damage the ESP32!
- Hold BOOT button
- Press RESET button
- Release both buttons
- The module is now in flash mode
Key settings from platformio.ini:
platform = espressif32@5.2.0
board = esp32dev
framework = arduino
board_build.flash_mode = dio
board_build.partitions = default_8MB.csv
board_upload.flash_size = 8MB| Library | Version | Purpose |
|---|---|---|
| NimBLE-Arduino | ^1.4.1 | Bluetooth Low Energy |
| LinkedList | 0.0.0-alpha | Data structures |
| ESP32Ping | ^1.7 | Network diagnostics |
| AsyncTCP | latest | Async TCP connections |
| ESPAsyncWebServer | latest | Web server for Evil Portal |
| ArduinoJson | ^6.19.4 | JSON parsing |
| Adafruit MAX1704X | ^1.0.3 | Battery monitoring |
| MicroNMEA | ^2.0.6 | GPS parsing |
| EspSoftwareSerial | ^8.2.0 | Software serial communication |
- Ensure you're in flash mode (BOOT + RESET sequence)
- Check USB-TTL connections (TX↔RX crossed)
- Try lower baud rate:
upload_speed = 57600 - Verify correct serial port in
platformio.ini
- Check baud rate is 115200
- Verify TX/RX connections
- Try different USB-TTL adapter
- Run
pio pkg updateto update libraries - Clean build:
pio run -t clean - Check PlatformIO version compatibility
- Original Firmware: justcallmekoko – ESP32 Marauder
- Port/Adaptation: 0xM4R71N – ESP32-PICO-V3-02 adaptation
⚖️ This firmware is subject to the original ESP32 Marauder license. See the original repository for license terms.