Broadcast your social media handles via WiFi and Bluetooth.
Multiple networks appear simultaneously for maximum visibility.
Installation · Configuration · Usage · Contributing
- ESP32 DevKit V1 (or compatible)
- USB cable for programming
- Optional: Battery pack for portable use
git clone https://github.com/yourusername/netsocialize.git
cd netsocialize
pio run --target upload1. Install ESP32 board support
File → Preferences → Additional Board Manager URLs:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
2. Install ESP32 boards
Tools → Board → Boards Manager → Search "ESP32" → Install
3. Install BLE library
Sketch → Include Library → Manage Libraries → Search "ESP32 BLE Arduino" → Install
4. Select your board
Tools → Board → ESP32 Arduino → DOIT ESP32 DEVKIT V1
5. Configure partition scheme (IMPORTANT)
Tools → Partition Scheme → Huge APP (3MB No OTA/1MB SPIFFS)
Edit include/config.h with your information:
#define ENABLE_MULTI_SSID true // Multiple networks visible
#define ENABLE_CHANNEL_HOPPING true // Better coverage
#define ENABLE_BLE_ROTATION true // BLE cycles through handlesOnly add platforms you use - leave others empty:
#define X_HANDLE "yourhandle"
#define INSTAGRAM_HANDLE "yourhandle"
#define TIKTOK_HANDLE ""
#define YOUTUBE_HANDLE "yourchannel"
#define GITHUB_HANDLE "yourusername"
#define WEBSITE_URL "yoursite.com"
#define DISCORD_HANDLE "user#1234"
#define LINKEDIN_HANDLE "yourprofile"
#define TWITCH_HANDLE "yourchannel"
#define CUSTOM_MESSAGE ""When enabled, WiFi scans will show:
X: @yourhandle
IG: @yourhandle
GH: yourusername
Web: yoursite.com
- Configure your handles in
include/config.h - Upload to ESP32
- Open Serial Monitor (115200 baud)
- Watch for "[OK] Broadcasting started" message
- Scan WiFi on your phone - you'll see all your networks
=====================================
NetSocialize v2.1
Multi-Network Broadcaster
=====================================
Broadcasting 3 networks:
[1] X: @yourhandle
[2] GH: yourusername
[3] Web: yoursite.com
Configuration:
Multi-SSID: ON
Channel Hop: ON
BLE Rotation: ON
SSID Interval: 350ms
Channel Interval: 10000ms
[WiFi] Initializing...
[WiFi] Started on channel 1
[BLE] Initializing...
[BLE] Active
[OK] Broadcasting started
All networks will appear in WiFi list
========== Status ==========
Uptime: 2h 15m 30s
Mode: Multi-SSID
Networks: 3
Current: GH: yourusername
Channel: 6
Clients: 0
Total connections: 12
AP restarts: 0
Free heap: 180000 / Min: 175000
WiFi: OK | BLE: OK
============================
| Feature | Description |
|---|---|
| Multi-Network Broadcasting | Each platform appears as separate WiFi network |
| Channel Hopping | Rotates between channels 1, 6, 11 for coverage |
| BLE Rotation | Bluetooth cycles through all handles |
| Watchdog Timer | Auto-recovery from hangs |
| Heap Monitoring | Prevents memory crashes |
| Auto-Recovery | Restarts WiFi AP on failures |
| Uptime Tracking | Monitor runtime in status reports |
| Connection Logging | Track client connections |
| Platform | Config | Broadcast Format |
|---|---|---|
| X (Twitter) | X_HANDLE |
X: @handle |
INSTAGRAM_HANDLE |
IG: @handle |
|
| TikTok | TIKTOK_HANDLE |
TT: @handle |
| YouTube | YOUTUBE_HANDLE |
YT: channel |
| GitHub | GITHUB_HANDLE |
GH: username |
| Website | WEBSITE_URL |
Web: site.com |
| Discord | DISCORD_HANDLE |
DC: user#1234 |
LINKEDIN_HANDLE |
LI: profile |
|
| Twitch | TWITCH_HANDLE |
TW: channel |
| Custom | CUSTOM_MESSAGE |
Your text |
| Pattern | Meaning |
|---|---|
| 3 blinks at startup | Initialization complete |
| Quick blink every 3s | Heartbeat (normal operation) |
| Short blink | Channel hop |
NetSocialize rapidly switches between SSIDs every 350ms. This creates the illusion of multiple simultaneous networks:
0ms - Broadcast: X: @handle
350ms - Broadcast: GH: username
700ms - Broadcast: Web: site.com
1050ms - Back to: X: @handle
Since WiFi scans happen every 1-2 seconds on most devices, each network gets "caught" multiple times, making them all appear in the WiFi list simultaneously.
| Metric | Value |
|---|---|
| Visibility | All networks appear at once |
| Battery Life | ~20 hours (2000mAh) |
| Recommended | 3-5 platforms |
| Coverage | Channels 1, 6, 11 |
- Each network broadcasts for 350ms
- Too many platforms (7+) may reduce visibility
- Works best with channel hopping enabled
Automatically restarts the ESP32 if the main loop hangs for more than 30 seconds.
- Warning at 20KB free heap
- Auto-restart at 10KB to prevent crashes
- Uses char arrays instead of String objects to prevent fragmentation
- Detects WiFi AP failures
- Automatically restarts the access point
- Tracks restart count in status reports
#define HEAP_WARNING_THRESHOLD 20000 // Warn at 20KB
#define HEAP_CRITICAL_THRESHOLD 10000 // Restart at 10KB- Battery Life: ~20 hours (2000mAh)
- Visibility: Maximum - all networks visible
- Use Case: Events, conferences, meetups
- Battery Life: ~30 hours (2000mAh)
- Visibility: One platform at a time
- Use Case: Long events, power saving
#define ENABLE_MULTI_SSID false
#define ENABLE_CHANNEL_HOPPING false
#define STATIC_CHANNEL 6// Disable multi-SSID for longer battery
#define ENABLE_MULTI_SSID false
// Disable BLE rotation
#define ENABLE_BLE_ROTATION false
// Slower channel hopping
#define CHANNEL_HOP_INTERVAL 20000
// Or disable channel hopping entirely
#define ENABLE_CHANNEL_HOPPING false
#define STATIC_CHANNEL 6
// Less frequent status reports
#define STATUS_INTERVAL 300000Error: Program size greater than maximum allowed
Fix: Change partition scheme
- PlatformIO: Already configured in
platformio.ini - Arduino IDE: Tools → Partition Scheme → Huge APP (3MB No OTA)
- Install CP210x or CH340 USB drivers
- Check USB cable supports data transfer
- Try different USB port
- Hold BOOT button during upload
- Lower upload speed: Tools → Upload Speed → 115200
- Check you configured at least one platform handle
- Verify SSID isn't too long (32 char max)
- Try disabling channel hopping first
- Reduce number of platforms to 3-4
- Increase
SSID_ROTATION_INTERVALto 400-500ms - Reduce total number of configured platforms
- Some phones cache WiFi scans - wait 10-15 seconds
- Check status reports for heap warnings
- Reduce number of platforms
- Lower
HEAP_CRITICAL_THRESHOLDif needed
Check out issues labeled as enhancement or good first issue.
- Fork the repository
- Create your feature branch
- Test on real hardware
- Submit a pull request
- ✅ ESP32 DevKit V1 (DOIT)
- ✅ ESP32 WROOM-32
⚠️ ESP32-C3 (BLE only, no classic Bluetooth)
Find NetSocialize useful? Give it a star ⭐