ARGOS ARTIC R2 "setTCXOControl: failed!"

Hello,

I’m starting to use an ARGOS ARTIC R2 board, during my first test, I was surprised to see that the ID was not written in hard in the board… (purchased recently). I downgraded the library version to 1.0.9, and now I get this error:

begin: ARTIC R2 Firmware Status (before clearInterrupts):

clearInterrupts: clear INT1: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.

clearInterrupts: clear INT2: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.

begin: ARTIC R2 Firmware Status (after clearInterrupts):

readTCXOControlVoltage: AUTO_DISABLE: 0 SELECT_1V3_TO_2V7: 0 SELECT_1V8: 0 SELECT_3V3: 0

setTCXOControl: failed! voltage: 1.80 new_voltage: 1.30 autoDisable: 1 new_disable: 0

setTCXOControl failed. Freezing…

Can you tell me how to resolve this?

I’m making progress but it still doesn’t work!

I changed the power supply of the board, to be directly connected to the Li-ion battery, I returned to version 1.1.2, it is better, with example 1 (Firmware version) the card transmits its ID but which is not the one specified on the card (neither the platform ID nor the hex code) and the firmware version is not “readable”:

download/file.php?id=8942

Also, when I try to transmit (example 18) I always get this error:

download/file.php?id=8943

Sans titre.jpg

Hi,

0x3030303 is not a valid Platform ID. Something very strange / bad is happening. Please check you are powering and connecting the board correctly:

https://learn.sparkfun.com/tutorials/ar … akout-pins

Please post a photo of your boards, the ARTIC board and your microcontroller board, showing the connections between them. It helps us debug the issue, like this: viewtopic.php?p=237179#p237179

Best wishes,

Paul

Also, it looks like you are using the Adafruit Feather M0 board? Have you changed the GPIO pin numbers to match the Feather board? The library code examples were written for the SparkFun Artemis Thing Plus. The Feather M0 pin numbers will be different.

I hope this helps,

Paul

Thank you for your feedback, yes I have modified the pins to correspond to the feather M0:

int CS_Pin = 18;

int GAIN8_Pin = 10;

int BOOT_Pin = 9;

int INT1_Pin = 13;

int INT2_Pin = 5;

int RESET_Pin = 6;

int ARTIC_PWR_EN_Pin = 11;

int RF_PWR_EN_Pin = 12;

Here is a photo of the assembly, I checked the connections twice (or even three times!):

download/file.php?mode=view&id=8944

Please check the CS pin. I think it should be 19 for the Feather M0 LoRa?

My error for the CS pin, I modified in the code:

int CS_Pin = 19;
int GAIN8_Pin = 10; 
int BOOT_Pin = 9;
int INT1_Pin = 13;
int INT2_Pin = 5;
int RESET_Pin = 6;
int ARTIC_PWR_EN_Pin = 11;
int RF_PWR_EN_Pin = 12

Unfortunately, now I have this error:

begin: ARTIC R2 Firmware Status (before clearInterrupts):
clearInterrupts: clear INT1: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
clearInterrupts: clear INT2: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
begin: ARTIC R2 Firmware Status (after clearInterrupts):
readPlatformID: Platform ID: 0x0
ARTIC R2 boot was successful.
readFirmwareVersion: firmware version: 
ARTIC R2 firmware version is: 
readPlatformID: Platform ID: 0x0
You appear to have an early version of the SparkFun board.
For the transmit examples, you will need to use the Library Manager to select version 1.0.9 of this library.

I wonder if bad instructions were not sent to the Artic R2, knowing that there is a Lora module which also works in SPI on the Feather board…

Hi,

I can not tell from the photo which yellow wire connects to which pin.

But, if your yellow wires are connected in the same order on both boards, then the GPIO pin numbers should be:

RF_EN = 13

PWR_EN = 12

RESETB = 11

INT2 = 10

INT1 = 9

BOOT = 6

G8 = 5

It might have been easier if you had used stacking headers: https://www.sparkfun.com/products/15187

I hope this helps,

Paul

I modified my setup using what I had on hand:

download/file.php?mode=view&id=8950

I modified the pins to correspond to:

int CS_Pin = A5;
int GAIN8_Pin = 5; // Optional. Set to -1 if you don't want to control the gain. The library defaults to maximum power.
int BOOT_Pin = 6;
int INT1_Pin = 9;
int INT2_Pin = 10;
int RESET_Pin = 11;
#ifdef IOTA
int IOTA_PWR_EN_Pin = 8; // IOTA has a single power enable pin
#else
int ARTIC_PWR_EN_Pin = 12; // The ARTIC R2 Breakout has separate enables for the ARTIC and the RF Amplifier
int RF_PWR_EN_Pin = 13;
#endif

Now I have this error:

