my new Nano 33 BLE Sense arrived today. I'm working on a project to send data from the the Nano via an Xbee S2C module to a receiver module connected to a Nano 33 IoT. I had the project working before using an MPU6050 and Mega 2560 board which worked (using Software Serial on the Mega). On the IoT side, I am using 'Uart XBeeRx (&sercom0, 5, 6, SERCOM_RX_PAD_1, UART_TX_PAD_0);' to process the data from the Xbee. Having tried this syntax on the BLE Sense I hit problems and after some Googling found a different syntax. However my new code isn't working in so far as it compiles, uploads and then crashes the BLE Sense (serial port disappears from tools and the onboard LED blinks slowly and erratically). I need to keep resetting the board and suspect there is some issue with my hardware serial implementation. I've cut the code down to simply send accelerometer data. My code is as follows - the EasyTransfer library simplifies the Xbee comms. Any help appreciated!
#include <EasyTransfer.h>
#include <Arduino_LSM9DS1.h>
UART XBeeTx (digitalPinToPinName(6), digitalPinToPinName(5), NC, NC);
EasyTransfer ET;
struct SEND_DATA_STRUCTURE {
float xAcc;
float yAcc;
float zAcc;
};
SEND_DATA_STRUCTURE myData;
// ================================================================
// === INITIAL SETUP ===
// ================================================================
void setup() {
XBeeTx.begin(9600);
ET.begin(details(myData), &XBeeTx);
}
// ================================================================
// === MAIN PROGRAM LOOP ===
// ================================================================
void loop() {
float x, y, z;
if (IMU.accelerationAvailable()) {
IMU.readAcceleration(x, y, z);
}
myData.xAcc = x;
myData.yAcc = y;
myData.zAcc = z;
ET.sendData();
}
-
why not use Serial1? (on Mega too)Juraj– Juraj ♦2021年04月20日 19:53:43 +00:00Commented Apr 20, 2021 at 19:53
-
Hi, I tried that connecting my Xbee out and in pins to D0 and D1 (UART Rx and Tx) but the same problem and using Serial1.begin(9600) and &Serial1 in the ET.begin statement in the code above. The Nano Sense seems to lose its USB connection and locks up. Really can't work out why as it should work. I think the board is OK as I can run some of the example scripts just fine (e.g. accelerometer and print to the USB serial). Google seems really light on hits for UART Hardware Serial in the BLE Sense!RobM– RobM2021年04月20日 22:08:04 +00:00Commented Apr 20, 2021 at 22:08
-
The two boards are use different Arduino cores. The IoT 33 uses a chip family common to Arduino boards; the Nordic Semi ARM chip that's in the BLE Sense is much less so. The ARM chips used in these devices are only so related. The "SERCOM_RX_PAD_1" naming is connected to Atmel (and the 33 IoT); using it as a search term in finding a solution to doing this on your BLE Sense maybe counterproductive.timemage– timemage2021年04月21日 02:00:41 +00:00Commented Apr 21, 2021 at 2:00
-
1Doh! I'm a muppet!! I'm making a call to IMU without having put IMU.begin() in setup. I'd deleted it along with some other code that was redundant but added it back in and the project works like a dream! BLE Sense unit works properly and receiver unit getting the data over the Xbee comms now. Thanks for the comments though.RobM– RobM2021年04月21日 07:15:29 +00:00Commented Apr 21, 2021 at 7:15
-
@RobM, if this is something that makes sense following from the question, in a way that might be useful to someone else, you can post an answer your own question. If the solution has nothing to do with the question asked, then probably the thing to do is just delete the question.timemage– timemage2021年04月21日 23:56:58 +00:00Commented Apr 21, 2021 at 23:56
1 Answer 1
You can't make calls to IMU if you haven't initialised it with IMU.begin()
-
You should be able to mark your own answer as accepted.timemage– timemage2021年04月26日 13:24:25 +00:00Commented Apr 26, 2021 at 13:24