A couple of weeks back I was toying with the idea of using the board i developed to use in a transceiver and programming the ESP32 to do WSPR. Initially i tried connecting the ESP32 to my home wifi to lookup the time from an NSP server etc etc but I had trouble with the ESP32 not connecting to my wifi.

After enabling better debug messages and doing some google foo searching for the answer, i took a good look at the debug messages and discovered that the brownout timer was being triggered because the voltage on the USB ports on the front of my machine was to low for it to be happy. Changed the cable and changed to a rear port and I was back in business.

Half an hour later i was watching wspr coming out of the SI5351a on the oscilloscope and i knew I was in business. Grabbed out a small PA and LPF, connected it all together and we were in business.

Power out of the PA going to my antenna is about 1W. Since I took the screen cap below, i have upped the voltage going to the PA to bring the output up to exactly 1W.


And as for whispering, we are whispering sweet nothings to all the usual suspects. I do not expect this to break any land speed records, but its been a fun exercise and now I am going to work on adding switchable LPF’s and ramping this up to 4 bands. I have 2 antenna here, one is a 40m dipole and the other is a tri-band trapped vertical. So having 4 bands running should be cake. I do have the boards for the LPF as well, i just gotta build them and code up the band switching.


4 thoughts on “ESP32 WSPR TX

  1. Hello Robert,
    I am in the process of developing a WSPR transmitter with ESP32 and SI5351 and fail to initailize the SI5351.
    Would it be possible to provide me your initialization code?
    many greetings from Germany

    1. Sorry, I dont actually share my code because I do not program using Arduino and trying to explain how to do things how I do to non programmers is difficult. I am not sure what you have done wrong though, if you follow any of the examples in Jason Mildrums Etherkit si5351 library it should work out of the box.

      Start by checking your wiring is correct and then use a very simple test program to ensure that the module is working, before working up to more complex code.


  2. hello Robert,
    thanks for your reply. I’m sure, the wirung is correct, because the I2C-Scanner finds the module with address 0x60. But so far, unfortunately, none of the examples has led to success. 🙁

    1. OH WAIT! are you using an ESP32 and not an Arduino?

      You need to modify the library. Its a known issue. Assuming Arduino IDE and Windows, navigate to Documents\Arduino\libraries\Etherkit_Si5351\src

      Open si5351.ccp

      In SI5351::si5351_read method change

      Wire.requestFrom(i2c_bus_addr, (uint8_t)1, (uint8_t)false);


      Wire.requestFrom(i2c_bus_addr, (uint8_t)1);

      and it should be all hunky dory 🙂


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.