The firmware status IDLE flag is set. The firmware is idle and ready to accept commands.
The firmware status RX_IN_PROGRESS flag is set. The firmware is receiving.
The firmware status CRC_CALCULATED flag is set. The CRC calculation has finished.
The firmware status IDLE_STATE flag is set. The firmware has returned to the idle state.
The firmware status TX_INVALID_MESSAGE flag is set. Incorrect TX payload length specified.
The firmware status MCU_COMMAND_REJECTED flag is set. Incorrect command sent or firmware is not in idle.
readPlatformID: Platform ID: 0x3030303
ARTIC R2 boot was successful.
readFirmwareVersion: firmware version: 
ARTIC R2 firmware version is: 
readPlatformID: Platform ID: 0x3030303
Your Platform ID is: 0x3030303

Please change CS_Pin to 19 again…

Sorry, I did it, but still almost the same error:

begin: ARTIC R2 Firmware Status (before clearInterrupts):
clearInterrupts: clear INT1: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
clearInterrupts: clear INT2: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
begin: ARTIC R2 Firmware Status (after clearInterrupts):
readPlatformID: Platform ID: 0x0
readPlatformID: Platform ID: 0x0
You appear to have an early version of the SparkFun board.
Please use the Library Manager to select version 1.0.9 of this library.
Freezing...

OK - thanks. I will try and replicate this tomorrow. I do not have a Feather M0 LoRa, but I do have plenty of Feather M0 Adalogger boards.

The LoRa chip has its own Chip Select pin. So it should not be interfering or clashing with the ARTIC R2.

It’s a mystery… I will post again tomorrow when I have tried my tests.

Best wishes,

Paul

Hi,

I have the SparkX ARTIC R2 Breakout connected to an Adafruit Feather M0 Adalogger using stacking headers.

I am powering the Adalogger via USB.

I am using the Adafruit SAMD Boards Package version 1.7.13.

I have selected Adafruit Feather M0 (SAMD21) as the board.

I am using the SparkFun ARGOS ARTIC R2 library version 1.1.2.

I am running Example1 with the following changes:

int CS_Pin = 19;
int GAIN8_Pin = 5; // Optional. Set to -1 if you don't want to control the gain. The library defaults to maximum power.
int BOOT_Pin = 6;
int INT1_Pin = 9;
int INT2_Pin = 10;
int RESET_Pin = 11;
#ifdef IOTA
int IOTA_PWR_EN_Pin = 8; // IOTA has a single power enable pin
#else
int ARTIC_PWR_EN_Pin = 12; // The ARTIC R2 Breakout has separate enables for the ARTIC and the RF Amplifier
int RF_PWR_EN_Pin = 13;
#endif

I also enableDebugging.

In the Serial Console, I see:

attenuateTXgain: attenuation disabled. Transmitting at full power
begin: IO pins are configured. ARTIC has been reset.
begin: ARTIC R2 Firmware Status (before clearInterrupts):
The firmware status IDLE flag is set. The firmware is idle and ready to accept commands.
The firmware status IDLE_STATE flag is set. The firmware has returned to the idle state.
The firmware status RX_CALIBRATION_FINISHED flag is set. The RX offset calibration has completed.
The firmware status DSP2MCU_INT1 flag is set. Interrupt pin 1 is high.
clearInterrupts: clear INT1: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
clearInterrupts: clear INT2: commandResult is: MCU command result: valid. A valid housekeeping command was attempted.
begin: ARTIC R2 Firmware Status (after clearInterrupts):
The firmware status IDLE flag is set. The firmware is idle and ready to accept commands.
readPlatformID: Platform ID: 0x1-----E
ARTIC R2 boot was successful.
readFirmwareVersion: firmware version: ARTIC006
ARTIC R2 firmware version is: ARTIC006
readPlatformID: Platform ID: 0x1-----E
Your Platform ID is: 0x1-----E

The Platform ID is redacted. :smiley:

The two red PWR and RF LEDs are illuminated on the ARTIC board.

Do you see the same thing? Are the LEDs illuminated when you run the example?

Have you made any other changes to the example?

Best wishes,

Paul

I wonder if you need to configure the LoRa Chip Select and Reset pins, to prevent it causing badness on the SPI bus?

Please try adding this code at the start of setup:

pinMode(3, INPUT); // LoRa DIO0 / IRQ
pinMode(8, OUTPUT);
digitalWrite(8, HIGH); // Pull LoRa SPI Chip Select HIGH
pinMode(4, OUTPUT);
digitalWrite(4, HIGH); // Pull LoRa RESET HIGH for >100us
delay(1);
digitalWrite(4, LOW);

Great, I added the code to configure the Lora and it seems to work!

I am continuing the tests, I will try to send messages with Argos then Argos + Lora and I will keep you informed.

Thank you so much

That’s an interesting thought!