Most WSPR messages are type 1, however sometimes type 2 and 3 messages are needed. A brief listing of the three types is given below: Message Type JTEncode includes support for all three WSPR message types.
If you see unusual freezes, that almost certainly indicates a RAM shortage. When using other microcontrollers that have more RAM, such as most of the ARM ICs, this won't be as much of a problem. If you are using these, then please be sure to call them only once when a transmit buffer needs to be created or changed, and call them separately of other subroutine calls. Care has been taken to put as much data into program memory as is possible, but the encoding functions still can cause problems with the low RAM microcontrollers such as the ATmegaxx8 series. Most of the encoding functions need to manipulate multiple arrays of symbols in RAM at the same time, and therefore are quite RAM intensive.
> Add Library., and select the ZIP that you just downloaded. Finally, open the Arduino IDE, select menu Sketch > Import Library.
Download a ZIP file of the library from the GitHub repository by going to this page and clicking the "Source code (zip)" link under the latest release.
If you need to or would like to install the library in the old way, then you can download a copy of the library in a ZIP file. By installing the library this way, you will always have notifications of future library updates, and can easily switch between library versions. Click on the entry in the list below, then click on the provided "Install" button. To install it this way, simply go to the menu Sketch > Include Library > Manage Libraries., and then in the search box at the upper-right, type "Etherkit JTEncode". The best way to install the library is via the Arduino Library Manager, which is available if you are using Arduino IDE version 1.6.2 or greater. Since the library itself does not access the hardware, there is no reason it should not run on any Arduino model of recent vintage as long as it has at least 2 kB of RAM. This library has been written for the Arduino platform and has been successfully tested on the Arduino Uno, an Uno clone, an Arduino Zero clone, and a NodeMCU. Thank you! Hardware Requirements and Setup If you would like to support my library development efforts, I would ask that you please consider sending a one-time PayPal tip or subscribe to me on SubscribeStar for an ongoing contribution. Please feel free to use the issues feature of GitHub if you run into problems or have suggestions for important features to implement. When paired with a synthesizer that can output frequencies in fine, phase-continuous tuning steps (such as the Si5351), then a beacon or telemetry transmitter can be created which can change the transmitted characters as needed from the Arduino.
It will also generate an arbitrary FSQ message of up to 200 characters in both directed and non-directed format. This library very simply generates a set of channel symbols for JT65, JT9, JT4, FT8, or WSPR based on the user providing a properly formatted Type 6 message for JT65, JT9, or JT4 (which is 13 valid characters), Type 0.0 or 0.5 message for FT8 (v2.0.0 protocol) or a Type 1, Type 2, or Type 3 message for WSPR. JT65/JT9/JT4/FT8/WSPR/FSQ Encoder Library for Arduino