smôl ARTIC R2 - The firmware status INTERNAL_ERROR flag is set. An internal error has occurred.

Dear all,

I am currently testing my smol Artic R2 board - currently without an active CLS account.

As a test I have uploaded the Example 3 that comes with the board. In the serial monitor I get the following messages:

firmware status IDLE flag is set. The firmware is idle and ready to accept commands.

TX configuration: ARGOS PTT-A3.

RX configuration: ARGOS 3.

The Satellite Detection Timeout is 600 seconds.

Starting satellite detection…

ARTIC R2 Firmware Status:

The firmware status BUSY flag is set. The firmware is busy changing state.

ARTIC R2 MCU instruction result:

MCU command result: success. The configuration command has been accepted.

ARTIC R2 Firmware Status:

The firmware status BUSY flag is set. The firmware is busy changing state.

The firmware status INTERNAL_ERROR flag is set. An internal error has occurred.

The firmware status DSP2MCU_INT2 flag is set. Interrupt pin 2 is high.

INT2 pin is high. Satellite detection has timed out!

ARTIC R2 instruction progress:

MCU Instruction Progress: INTERNAL ERROR!

Satellite detection is complete! Freezing…


What do these lines mean?:

The firmware status INTERNAL_ERROR flag is set. An internal error has occurred.

ARTIC R2 instruction progress:

MCU Instruction Progress: INTERNAL ERROR!

Is my board defective? Or is there something I have to modify? I have already considered whether I should install a new firmware. But the board is brand new and if it might run unstable right now, I didn’t want to break more without asking.

I would be very thankful for your advice.

Best regards

Ceal

Hello Ceal,

I do not think I have seen this issue before. It could indicate a fault with the ARTIC R2 board, but I think it is more likely to be a software or hardware configuration issue.

