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

ESP32 • ESP-NOW • No WiFi (2).png
No WiFi. No Towers. No Problem. (DIY ESP32 Pager)

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

  1. ESP32 dev module (buy)
  2. 0.96" OLED display (buy)
  3. KY-023 Joystick module(buy)
  4. 2x push buttons(buy)
  5. Active buzzer(buy)


These are parts to make one device only, you will need two in order to communicate.

Connection

circuit_image.png

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

Capture5.JPG
Capture4.JPG

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 :


  1. Adafruit SSD1306 - install from library manager
  2. Adafruit GFX - install from library manager
  3. esp_now.h - comes built in with esp32 package
  4. WiFi.h - comes built in with esp32 package

Code

lv_0_20260407092513(3).jpg

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

20260330_144348(1).jpg
20260330_144348.jpg
lv_0_20260407092513(2).jpg
lv_0_20260407092513(1).jpg
lv_0_20260407092513.jpg
20251012_163123_1.jpg
20251012_162918_1.jpg
20251012_163401_1.jpg
20251012_163332_1.jpg

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

  1. No pairing needed. ESP-NOW uses broadcast mode — every S.Y.N.C device in radio range receives every message automatically.
  2. 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.
  3. The sender's username is embedded in every packet, so the receiver can show "from: alice" in the inbox.
  4. 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.
  1. 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.
  2. Joystick feels drifty? If you moved the joystick during boot, power-cycle and keep it centred during the loading screen while calibration runs.
  3. 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).