Table of contents
Since the RFzero is compatible with the world of Arduino you can make a smooth integration of the RFzero library and programs into the Arduino Integrated Development Environment (IDE). However, instead of installing the Arduino IDE you may choose to install the RFzero Manager. This may be relevant if all you want to do is to use the RFzero programs or programs made by others. You can download and see more about the RFzero Manager here.
Before you start it is recommended to connect your RFzero to a USB-A port on your PC. If the RFzero is connected to a USB-C port on the PC, then it might be that the RFzero is not identified by the PC. The reason is likely to be, that the RFzero doesn’t have pull-down resistors on the USB-C A5 and B5 lines. If so please use a USB-A port on the PC and the problem should be solved.
Arduino IDE installation
If you haven’t installed the Arduino (IDE) already please do so first. Once the Arduino IDE has been installed please perform the below steps 1), 2) and 3). Afterwards you may proceed to the step 4) Uploading the standard RFzero programs. Further down on the page is also a video showing the installation of the libraries.
The installation of the Arduino IDE 2.x versions is fairly similar even if the visual presentation is slightly different in some places. However, you should be able to use the below guide anyway.
1) Add the RFzero library path
From the Arduino IDE select Menu | File | Preferences. To the Additional Boards Manager URLs input field please add:
Please make sure you remember the https:// part!
2) Add the Arduino SAMD Boards and the RFzero SAMD boards
From the Arduino IDE select Menu | Tools | Board: “…“ | Board Manager … (at the very top of the list). Type “samd” next to the Type ALL to narrow the search result.
Then click on “Arduino SAMD Boards (32-bits ARM Cortex-M0+) …” and install/update to version 1.6.20. Please DO NOT install other versions because they may not run together with the RFzero S/W and may also prevent the compilation of programs from taking place.
If the installation process asks if you want to install additional Arduino relevant programs please do so. Then click on “RFzero SAMD Boards (GPS based RF Clock Generator) …” and install/update to the latest RFzero S/W version.
If you cannot see the “RFzero SAMD Boards (GPS based RF Clock Generator) …” library you have not completed Step 1) above correctly, e.g. wrong link, not done at all … For using the RFzero the other SAMD Boards options are not necessary.
You have now integrated the RFzero into the Arduino IDE like any other native Arduino board.
Because the RFzero is both a hardware board and a software library you cannot find the RFzero in the Arduino Library Manager. Neither are you able to find the RFzero library in the default Arduino “library” sub-directory of the Sketchbook location, nor should you copy/move the RFzero library to this location.
Windows path
The RFzero package is installed in: C:\Users\<User>\appdata\Local\Arduino15\packages\RFzero, where <User> is your account user name.
Linux path
The RFzero package is installed in: $HOME/.arduino15/packages/RFzero.
Mac OS path
The RFzero package is installed in: /Users/<User>/Library/Arduino15/packages/RFzero, where <User> is your account user name.
3) Select RFzero as board
To set the target board to RFzero please go to Menu | Tools | Board “…” and scroll down the list until you see the RFzero board and select it.
In Arduino IDEs prior to 1.8.13 the board selection layout is slightly different.
Then select the right COM port from the Menu | Tools | Port … The RFzero identify itself as an “Arduino/Genuino Zero (Native USB Port)”.
You are now ready to go. However, if you want you can check that the Arduino IDE actually can see the RFzero from the Arduino IDE select Menu | Tools | Get Board Info.
4) Uploading the standard RFzero programs
You may even use the RFzero programs that have also been installed automatically, and are available from the Arduino IDE select Menu | File | Examples | Examples for RFzero.
To compile and upload a program to the RFzero click on Menu | Sketch | Upload, press Ctrl + U or click the Right Arrow icon .
Video showing the installation of the libraries
Troubleshooting
If you are having problem with the installation or updating please see the troubleshooting page.
Arduino IDE check
If you want to check if you performed the installation steps correctly you can try to compile this ultra small program from within the Arduino IDE:
1 2 3 4 5 6 7 8 9 10 11 |
// RFzero include and object creation #include <RFzero.h> // MUST ALWAYS be included void setup() { SerialGPS.begin(9600); // SerialGPS is unique to RFzero } void loop() { } |
Uploading the program to your RFzero is not necessary because it has no real functionality. But the SerialGPS is unique to the RFzero.
Writing programs for the RFzero
The RFzero has an onboard EEPROM which can be used to store and retrieve the program settings if any. The following structure is recommended to get everything in place and in the right order.
1 2 3 4 5 6 7 8 9 10 11 12 |
// RFzero include and object creation #include <RFzero.h> #include <RFzero_modes.h> // If using CW or MGM otherwise it is irrelevant void setup() { // Must be present RFzero.init(EEPROM_TYPE_24LC08B); // For RFzero v.1.x or EEPROM_TYPE_M24128 for RFzero v.2.x ... Load the EEPROM settings if relevant ... } |
A simple frequency generating program
The below program generates a steady carrier on 10 MHz, however, it is not GPS locked.
1 2 3 4 5 6 7 8 9 10 11 12 |
#include <RFzero.h> void setup() { RFzero.init(EEPROM_TYPE_24LC08B); // For RFzero v.1.x or EEPROM_TYPE_M24128 for RFzero v.2.x si5351a.setFrequency(10000000.0); // Set the frequency to 10 MHz si5351a.rfLevel(RF_LEVEL_ON); } void loop() { } |