arduino: working altsoftserial with WT61 IMU

This commit is contained in:
Mikkeli Matlock
2026-02-01 12:09:11 +09:00
parent f610f0fed2
commit 4e68dcef5f
3 changed files with 14 additions and 8 deletions

3
arduino/.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
# arduino test files
test/

View File

@@ -83,15 +83,11 @@ void imu_init() {
// Sets WT61 to 9600/20Hz - see IMU.md for command reference
// Idempotent: if already at 9600, command is garbled and ignored
imuSerial.begin(115200);
/* uncomment after I wire up Nano D9 -> WT61 RX*/
// imu_send_cmd(0x64); // 9600 baud / 20Hz
// delay(100); // Let WT61 process and restart
imu_send_cmd(0x64); // 9600 baud / 20Hz
delay(100); // Let WT61 process and restart
// Switch to working baud rate
// imuSerial.begin(9600);
/* uncomment after I wire up Nano D9 -> WT61 RX*/
imuSerial.begin(9600);
rxIndex = 0;
currentData = {0};
}

View File

@@ -12,17 +12,24 @@ static unsigned long lastTelemetryTime = 0;
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
comms_init(); // Hardware Serial first so we can debug
Serial.println(F("[INIT] comms ok"));
voltage_init();
Serial.println(F("[INIT] voltage ok"));
imu_init(); // AltSoftSerial on pins 8(RX)/9(TX)
comms_init(); // Hardware Serial to Pi at 115200
Serial.println(F("[INIT] imu ok"));
// Let IMU warm up a bit before calibrating
// (WT61 needs a moment to stabilize after power-on)
delay(500);
Serial.println(F("[INIT] calibrating..."));
// Zero calibration - current position becomes reference
// Blocks for ~250ms while sampling
imu_calibrate();
Serial.println(F("[INIT] calibration done, entering loop"));
}
void loop() {