Software

The RFzero library is in fact divided into three libraries called the RFzero standard library and the RFzero_modes library and a general purpose library called RFzero_util.

The RFzero library provides functions to work with all the RFzero hardware, e.g. EEPROM, GPS, MCU pins and Si5351A. This library should be included whenever you work with the RFzero. This is done by inserting the following piece of code in your program.

The RFzero modes library has functions to convert messages and work with CW and digital modes (MGM: FT4, FT8, JS8, JT9, PI4, WSPR …) and is always used in combination with the RFzero standard library. The modes library is included by inserting the following piece of code in your program after the #include <RFzero.h>.

The RFzero utilities library has a collection of handy functions that are not  specific to the RFzero. The utilities library is included by inserting the following piece of code in your program after the #include <RFzero.h>.

The above lines should be inserted at the top of the .ino file.


Software bugs

If you find bugs or oddities in the programs or tutorials please contact us for clarification or fixing the bugs. You may also post a message at the RFzero user group.

If you are in doubt, whether the bug is software or hardware related, you can try to run the BoardTest program first. It has been thoroughly tested and is known to run flawlessly.

You may also consult the troubleshooting page.


(Re)burning the bootloader

The bootloader has been burned into the RFzero at the factory. Should you ever want to reburn the bootloader, for whatever reason, you will need an Atmel SAM-ICE programmer and a SAM to Cortex cable.

Then the process is as follows

  1. Connect the programmer to the JP9 connector on the RFzero and to the computer
  2. Select the RFzero board in the Arduino IDE Menu | Tools | Board | RFzero
  3. Select the Atmel SAM-ICE programmer in the Arduino IDE Menu | Tools | Programmer | Atmel SAM-ICE
  4. Finally select Arduino IDE Menu | Tools | Burn Bootloader

Release history

The following versions will show up in Board Manager when the RFzero library path has been installed.

Legacy versions are provided for compatibility with older applications that are not easily rewritten. Unless you have an otherwise unsolvable issue that requires a specific version, it is highly recommended using the latest version.

VersionStatusDateNotes
0.9.3Pre-release2020-10-03New
- I2C user bus scanner program

Bug fixes
- SBP mask input is not in hex but in binary
- In all programs where it is possible to set the IC2 address for the PCF8574 the help text was wrong. It should have been: wr pcf8574 ADDR
0.9.2Pre-release2020-07-15New
- Support for two graphical displays, ILI9341, display mode 5, and ILI9488, display mode 6, in most programs. The libraries needed for these displays are included in the RFzero library
- TFT designer program
- All display types added to the frequency counter program

Bug fixes/changes/corrections/optimizations
- The PTT detect pins in the QO-100 program has been changed to A0 because the graphical display may use D16
- The frequency control pins in the Multi LO program have been changed to A0-A3 because the graphical display may use D18 and D19
- Minor typos in programs
- Minor corrections and optimizations
0.9.1Pre-release2020-06-18New
- Beacon WSPR + CW program
- EEPROM manager program
- New functions to get and set the T1 H/W and implemented in relevant programs
- Optimized use of the T1 H/W
- Added a frequency step marker/value in the signal generator
- Added the RFzero LCD I2C library
- Added support for two I2C LCDs 16x2 (display mode 3) and 20x4 (display mode 4) in most programs using a PCF8574 port expander
- Added a new transmission mode to the WSPR transmitter

Bug fixes/changes/corrections/optimizations
- Bug fixed in library and signal generator vs T1 and power level for non transformer H/W
- Typos in the signal generator program
- The EEPROM defaults and the EEPROM dump programs have been removed. Please use the EEPROM manager program instead
0.9.0Pre-release2020-05-28New
- Signal generator program, and two support programs (SigTest SX1509 test and SigGen I2C disable)
- Most of the programs are now able to use both 16x2 and 20x4 LCDs
- Online library documentation

Bug fixes/changes/corrections/optimizations
- Big library upgrade and streamlining
- In the WSPR transmitter program the syntax of the "wr seq" command has been changed from BAND to INDEX to allow a less rigid configuration, e.g. twice on the same band but with different control bits
- All existing programs have been updated to match the new library
- The low frequency limit has been changed from 2605 Hz to 2289 Hz
0.8.7Pre-release2020-03-17Bug fixes
- JS8 encoding unintentionally printed symbols to the USB port
- QO-100/Es'Hail default frequencies did not match help
- WSPRTX day/night sequence did not work

This is a very robust version of the library
0.8.6Pre-release2019-12-03New
- Beacon FT4 + CW + carrier program
- Beacon JS8 (HB) + CW + carrier program
- Multi LO with five frequencies with pin detection (D16-D19) program
- Most programs show library and program version when starting

Bug fixes/changes/corrections/optimizations
- Improved handling of GPS and USB communication
- QO-100/Es'Hail with much better frequency precision
- WSPR offset moved 1½ tone down to match the "specification"
- Local time can now be +14 hours relative to UTC

Updating is recommended
0.8.5Pre-release2019-06-02New
- The QO100 example program for the QO-100/Es'hail satellite program
- Framework for two-tone generation
- Correction for leap seconds before received from the GPS satellites
- An example program called Template that you may use as the foundation for writing your own program(s)

Bug fixes/changes/corrections/optimizations
- Frequencies above ~298 MHz in the PI4 and WSPR multiplied beacons example programs
- Max length messages/calls for FT8, JT9, PI4 and WSPR
- Automatic locator updating in WSPRTX
- Other minor bugs

Updating is recommended
0.8.3Pre-release2019-05-04Same as 0.8.2
0.8.2Pre-release2019-05-03Fixes several bugs in 0.8.0

Updating is recommended
0.8.0First
pre-release
2019-04-24Major pre-release and base for future builds

Release policy

In general the latest version should be used, however, a increase in major release number may introduce an incompatibility with older application code. Version numbers are X.Y.Z and should be regarded as follows:

Number (X.Y.Z)ReleasePurpose
First (X)MajorMajor rewrite, upgrades are likely to be break existing code
Second (Y)MinorNew feature or severe bug fix. Likely transparent
Third (Z)MaintenanceTransparent clean-up or trivial bug fix