Skip to content

NetSocialize is an ESP32-based WiFi and BLE broadcaster that displays your social media handles as multiple simultaneous WiFi networks.

License

Notifications You must be signed in to change notification settings

VinavilDev/NetSocializer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NetSocialize - ESP32

platform version license
Broadcast your social media handles via WiFi and Bluetooth.
Multiple networks appear simultaneously for maximum visibility.

Installation · Configuration · Usage · Contributing


Documentation

Advanced

Installation

Hardware Requirements

  • ESP32 DevKit V1 (or compatible)
  • USB cable for programming
  • Optional: Battery pack for portable use

PlatformIO Setup (Recommended)

git clone https://github.com/yourusername/netsocialize.git
cd netsocialize
pio run --target upload

Arduino IDE Setup

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 → DOIT ESP32 DEVKIT V1

5. Configure partition scheme (IMPORTANT)
   Tools → Partition Scheme → Huge APP (3MB No OTA/1MB SPIFFS)

Configuration

Edit include/config.h with your information:

Broadcast Modes

#define ENABLE_MULTI_SSID true        // Multiple networks visible
#define ENABLE_CHANNEL_HOPPING true   // Better coverage
#define ENABLE_BLE_ROTATION true      // BLE cycles through handles

Social Handles

Only 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

Usage

Quick Start

  1. Configure your handles in include/config.h
  2. Upload to ESP32
  3. Open Serial Monitor (115200 baud)
  4. Watch for "[OK] Broadcasting started" message
  5. Scan WiFi on your phone - you'll see all your networks

Serial Output

=====================================
        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 Report (every 60s)

========== 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
============================

Features

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

Supported Platforms

Platform Config Broadcast Format
X (Twitter) X_HANDLE X: @handle
Instagram 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 LINKEDIN_HANDLE LI: profile
Twitch TWITCH_HANDLE TW: channel
Custom CUSTOM_MESSAGE Your text

LED Indicators

Pattern Meaning
3 blinks at startup Initialization complete
Quick blink every 3s Heartbeat (normal operation)
Short blink Channel hop

Multi-Network Mode

How It Works

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.

Performance

Metric Value
Visibility All networks appear at once
Battery Life ~20 hours (2000mAh)
Recommended 3-5 platforms
Coverage Channels 1, 6, 11

Notes

  • Each network broadcasts for 350ms
  • Too many platforms (7+) may reduce visibility
  • Works best with channel hopping enabled

Reliability Features

Watchdog Timer

Automatically restarts the ESP32 if the main loop hangs for more than 30 seconds.

Heap Monitoring

  • Warning at 20KB free heap
  • Auto-restart at 10KB to prevent crashes
  • Uses char arrays instead of String objects to prevent fragmentation

Auto-Recovery

  • Detects WiFi AP failures
  • Automatically restarts the access point
  • Tracks restart count in status reports

Configurable Thresholds

#define HEAP_WARNING_THRESHOLD 20000   // Warn at 20KB
#define HEAP_CRITICAL_THRESHOLD 10000  // Restart at 10KB

Broadcast Modes

Multi-Network Mode (Recommended)

  • Battery Life: ~20 hours (2000mAh)
  • Visibility: Maximum - all networks visible
  • Use Case: Events, conferences, meetups

Single Network Mode

  • 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

Battery Optimization

// 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 300000

Troubleshooting

Program Too Large Error

Error: 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)

Board Not Detected

  • Install CP210x or CH340 USB drivers
  • Check USB cable supports data transfer
  • Try different USB port

Upload Failed

  • Hold BOOT button during upload
  • Lower upload speed: Tools → Upload Speed → 115200

Networks Not Showing

  • 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

Only One Network Visible

  • Increase SSID_ROTATION_INTERVAL to 400-500ms
  • Reduce total number of configured platforms
  • Some phones cache WiFi scans - wait 10-15 seconds

Memory Issues After Long Runtime

  • Check status reports for heap warnings
  • Reduce number of platforms
  • Lower HEAP_CRITICAL_THRESHOLD if needed

Contributing

Want to Help?

Check out issues labeled as enhancement or good first issue.

Adding Features

  1. Fork the repository
  2. Create your feature branch
  3. Test on real hardware
  4. Submit a pull request

Tested Hardware

  • ✅ ESP32 DevKit V1 (DOIT)
  • ✅ ESP32 WROOM-32
  • ⚠️ ESP32-C3 (BLE only, no classic Bluetooth)

Community

Find NetSocialize useful? Give it a star ⭐

About

NetSocialize is an ESP32-based WiFi and BLE broadcaster that displays your social media handles as multiple simultaneous WiFi networks.

Resources

License

Stars

Watchers

Forks

Packages

No packages published