Troubleshooting

On this page you may find help to troubleshoot you use of your RFzero. Typically the problems are:

  • Arduino IDE, SAMD library or RFzero library installation
    • Wrong version or missing installation
    • The Arduino IDE 1.8.0 or later should work
    • The SAMD library must only be version 1.6.20
    • The RFzero library should always be the latest version
  • How to use the Arduino IDE
    • Selecting the RFzero as board
    • Compiling
  • The connection between the operating system and the RFzero
    • The RFzero doesn’t identify itself at all
    • The RFzero doesn’t identify itself as an Arduino Zero
    • The RFzero USB connection is not identified by the operating system
  • Hardware related
    • EEPROM
    • I2C
    • GPS
    • Short circuits

Before you proceed please verify the overall installation and versions are correct.

If you get an error message from the Arduino IDE please try to find the same error message in the headlines below.


The RFzero doesn’t identify itself at all

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.


exec: “/bin/arm-none-eabi-g++”: file does not exist

If you see

exec: “/bin/arm-none-eabi-g++”: file does not exist
Error compiling for board RFzero.Error compiling for board RFzero.

error message you have not installed the Arduino SAMD library. Please see the installation procedure step 2.


RFzero.h no such file or directory

If you experience that the Arduino IDE says:

“RFzero.h no such file or directory”

you have most likely not selected the RFzero as the board.

To set the target board to RFzero go to Menu | Tools | Board “…” and scroll down the list until you see the RFzero board and select it.


Error compiling for board RFzero

This error can show because of three reasons

  1. You have not installed the Arduino SAMD Boards (32-bits ARM Cortax M0+) library. If so please perform step 2) in the software installation.
  2. You have installed the Arduino SAMD Boards (32-bits ARM Cortex M0+) but not version 1.6.20 S/W. If so please downgrade to v. 1.6.20, see step 2) in the software installation.
  3. The installation process went wrong. Please see how to rectify the situation in the description below.

Sometimes the Arduino installation/updating process goes wrong leading to a situation where more than one version of a software library, e.g. the RFzero library, is installed. When this happens the Arduino IDE cannot compile programs using the specific library. Unfortunately the Arduino IDE is not able to rectify this situation itself, but needs your manual intervention.

If this happens please go to the directory where Arduino installed the RFzero libraries and delete the irrelevant RFzero directory:

Windows path: C:\Users\<User>\appdata\Local\Arduino15\packages\RFzero

Linux path: $HOME/.arduino15/packages/RFzero

Mac OS path: /Users/<User>/Library/Arduino15/packages/RFzero

where <User> is your account user name.

You can navigate to the directory using a file browser. Alternatively, you may navigate to the packages directory from the Arduino IDE by selecting Menu | Preferences, that opens the Preferences pane. Then click on the line below “More preferences can be edited directly in the file” that will open a file browser in the Arduino15 directory, then navigate to the packages | RFzero directory, and delete the irrelevant RFzero directory.

If you deleted everything, i.e. the Arduino IDE, RFzero S/W, …, then reinstall the latest RFzero library. Afterwards please remember to select the RFzero board from the Arduino IDE select Menu | Tools | Board.

If the installation/updating went wrong with another library then you should, of course, delete this library from the packages directory.

In extreme cases you will have to uninstall the Arduino IDE completely. Then check that the package path as shown above has been deleted too. If not delete it manually. Then reinstall everything again repeating steps 1), 2) and 3) from the S/W installation.


… was not declared in this scope

Most likely you are trying to compile a program version, and a library version that are out of sync.

Please make sure that the version of the program, you want to use is compatible with the library version, you are using. If you have an older version of the program but, have upgraded the library to the latest version to make use of some of the newer functions, or because a bug was corrected, then you will also have to use the latest version of the program.

If you have made changes to the code or added code yourself, then this error can also happen, and then it is a matter of troubleshooting your changes.


… has no member named …

Most likely you are trying to compile a program version and a library version that are out of sync.

Please make sure that the version of the program you want to use is compatible with the library version you are using. If you have an older version of the program but, have upgraded the library to the latest version to make use of some of the newer functions or because a bug was corrected, then you will also have to use the latest version of the program.

If you have made changes to the code or added code yourself, then this error can also happen, and then it is a matter of troubleshooting your changes.


Couldn’t find a Board on the selected port

You have probably selected the wrong COM port for your RFzero board.

Please verify that have selected the right COM port from the Menu | Tools | Port … The RFzero identify itself as an “Arduino/Genuino Zero (Native USB Port)”.


An error occurred while uploading the sketch

The most likely reason when you see the error message “An error occurred while uploading the sketch” is that you have not selected the right COM port for the RFzero.

You select the right COM port from the Menu | Tools | Port … The RFzero identify itself as an “Arduino/Genuino Zero (Native USB Port)”.


No RFzero (Arduino Zero) visible

