SYNC-one - Reviving 90s Pager Tech for Offline ESP-NOW Communication
by The Uncertified Engineer in Circuits > Microcontrollers
465 Views, 3 Favorites, 0 Comments
SYNC-one - Reviving 90s Pager Tech for Offline ESP-NOW Communication
Before smartphones, before the internet, there were pagers — small pocket devices that received short messages over radio signals, no Wi-Fi needed. Doctors, firefighters, and businesspeople carried them everywhere through the 80s and 90s. The S.Y.N.C-one is that same idea, rebuilt from scratch using modern components. No Wi-Fi. No internet. No router. Just direct, off-grid communication — the way it used to be.
S.Y.N.C stands for "Social Yielded Network Communicator"- (yeah, I know that sounds a bit complex but it's not really that complex).it is a pocket sized pager-like communication device based on esp32. it works on ESP-NOW protocol which means no wifi, no internet, no router needed. just two devices talking directly to each other.
Why ESP-NOW?
It's fast (sub-millisecond latency), free to use, and works by broadcasting — any S.Y.N.C device in range automatically receives the message. No pairing, no handshake, no accounts.
Supplies
Connection
0.96" OLED --> Esp32
----------------------------------
GND ----> GND
VCC ----> 3.3v
SCL ----> D22
SDA ----> D21
----------------------------------
Joystick --> Esp32
----------------------------------
GND ----> GND
VCC ----> 3.3v
X-axis ----> D35
Y-axis ----> D34
Button ----> D27
----------------------------------
Button 1 --> Esp32
----------------------------------
GND ----> GND
OUT ----> D5
----------------------------------
Button 2 --> Esp32
----------------------------------
GND ----> GND
OUT ----> D4
----------------------------------
Buzzer --> Esp32
----------------------------------
GND ----> GND
OUT ----> D15
----------------------------------
NOTE :- connecting an external LED to D2 is not necessary since the built-in LED is already on D2.
Setting Up the Boards
Skip this step if you have all library and boards installed.
Installing esp32 board manager :
// 1. Open Arduino IDE → File → Preferences
// 2. Paste this URL in "Additional Boards Manager URLs":
https://dl.espressif.com/dl/package_esp32_index.json
// 3. Tools → Boards → Boards Manager
// 4. Search "esp32 by Espressif Systems" → Install
Libraries you will need :
- Adafruit SSD1306 - install from library manager
- Adafruit GFX - install from library manager
- esp_now.h - comes built in with esp32 package
- WiFi.h - comes built in with esp32 package
Code
just a few changes before uploading :
open the code from the link below
go to settings and replace "your_username" with whatever name you want
Then in Arduino IDE, select Tools → Board → ESP32 Dev Module, choose the correct port, and hit Upload.
click upload
Hey code is here --> S.Y.N.C-one
Screens
currently there are 3 main screens :
Loading Screen
Joystick calibration runs here automatically. Do not touch the joystick during boot or the neutral position will be miscalibrated.
Keyboard Screen
Use the joystick to navigate an on-screen keyboard. Press Joystick button to select a character and Button 2 to send.
Inbox Screen
All received messages appear here in order. The buzzer fires and the LED blinks on every new incoming message.
Settings Screen
Change username, toggle the buzzer and LED, and set screen timeout and max message count.
HOW IT WORKS Under the Hood
- No pairing needed. ESP-NOW uses broadcast mode — every S.Y.N.C device in radio range receives every message automatically.
- No router or internet. The protocol runs directly on the 2.4 GHz radio hardware. Useful range is typically 50–200 m in open air.
- The sender's username is embedded in every packet, so the receiver can show "from: alice" in the inbox.
- The buzzer and LED are triggered by the receive callback, giving instant physical feedback when a message arrives.
Build Tips & Troubleshooting
Build at least two devices. ESP-NOW is peer-to-peer — there's nothing to test with only one unit. Flash both with the same firmware, set different usernames, and power them on together.
- OLED not showing anything? Check the I²C address. Most SSD1306 modules are at 0x3C but some ship as 0x3D. Run an I²C scanner sketch first.
- Joystick feels drifty? If you moved the joystick during boot, power-cycle and keep it centred during the loading screen while calibration runs.
- Want more range? Replace the PCB trace antenna with an external 2.4 GHz dipole connected via the ESP32's U.FL or SMA pad (on antenna-equipped variants).