Looking at Example3 ( https://github.com/sparkfun/SparkFun_AR … ection.ino ), do you have only the smôl ESP32 and ARTIC R2 board connected as shown in the code?

OUT —smôl ARTIC R2— IN

________________________/

/

OUT — smôl ESP32 — IN

If you have the ZOE GNSS board connected, the pin numbering will be different. Also, the ARTIC board needs to be on top of the ESP32 board.

Are you powering the boards via USB? Or do you also have a power board connected?

Can you also please tell me which version of the Espressif ESP32 boards you are using? 2.0.7 is the latest.

If you are still having problems, I will try to replicate them here.

Best wishes,

Paul

Hi Paul,

Yes, I’ve also included the ZOE GNSS Board like here https://learn.sparkfun.com/tutorials/sm … rrent-draw

ESP32_Out to ZOE-GNSS_IN

ZOE-GNSS_OUT to ARTIC-R2_IN

I’ve only used USB power so far, no smol Power board.

I’ve also tried the shorter example from here https://learn.sparkfun.com/tutorials/sm … -detection

However, the Serial Monitor only gives me the following lines after the upload:

INT2 pin is high. Satellite detection has timed out!

Satellite detection is complete! Freezing…

Shouldn’t I be able to read the following lines in the Serial Monitor before as well?

ARGOS smôl ARTIC R2 Example"

ARTIC R2 is booting…

And when I compare the pin setup, I don’t notice any difference.

int CS_Pin = 5; // smôl CS0 = ESP32 Pin 5

int ARTIC_PWR_EN_Pin = 27; // smôl GPIO0 = ESP32 Pin 27

and at Example_3:

// Pin assignments for the smôl stack-up described above

int CS_Pin = 5; // smôl CS0 = ESP32 pin 5

int ARTIC_PWR_EN_Pin = 27; // smôl GPIO0 = ESP32 Pin 27

I don’t know which version of the ESP32 I’m using. How can I find out?

Thanks,

Ceal

Hello Ceal,

When you stack smôl boards, the GPIO pin numbering changes due to the “waterfall” technique:

https://learn.sparkfun.com/tutorials/sm … terfalling

The SPI Chip Select pins change too (the ARTIC R2 changes those, but the ZOE does not):

https://learn.sparkfun.com/tutorials/sm … terfalling

Please take a look at Example1:

https://github.com/sparkfun/SparkFun_AR … no#L25-L42

In your case, because you have the ZOE inserted between the ESP and the ARTIC, the GPIO numbering is different. Do the examples work if you change ARTIC R2 power enable GPIO from 27 to 26? Likewise, change the ZOE power enable GPIO from 26 to 27.

I hope this solves your issue.

Best wishes,

Paul

You can find the Espressif ESP32 Board Package version by opening Tools\Board\Boards Manager. In this screenshot I am using version 2.0.2 - an old version. The latest version is 2.0.7:

Hi Paul,

I have esp32 by Espressif Systems Version 2.0.7, and SparkFun ESP32 Boards by SparkFun Electronics Version 1.0.1 installed.

And my Arduino IDE is version 1.8.19, since installing the CP2104 Drivers didn’t work with the 2.x version at all.

Best,

Ceal

Hi Ceal,

OK - thank you.

Please try changing the GPIO pin numbers - as described above. Please let me know if it fixes your issue.

Best wishes,

Paul

Hi Paul,

Thank you for your help!

After changing the line to

int ARTIC_PWR_EN_Pin = 26 

as suggested, I get the following output:

firmware status IDLE flag is set. The firmware is idle and ready to accept commands.

TX configuration: ARGOS PTT-A3.

RX configuration: ARGOS 3.

The Satellite Detection Timeout is 600 seconds.

Starting satellite detection…

ARTIC R2 Firmware Status:

The firmware status BUSY flag is set. The firmware is busy changing state.

ARTIC R2 MCU instruction result:

MCU command result: success. The configuration command has been accepted.

ARTIC R2 Firmware Status:

The firmware status RX_IN_PROGRESS flag is set. The firmware is receiving.

ARTIC R2 instruction progress:

MCU Instruction Progress: Satellite Detection in progress.

ARTIC R2 Firmware Status:

The firmware status RX_IN_PROGRESS flag is set. The firmware is receiving.

ARTIC R2 instruction progress:

MCU Instruction Progress: Satellite Detection in progress.

… and so on (repeating the last 4 lines of code endlessly)

Is this what there is to be expected at this point? I guess it won’t find any satellite since my CLS account hasn’t benn activated yet, right? Or is there any chance I could detect satellites outside without an active account?

I’ve also tried out Example1_TransmitARGOS2WithPrediction and switched Pins 26 and 27.

The Output:

Starting the u-blox GNSS module…

Starting the ARTIC R2…

Your Platform ID is: 0xXYXYXYXYX

MCU command result: success. The configuration command has been accepted.

TX configuration: ARGOS PTT-A2.

RX configuration: ARGOS 3.

The ARGOS 2/3 TX Frequency is 401.630 MHz.

GPS time is valid

GPS position fix type is 0

Waiting for GPS time to be valid and the fix type to be 3D…

GPS time is valid

GPS position fix type is 0

Waiting for GPS time to be valid and the fix type to be 3D…

… again, with the last 3 lines being repeated endlessly.

Best,

Ceal

Hi Ceal,

I am glad that is ~working for you.

I believe you can still detect satellites even if you do not have active account. But you will not be able to send messages. The example should detect the satellite when it passes overhead - but this can sometimes take ~hours depending on your location and the satellite orbits.

For the GPS 3D fix, please take the system outdoors and make sure it has a clear view of the sky. It will not work well indoors, even close to a window. Modern window glass has a “K” infrared reflective coating on it which can block satellite signals…

Best wishes,

Paul

Hi Ceal,

We learned recently that some ARTIC R2 boards had been incorrectly programmed with the wrong Platform ID. Each board has two IDs: a decimal one which you use to access your data on ArgosWeb; and a hexadecimal one which is embedded in each satellite uplink message. These boards had been incorrectly programmed with the decimal ID instead of the hexadecimal one. You can tell if your board is affected by calling readPlatformID(). If the true hexadecimal ID is returned, all is well. If the value is the decimal ID - expressed in hexadecimal - then your board requires reprogramming as your messages will not be delivered. Please return your board ( https://www.sparkfun.com/returns ). We will reprogram it and return it to you quickly. If your project is time-critical, please contact us again here and we will provide a software work-around. We apologise for the error and the inconvenience.

Best wishes,

Paul