Quick Start Guide¶
Get Espilon up and running in minutes with this quick start guide.
Prerequisites¶
Before you begin, ensure you have:
- ESP32 development board (DevKit, LilyGO T-Call, or ESP32-CAM)
- USB cable (data-capable)
- Computer running Linux, macOS, or Windows (WSL2)
- Python 3.8 or newer
- Git
Installation Steps¶
1. Install ESP-IDF¶
# Install dependencies
sudo apt-get update
sudo apt-get install git wget flex bison gperf python3 \
python3-pip python3-venv cmake ninja-build ccache \
libffi-dev libssl-dev dfu-util libusb-1.0-0
# Clone ESP-IDF
mkdir -p ~/esp
cd ~/esp
git clone --recursive -b v5.3.2 \
https://github.com/espressif/esp-idf.git
# Install toolchain
cd esp-idf
./install.sh esp32
# Set up environment
. ./export.sh
# Install Homebrew
/bin/bash -c "$(curl -fsSL \
https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install dependencies
brew install cmake ninja ccache dfu-util python3
# Clone and install ESP-IDF
mkdir -p ~/esp
cd ~/esp
git clone --recursive -b v5.3.2 \
https://github.com/espressif/esp-idf.git
cd esp-idf
./install.sh esp32
. ./export.sh
2. Clone Espilon¶
3. Configure Firmware¶
Essential Configuration¶
Navigate through the menu and configure:
Change Default Keys
Generate secure keys before deployment:
4. Build and Flash¶
# Build firmware
idf.py build
# Flash to device (replace port if needed)
idf.py -p /dev/ttyUSB0 flash
# Monitor serial output
idf.py monitor
5. Start C2 Server¶
In a new terminal:
cd ~/epsilon/tools/c2
# Install dependencies
pip3 install -r requirements.txt
# Start server
python3 c3po.py --port 2626
Expected output:
6. Verify Connection¶
Once the ESP32 boots, you should see in the C2 server:
List connected devices:
First Commands¶
Try these basic commands:
# Check device uptime
c3po> send ce4f626b system_uptime
# Check memory
c3po> send ce4f626b system_mem
# Ping test
c3po> send ce4f626b ping 8.8.8.8 5
# Scan network
c3po> send ce4f626b arp_scan 192.168.1.0/24
Common Issues¶
Device Won't Flash¶
Permission denied on /dev/ttyUSB0
Failed to connect to ESP32
Put device in download mode:
- Hold BOOT button
- Press RESET button
- Release RESET
- Release BOOT
- Try flashing again
WiFi Won't Connect¶
Wrong credentials
- Verify SSID and password in menuconfig
- Ensure 2.4GHz network (ESP32 doesn't support 5GHz)
Hidden SSID
Hidden SSIDs require additional configuration not enabled by default
C2 Won't Connect¶
Can't reach C2 server
- Check firewall allows port 2626
- Verify C2 IP address is reachable from ESP32
- Ensure C2 server is running
Decryption errors
- Verify encryption keys match between firmware and C2
- Keys must be EXACTLY 32 bytes (key) and 12 bytes (nonce)
Next Steps¶
Now that Espilon is running:
-
Explore Modules
Learn about available commands and modules
-
Hardware Setup
Configure additional hardware (GPRS, Camera)
-
Try Examples
Follow practical examples and use cases
-
Security Review
Understand security best practices
Getting Help¶
Need assistance?
- Check the Troubleshooting Guide
- Read the FAQ
- Ask in GitHub Discussions
- Report bugs in GitHub Issues
Congratulations! You now have a working Espilon installation.