- Ubuntu/Debian Linux (other distros should work with minor adjustments)
- USB cable to the Evilcrow's USB-A port
- Real
esptoolv4.7+ via pipx (the Ubuntu apt packageesptool4.7.0+dfsg is broken — strips stub flasher blobs):
sudo apt install -y pipx
pipx install esptool
pipx ensurepath
# Open a new terminal so PATH is refreshed / Abre nueva terminal
esptool version # Should report v4.7+ or v5.x- Your user needs access to
/dev/ttyUSB0. Either run withsudo, or add yourself to thedialoutgroup:
sudo usermod -aG dialout $USER
# Then logout/loginsudo esptool -p /dev/ttyUSB0 chip-idExpected for Evil Crow RF V2 / Esperado:
Chip is ESP32-PICO-D4 (revision v1.1)
If different, this guide may not apply directly / Si es distinto, esta guía puede no aplicar directamente.
Clone both repos:
cd ~
git clone https://github.com/joelsernamoreno/EvilCrowRF-V2.git
git clone https://github.com/DMFSouza/EvilCrowRF_HUN73R.0047.gitYou need:
- Bootloader:
EvilCrowRF-V2/compiled/firmware.ino.bootloader.bin - Partition table:
EvilCrowRF-V2/compiled/firmware.ino.partitions.bin - App (choose one):
- HUN73R (mobile UI, recommended):
EvilCrowRF_HUN73R.0047/Firmware/BETA_v2.5_EvilCrow-RFv2.ino.esp32.bin - v1.3.2 (desktop UI, fallback):
EvilCrowRF-V2/old-firmware/v1.3.2/EvilCrow-RFv2/EvilCrow-RFv2.ino.esp32.bin
- HUN73R (mobile UI, recommended):
Do NOT use EvilCrowRF-V2/compiled/firmware.ino.bin — it silently hangs on PICO-D4.
NO uses EvilCrowRF-V2/compiled/firmware.ino.bin — se cuelga silenciosamente en PICO-D4.
This wipes the flash and writes everything fresh / Esto borra el flash y escribe todo limpio:
APP=~/EvilCrowRF_HUN73R.0047/Firmware/BETA_v2.5_EvilCrow-RFv2.ino.esp32.bin
sudo esptool -p /dev/ttyUSB0 -b 460800 erase-flash
sudo esptool -p /dev/ttyUSB0 -b 460800 write-flash \
0x1000 ~/EvilCrowRF-V2/compiled/firmware.ino.bootloader.bin \
0x8000 ~/EvilCrowRF-V2/compiled/firmware.ino.partitions.bin \
0x10000 "$APP"Expected output ends with Hash of data verified. for each file, then Hard resetting via RTS pin....
Output esperado termina con Hash of data verified. por cada archivo, luego Hard resetting via RTS pin....
-
Open serial monitor / Abre monitor serie:
sudo picocom -b 115200 /dev/ttyUSB0
-
Press RESET on the board / Pulsa RESET en la placa.
-
You should see the boot banner. With HUN73R app, output may use a different baud after the boot banner — that's expected, ignore garbage characters.
-
Within ~5 seconds, the WiFi network
Evil Crow RF v2should appear on a phone. Password:123456789. -
Open
http://192.168.4.1in a mobile browser. The web panel should load.
# WRONG: erases bootloader, writes only app — bricks the device
esptool.py erase_flash
esptool.py write_flash 0x10000 some_app.bin# WRONG: writes app to wrong offset
esptool.py write_flash 0x0 some_app.bin# WRONG: uses Ubuntu apt esptool which is broken in 24.04 noble
sudo apt install esptool # Has missing stub flasher blobs (4.7.0+dfsg-0.1)- Always flash bootloader + partitions + app together as shown above.
- Use
pipx install esptool(proper PyPI version), not Ubuntu'sapt install esptool. - For recovery from unknown state:
erase-flashfirst, thenwrite-flashall three files.
If you have a previously-made read-flash dump of a working device, you can restore it as a single image at 0x0:
Si tienes un dump previo de un dispositivo funcional:
sudo esptool -p /dev/ttyUSB0 -b 460800 write-flash 0x0 dump.binThe dump must be exactly the flash size (0x400000 = 4 MB for PICO-D4).