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 upload# 1. 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 → ESP32 Dev Module
# 5. Configure partition scheme (IMPORTANT)
Tools → Partition Scheme → Huge APP (3MB No OTA/1MB SPIFFS)Edit include/config.h with your information:
NetSocialize can broadcast each platform as a separate WiFi network:
// Show all platforms as separate networks simultaneously
#define ENABLE_MULTI_SSID true
// Channel hopping for better coverage
#define ENABLE_CHANNEL_HOPPING trueWhen enabled, WiFi scans will show:
📡 𝕏 @vinavil
📡 💻 vinavildev
📡 🌐 vinavil.dev
Only add platforms you use - leave others empty:
#define X_HANDLE "vinavil"
#define INSTAGRAM_HANDLE "vinavil"
#define TIKTOK_HANDLE ""
#define YOUTUBE_HANDLE "yourchannel"
#define GITHUB_HANDLE "vinavildev"
#define WEBSITE_URL "vinavil.dev"
#define DISCORD_HANDLE "vinavil#1234" // Multi-network mode (recommended)
#define ENABLE_MULTI_SSID true
#define ENABLE_CHANNEL_HOPPING true
// Single network mode (battery saver)
#define ENABLE_MULTI_SSID false
#define ENABLE_CHANNEL_HOPPING false
#define STATIC_CHANNEL 6- Configure your handles in
include/config.h - Upload to ESP32
- Open Serial Monitor (115200 baud)
- Watch for "✓ Broadcasting" message
- Scan WiFi on your phone - you'll see all your networks
=================================
NetSocialize v2.0
Multi-Network Mode
=================================
Broadcasting 3 networks:
[1] 𝕏 @vinavil
[2] 💻 vinavildev
[3] 🌐 vinavil.dev
Config:
Multi-SSID: ON
Channel Hop: ON
Rotation: 300ms
Setting up WiFi...
Started on channel 1
Setting up BLE...
BLE active
✓ Broadcasting
All networks will appear in WiFi list
| Feature | Description |
|---|---|
| Multi-Network Broadcasting | Each platform appears as separate WiFi network |
| Channel Hopping | Rotates between channels 1, 6, 11 for coverage |
| BLE Beacon | Bluetooth Low Energy broadcasting |
| Auto-Configuration | Only broadcasts configured platforms |
| Visual Feedback | LED status indicators |
| Low Power | Optimized for battery operation |
| Rapid Switching | 300ms rotation makes all networks visible |
NetSocialize rapidly switches between SSIDs every 300ms. This creates the illusion of multiple simultaneous networks:
Timeline:
0ms - Broadcast: 𝕏 @vinavil
300ms - Broadcast: 💻 vinavildev
600ms - Broadcast: 🌐 vinavil.dev
900ms - Back to: 𝕏 @vinavil
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.
- Visibility: All networks appear at once in WiFi scans
- Battery Life: ~20 hours with 2000mAh battery
- Recommended: 3-5 platforms for optimal results
- Coverage: Works across all 3 non-overlapping channels
- Each network broadcasts for 300ms
- Too many platforms (7+) may reduce visibility
- Works best with channel hopping enabled
- All networks show on channel scans
| Platform | Handle Format | Broadcast Example |
|---|---|---|
| 𝕏 | X_HANDLE |
𝕏 @vinavil |
INSTAGRAM_HANDLE |
📸 vinavil |
|
| TikTok | TIKTOK_HANDLE |
🎵 vinavil |
| YouTube | YOUTUBE_HANDLE |
▶️ vinavil |
| GitHub | GITHUB_HANDLE |
💻 vinavildev |
| Website | WEBSITE_URL |
🌐 vinavil.dev |
| Discord | DISCORD_HANDLE |
💬 vinavil#1234 |
| Pattern | Meaning |
|---|---|
| 3 blinks at startup | Initialization complete |
| Quick blink every 3s | Heartbeat (normal operation) |
| Short blink | Channel hop detected |
- 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
- Coverage: Spans channels 1, 6, 11
- Benefit: Better visibility in congested WiFi areas
- Interval: 10 seconds per channel
Want to add LinkedIn, Twitch, or others?
// In main.cpp, add to buildMessages() function:
if (strlen(TWITCH_HANDLE) > 0) {
wifiMessages[messageCount++] = "🎮 " + String(TWITCH_HANDLE);
}
// In config.h:
#define TWITCH_HANDLE "yourhandle"// Disable multi-SSID for longer battery
#define ENABLE_MULTI_SSID false
// Slower channel hopping
#define CHANNEL_HOP_INTERVAL 20000 // 20 seconds
// Or disable channel hopping entirely
#define ENABLE_CHANNEL_HOPPING false
#define STATIC_CHANNEL 6Error: 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 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 ⭐