If you haven’t installed the Arduino IDE or the RFzero Manager including the driver your RFzero may identify itself as a generic “USB Serial Device (COM#)” in the Windows Device Manager instead of “Arduino Zero (COM#)”. If you just want to communicate with your already programmed RFzero this will still work.

The Windows Device Manager when no driver has been installed either by the Arduino IDE or RFzero Manager.

The Windows Device Manager when a driver has been installed.


USB shows Arduino Zero bootloader

USB and the Windows operating system are not the best match in the world. If you experience that the RFzero identifies as Arduino Zero bootloader, and not as the normal Arduino Zero, the RFzero has for some reason been brought into a special state. The actual COM port number is not relevant.

To escape from this situation please double click when the uploading is about to take place. You may also try to upload a different program, e.g. the RFzero Blink or BoardTest programs.

During the actual uploading Windows changes the COM-port and when successfully uploaded it goes back to the original COM-port. However, sometimes Windows cannot find the “upload COM-post” and then the upload goes wrong. If so you can try to monitor the bottom part, i.e. the black area, of the Arduino IDE but first make sure you have marked the checkbox found Menu | File | Preferences | Show verbose output during upload. When the Arduino IDE starts the upload process you should see something like the below taking place.

It might be that you cannot do this in the RFzero Manager. If so please use the Arduino IDE to upload the program instead.


Uploading a program

USB and the Windows operating system are not the best match in the world. Therefore, if you experience problems with uploading a program to the RFzero please check if you can see the RFzero in the Windows Device Manager. The RFzero identifies itself as an Arduino Zero.

The second check you should do is to check your USB cable. Some of the cheaper USB cables are made for charging only and not for communication purposes.

You may also try to upload a different program, e.g. the RFzero Blink or BoardTest programs.

During the actual uploading Windows changes the COM-port and when successfully uploaded it goes back to the original COM-port. However, sometimes Windows cannot find the “upload COM-post” and then the upload goes wrong. If so you can try to monitor the bottom part, i.e. the black area, of the Arduino IDE but first make sure you have marked the checkbox found Menu | File | Preferences | Show verbose output during upload. When the Arduino IDE starts the upload process you should see something like the below taking place.

This will go on until it times out. The trick is now to double click the reset button on the RFzero, before the time out occurs, and you should see something like the below.

COM23 is the actual upload port, in this case but not necessarily the same in your case, and the process should be rolling now. You may have to try the trick a couple of times to get it right. In severe cases unplugging the RFzero and restarting your computer may be needed.


EEPROM auto detect

The EEPROM_TYPE_AUTO is a special RFzero type name used instead of EEPROM_TYPE_24LC08B or EEPROM_TYPE_M24128. When calling the eeprom.setType(EEPROM_TYPE_AUTO) function, the library tries to detect if the EEPROM is a 24LC08B or M24128. This makes the default RFzero programs more portable across the two different EEPROMs especially in the RFzero Manager where it is not possible to edit the source code. However, it is always best to use a specific RFzero type name in the source code if possible.

If everything fails you should upload either the standard RFzero program EEPROM_24LC08B, if the EEPROM in your RFzero is a 24LC08B, or the EEPROM_M24128 program, if the EEPROM in your RFzero is an M24128.


When using I2C the RFzero freezes

If you experience that the RFzero freezes and the USB gets lost after you have enabled the use of I2C/Wire, then chances are you have not connected the necessary I2C pull-up resistors from the SDA and SCL pins to the 3V3 supply. This is not unique to the RFzero, but is a general thing in Arduino.

If the program hangs please connect two resistor, 2 kΩ to 10 kΩ, from 3V3 to each of the D8 (SDA) and D9 (SCL) pins. Then press the reset button. If this fails try to upload the program again, while being prepared to double click the reset button, until the uploading is successful. Alternatively, try to load the Disable I2C user bus or the Chip Manager program and disable the I2C.


GPS

If you experience problems with the GPS the first things you should check are the GPS antenna and the GPS signal coverage. Try to move the antenna to a better location with a clear view to the sky.

Another trick is to upload the ucenter program to the RFzero, and run the u-center program from u-blox. Then check the signal quality and verify that some satellite are in view and in use.

Does the PPS LED flash? If not then the GPS signal is not valid, but it may still be, that a few satellites are in use by the u-blox GPS receiver. The PPS LED is connected directly to the GPS receiver. Thus, even if the S/W crashes the PPS LED should be unaffected.


Hardware test points

The RFzero board contains a number of test points that can be used for troubleshooting. Keep in mind that you can also use the Test LED as an aid in the software debugging.

NameDescriptionValueType
TP1VI (about 0,5 V below the supply voltage)~4,5 V if supplied from 5 V or USBAnalog
TP2Voltage on the digital circuit3,3 VAnalog
TP3Voltage on the Si5351A3,3 VAnalog
TP4USB DPUSB serial dataDigital
TP5USB DMUSB serial dataDigital
TP6GPS data out (TX, GDO)Serial dataDigital
TP7GPS control data in (RX, GCI)Serial dataDigital
TP8GPS PPS (GPO)One pulse per second and 100 ms wide (default)Digital
TP9GPS pre-amplifier voltage3,3 VAnalog
TP10I2C/Wire internal SCLSerial data to/from the EEPROM and Si5351ADigital
TP11I2C/Wire internal SDASerial data to/from the EEPROM and Si5351ADigital
TP12Ground on bottom side of the PCBGroundAnalog
TP13Optional GPS USB DP on the bottom side of the PCBUSB serial data to/from the GPSDigital
TP14Optional GPS USB DM on the bottom side of the PCBUSB serial data to/from the GPSDigital

The TP12, TP13 and TP14  test points on the bottom side can be used to access the u-blox NEO-7.