Hi,
Not sure if you solved it already but I made some edits to your code and it seemed to work for me.
I basically just added slave select pulls when you write some packet of bytes.
//https://decawave.com/decaforum/showthread.php?tid=901
#include <SPI.h>
SPISettings settingsA(8000000,MSBFIRST,SPI_MODE0);
//SPISettings settingsA(100000,MSBFIRST,SPI_MODE0);
void setup() {
pinMode(SS,OUTPUT);
Serial.begin(115200);
SPI.begin();
}
void loop() {
Serial.println("request for pos start ");
SPI.beginTransaction(settingsA);
digitalWrite(SS,LOW);
Serial.print("Sending command, getting back these bytes: ");
Serial.print(SPI.transfer(0x02),HEX);
Serial.print(" “);
Serial.print(SPI.transfer(0x00),HEX);
Serial.println(” ");
digitalWrite(SS,HIGH);
// get the SIZE
uint8_t rxSize = 0x00;
while (rxSize == 0x00) {
digitalWrite(SS,LOW);
rxSize = SPI.transfer(0xFF);
digitalWrite(SS,HIGH);
}
Serial.print(“Size:”);
Serial.print(rxSize,HEX);
Serial.println("");
Serial.print(“here are the data DWM1001 sent back:”);
digitalWrite(SS,LOW);
for (byte i = 0; i < rxSize; i++) {
Serial.print(SPI.transfer(0xFF),HEX);
Serial.print(" ");
}
digitalWrite(SS,HIGH);
Serial.println("");
Serial.println("------------------");
SPI.endTransaction();
delay(100);
}