Skip to content

A simple and easy Arduino / Pi Pico / ESP8266-powered WSPR, FT8, and FT4 beacon system which uses NTP + DS3231 RTC for timing. Super extensible! Now comes with optional GPS support.

License

Notifications You must be signed in to change notification settings

kholia/Easy-Digital-Beacons-v1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easy-Digital-Beacons-v1

A simple and easy WiFi-enabled ESP8266-powered WSPR, FT8, and FT4 beacon system which uses NTP + DS3231 RTC for timing. Also, checkout our cost-effective, and robust HF 5W PA system.

It is also a WiFi-enabled VFO, which is quite useful, and convenient for radio experimentation work.

Note: The whole project can be assembled on a breadboard (including the 250mW amplifier) in under 30 minutes - do give it a go ;)

The whole design is modular, parametric (cost and others), field repairable, and super extensible. It is almost trivial to add support for more beacon modes.

Build Steps

If you are using Windows OS, execute the following steps:

If you are on Linux, execute the following steps:

sudo apt-get install git  # install 'git' if needed

git clone https://github.com/kholia/Easy-Digital-Beacons-v1.git

make install_arduino_cli
make install_platform
make deps  # using Windows?, read the 'Makefile' file

cd ~/Arduino/libraries
git clone https://github.com/me-no-dev/ESPAsyncWebServer.git
git clone https://github.com/me-no-dev/ESPAsyncTCP.git

Now execute these common steps:

Add your WiFi credentials in Easy-Digital-Beacons-v4/credentials.h file

Change the following lines in the code to use your values:

char message[] = "VU3CER VU3FOE MK68";
char call[] = "VU3FOE";
char loc[] = "MK68";
uint8_t dbm = 27;

[OPTIONAL] Change the following line in the code to suit your Si5351A module:

int32_t si5351CalibrationFactor =  ...

Use this program to derive the calibration value for your Si5351A module.

Si5351A Calibration

Follow this tutorial first to get familiar with SPIFFS uploading stuff. Use the Tools -> ESP8266 Sketch Data Upload option in the Arduino IDE to upload the webserver resources to ESP8266. Note: The webserver resources are located in the data folder inside the Easy-Digital-Beacons-v4 sketch.

Open and upload the Easy-Digital-Beacons-v4 sketch to ESP8266 using the Sketch -> Upload option in the Arduino IDE.

You are all set for the next step - congrats!

Usage

Turn off the SW1 switch, and reboot the beacon system. The beacon system now connects to your WiFi, and then runs a web server.

This web server can be accessed at http://beacon.local URL typically.

Beacon's web interface:

DEMO 2

Use this web interface to configure the beacon. Please use the NTP Sync option in this web interface to set the RTC time fairly correctly.

Now, turn on the SW1 switch, and reboot the beacon system. The beacon system is active now, and will TX as per the configuration.

TIP: Please use a local (or nearby) receiver to receive and decode the beacon signals! This is important to ensure that your beacon is TX'ing correctly.

Pinout 1

Si5351A module is connected via I2C to pins D1 (SCL) and D2 (SDA) of the Wemos D1 Mini board. Connect DS3231 similarly.

Here is the schematic for the Easy-Digital-Beacons-v4 sketch:

Schematic

For troubleshooting, you may want to try the following similar project by the awesome WB2CBA:

Notes

Note 2 (March-2022): The FT4 beacon is decently reliable now (all thanks to Anupam).

Author: Dhiru Kholia (VU3CER) - https://www.qrz.com/db/VU3CER/

Author 2: Anupam Saikia - https://github.com/anupamsaikia

The DT timings are very nice with NTP Sync, DS3231 RTC and the optional time-delta hack.

DEMO 0

7W (or less) of HF RF power offers global communications coverage when propagation is good:

Global Coverage US - Many Spots

WSPR mode demo:

DEMO 1

Sample 3D rendering:

DEMO 3

FT4 mode demo:

FT4 1

FST4W mode demo:

FST4W 1

Battery System Recommendation

I recommend using a LiFePo4 (LFP) battery which has good energy density and is also priced decently well.

32650 battery

Use the LFP battery with a 1S LFP BMS.

1S LFP BMS

The BMS' output can be connected directly to the 3.3v input of the ESP8266 module.

NTP (Time) Sync for FST4W-Antonio

In the Arduino IDE, select Tools -> Serial Monitor. In the Serial Monitor send s character to ESP8266 to trigger the NTP Time Sync process.

NTP Time Sync

Reboot ESP8266 to check if RTC is retaining the correct time. If not, change the RTC battery.

Power Notes

This will need a HF RF PA in most cases to be usable on the air.

UPDATE (May 2022): Checkout our cost-effective, and robust HF PA system.

You can also start with the easy-to-build and breadboard-friendly QRPp-Amplifier.

Relay Usage

We use a 2-channel relay as a T/R switch.

See https://github.com/kholia/Simple-TR-Switch for details.

Also check out https://github.com/kholia/Easy-Transceiver project.

BOM

  • 1 x 3/5mm LED (purple or pink is recommended)

  • 1 x small regular (spst) chassis mount switch

  • 1 x 0.25w 470 ohm resistor (CFR / MFR)

  • Relimate male connectors

  • Relimate female-female cables

  • Female berg strips

  • Zero PCB of a suitable size

Si5351A Module:

Part 1

DS3231 RTC Module:

Part 2

μC Board:

Part 3

OLED screen (optional):

Part 4

BOM Sources

Tips

Useful commands:

pacmd load-module module-null-sink sink_name=Virtual0
pacmd update-sink-proplist Virtual0 device.description=Virtual0
pacmd update-source-proplist Virtual0.monitor device.description=Virtual0

Use Gqrx and WSJT-X with a SDR device for initial frequency adjustment / calibration. This is essential for WSPR functionality. FT8 is more robust/tolerant of frequency deviations due to a much larger RX window.

Note: To customize the FST4W beacon to use your callsign and grid, use the following commands to generate the FST4Wsymbols array data.

fst4sim.exe "IK1HGI JN45 20" 60 1500 0.0 0.1 1.0 10 -15 F > message.txt

message2array.exe message.txt

Replace the original FST4Wsymbols array data with the output of message2array.exe program.

Future Tasks

  • Change Si5351 calibration factor from the Web UI

  • Add support for custom FT8 / FT4 messages

  • Re-announce mDNS stuff [LP]

  • EEPROM - save TX interval / schedule [LP]

  • Reset to defaults button [LP]

References + Credits

About

A simple and easy Arduino / Pi Pico / ESP8266-powered WSPR, FT8, and FT4 beacon system which uses NTP + DS3231 RTC for timing. Super extensible! Now comes with optional GPS support.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published