Skip to content

OTA configuration #38

@lauralindzey

Description

@lauralindzey

Phil had partially implemented OTA re-configuration, and we started experimenting with it in the field for arctic pisces.

The procedure to get messages to the buoy is pretty straightforward:

  • use the GUI to set up the desired configuration; click download rather than program; save it as a file with a .sbd extension
  • send an email to data@sbd.pac.disa.mil where the subject contains the IMEI number of the modem and the attachment is that .sbd

However, the code to receive it doesn't quite work yet. I added a few debugging printouts (without the iridium repeater, our most reliable way to test it was to put a buoy outside, send a message, then pull the buoy back inside and look at logs after the first waves message came through.) It appears that the problem is in the iridium code's implementation of __uart_read_dma; for some reason, the uart is busy when it makes a call to _Receive_DMA, so we don't ever get the received message from the modem. On first read, I'm not sure why it's busy there -- if we got to that point, the previous ..._Transmit_DMA should have already finished.

Here's the complete BOOT.log from the test with the best debug output, from microSWIFT 209 sitting in the buoy farm running V2.09_rc5 firmware.

Hello World!
microSWIFT 209.
Firmware major version 2, minor version 9.
Sample window 1
01/01/70 00:00:00: SD card peripheral initialization successful.
01/01/70 00:00:00: Battery Voltage = 13.53 Volts
01/01/70 00:00:00: RF switch set to GNSS port.
01/01/70 00:00:00: Starting accelerometer thread
01/01/70 00:00:00: RTC Initialization successful.
01/01/70 00:00:00: NED Waves initialization successful.
01/01/70 00:00:00: Temperature initialization complete. Temp = 17.0 degC, 62.7 degF.
01/01/70 00:00:01: Light sensor initialization complete. Raw count:
F1 = 1, F2 = 1, F3 = 1, F4 = 2, F5 = 3, F6 = 4, F7 = 7, F8 = 3, NIR = 3, Clear = 10, Dark = 1
01/01/70 00:00:04: Accelerometer self test succeeded. timestamp = 0, X = -0.18, Y = 0.01, Z = 0.99 (g)
01/01/70 00:00:05: GNSS initialization successful.
01/01/70 00:00:05: Iridium modem initialized successfully.
01/01/70 00:00:05: Iridium initialization took 5078l ticks; need 30000l to fully charge.
01/01/70 00:00:06: GNSS successfully switched to circular DMA mode.
04/29/26 03:15:44: GNSS time fully resolved and RTC set.
04/29/26 03:18:59: GNSS failed to get a fix within alloted time of 5 minutes.
04/29/26 03:18:59: Light thread complete.
04/29/26 03:18:59: NED Waves thread complete.
04/29/26 03:18:59: No GNSS fix; resuming accelerometer thread anyways
04/29/26 03:18:59: GNSS thread complete.
04/29/26 03:18:59: Temperature sample window started.
04/29/26 03:18:59: Resuming accelerometer thread
04/29/26 03:18:59: Temperature sample window completed.
04/29/26 03:18:59: File system failed to service request 3, returning code -1.
04/29/26 03:18:59: Temperature thread complete.
04/29/26 03:19:00: Accelerometer sample window started.
04/29/26 03:36:48: Accelerometer-based waves computations completed.
04/29/26 03:36:48: Received accelerometer message:
04/29/26 03:36:48: ....X min/mean/max: -0.6475 / -0.0471 / 1.0576
04/29/26 03:36:48: ....Y min/mean/max: -1.1260 / 0.4924 / 1.2666
04/29/26 03:36:48: ....Z min/mean/max: -1.2959 / -0.1292 / 0.5825
04/29/26 03:36:48: Lat = 0.00, Lon = 0.00
04/29/26 03:36:48: Accelerometer thread complete.
04/29/26 03:36:48: RF switch set to Iridium port.
04/29/26 03:36:53: Number of enqueued Waves messages: 0
04/29/26 03:36:53: Number of enqueued OBS message elements: 0
04/29/26 03:36:53: Number of enqueued Light message elements: 0
04/29/26 03:36:53: Number of enqueued Accelerometer messages: 1
04/29/26 03:36:53: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:36:53: Attempting transmission of NEDWaves telemetry...
04/29/26 03:37:12: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:37:47: Number of enqueued Waves messages: 0
04/29/26 03:37:47: Number of enqueued OBS message elements: 0
04/29/26 03:37:47: Number of enqueued Light message elements: 0
04/29/26 03:37:47: Number of enqueued Accelerometer messages: 1
04/29/26 03:37:47: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:37:47: Attempting transmission of NEDWaves telemetry...
04/29/26 03:38:03: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:38:39: Number of enqueued Waves messages: 0
04/29/26 03:38:39: Number of enqueued OBS message elements: 0
04/29/26 03:38:39: Number of enqueued Light message elements: 0
04/29/26 03:38:39: Number of enqueued Accelerometer messages: 1
04/29/26 03:38:39: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:38:39: Attempting transmission of NEDWaves telemetry...
04/29/26 03:38:55: Iridium transmission unsuccessful. MO status: 32
04/29/26 03:39:31: Number of enqueued Waves messages: 0
04/29/26 03:39:31: Number of enqueued OBS message elements: 0
04/29/26 03:39:31: Number of enqueued Light message elements: 0
04/29/26 03:39:31: Number of enqueued Accelerometer messages: 1
04/29/26 03:39:31: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:39:31: Attempting transmission of NEDWaves telemetry...
04/29/26 03:39:54: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:40:29: Number of enqueued Waves messages: 0
04/29/26 03:40:29: Number of enqueued OBS message elements: 0
04/29/26 03:40:29: Number of enqueued Light message elements: 0
04/29/26 03:40:29: Number of enqueued Accelerometer messages: 1
04/29/26 03:40:29: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:40:29: Attempting transmission of NEDWaves telemetry...
04/29/26 03:40:46: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:41:22: Number of enqueued Waves messages: 0
04/29/26 03:41:22: Number of enqueued OBS message elements: 0
04/29/26 03:41:22: Number of enqueued Light message elements: 0
04/29/26 03:41:22: Number of enqueued Accelerometer messages: 1
04/29/26 03:41:22: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:41:22: Attempting transmission of NEDWaves telemetry...
04/29/26 03:41:39: Iridium transmission unsuccessful. MO status: 32
04/29/26 03:42:15: Number of enqueued Waves messages: 0
04/29/26 03:42:15: Number of enqueued OBS message elements: 0
04/29/26 03:42:15: Number of enqueued Light message elements: 0
04/29/26 03:42:15: Number of enqueued Accelerometer messages: 1
04/29/26 03:42:15: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:42:15: Attempting transmission of NEDWaves telemetry...
04/29/26 03:42:27: Notified of pending configuration message. Length = 65
04/29/26 03:42:27: Iridium transmission successful. MO status: 2
04/29/26 03:42:27: __uart_read_dma HAL_UART_Receive_DMA returned error 2
04/29/26 03:42:27: Trying to receive iridium; uart_driver.read returned -1
04/29/26 03:42:27: Unable to read configuration message. error = -1. Power cycling Iridium.
04/29/26 03:42:29: Number of enqueued Waves messages: 0
04/29/26 03:42:29: Number of enqueued OBS message elements: 0
04/29/26 03:42:29: Number of enqueued Light message elements: 0
04/29/26 03:42:29: Number of enqueued Accelerometer messages: 1
04/29/26 03:42:29: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:42:29: Number of enqueued Waves messages: 0
04/29/26 03:42:29: Number of enqueued OBS message elements: 0
04/29/26 03:42:29: Number of enqueued Light message elements: 0
04/29/26 03:42:29: Number of enqueued Accelerometer messages: 1
04/29/26 03:42:29: Attempting transmission of Accelerometer telemetry...
04/29/26 03:42:41: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:43:17: Number of enqueued Waves messages: 0
04/29/26 03:43:17: Number of enqueued OBS message elements: 0
04/29/26 03:43:17: Number of enqueued Light message elements: 0
04/29/26 03:43:17: Number of enqueued Accelerometer messages: 1
04/29/26 03:43:17: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:43:17: Number of enqueued Waves messages: 0
04/29/26 03:43:17: Number of enqueued OBS message elements: 0
04/29/26 03:43:17: Number of enqueued Light message elements: 0
04/29/26 03:43:17: Number of enqueued Accelerometer messages: 1
04/29/26 03:43:17: Attempting transmission of Accelerometer telemetry...
04/29/26 03:43:29: Iridium transmission unsuccessful. MO status: 18
04/29/26 03:44:05: Number of enqueued Waves messages: 0
04/29/26 03:44:05: Number of enqueued OBS message elements: 0
04/29/26 03:44:05: Number of enqueued Light message elements: 0
04/29/26 03:44:05: Number of enqueued Accelerometer messages: 1
04/29/26 03:44:05: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:44:05: Number of enqueued Waves messages: 0
04/29/26 03:44:05: Number of enqueued OBS message elements: 0
04/29/26 03:44:05: Number of enqueued Light message elements: 0
04/29/26 03:44:05: Number of enqueued Accelerometer messages: 1
04/29/26 03:44:05: Attempting transmission of Accelerometer telemetry...
04/29/26 03:44:19: Iridium transmission unsuccessful. MO status: 32
04/29/26 03:44:54: Number of enqueued Waves messages: 0
04/29/26 03:44:54: Number of enqueued OBS message elements: 0
04/29/26 03:44:54: Number of enqueued Light message elements: 0
04/29/26 03:44:54: Number of enqueued Accelerometer messages: 1
04/29/26 03:44:54: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:44:54: Number of enqueued Waves messages: 0
04/29/26 03:44:54: Number of enqueued OBS message elements: 0
04/29/26 03:44:54: Number of enqueued Light message elements: 0
04/29/26 03:44:54: Number of enqueued Accelerometer messages: 1
04/29/26 03:44:54: Attempting transmission of Accelerometer telemetry...
04/29/26 03:45:09: Iridium transmission unsuccessful. MO status: 32
04/29/26 03:45:45: Number of enqueued Waves messages: 0
04/29/26 03:45:45: Number of enqueued OBS message elements: 0
04/29/26 03:45:45: Number of enqueued Light message elements: 0
04/29/26 03:45:45: Number of enqueued Accelerometer messages: 1
04/29/26 03:45:45: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:45:45: Number of enqueued Waves messages: 0
04/29/26 03:45:45: Number of enqueued OBS message elements: 0
04/29/26 03:45:45: Number of enqueued Light message elements: 0
04/29/26 03:45:45: Number of enqueued Accelerometer messages: 1
04/29/26 03:45:45: Attempting transmission of Accelerometer telemetry...
04/29/26 03:46:05: Iridium transmission unsuccessful. MO status: 32
04/29/26 03:46:40: Number of enqueued Waves messages: 0
04/29/26 03:46:40: Number of enqueued OBS message elements: 0
04/29/26 03:46:40: Number of enqueued Light message elements: 0
04/29/26 03:46:40: Number of enqueued Accelerometer messages: 1
04/29/26 03:46:40: Iridium trying to transmit! Queue lengths: waves = 0, accel = 1, turbidity = 0, light = 0
04/29/26 03:46:40: Number of enqueued Waves messages: 0
04/29/26 03:46:40: Number of enqueued OBS message elements: 0
04/29/26 03:46:40: Number of enqueued Light message elements: 0
04/29/26 03:46:40: Number of enqueued Accelerometer messages: 1
04/29/26 03:46:40: Attempting transmission of Accelerometer telemetry...
04/29/26 03:46:49: Iridium transmission successful. MO status: 0
04/29/26 03:46:49: __uart_read_dma HAL_UART_Receive_DMA returned error 2
04/29/26 03:46:49: Trying to receive iridium; uart_driver.read returned -1
04/29/26 03:46:49: Unable to read configuration message. error = -1. Power cycling Iridium.
04/29/26 03:46:51: Number of enqueued Waves messages: 0
04/29/26 03:46:51: Number of enqueued OBS message elements: 0
04/29/26 03:46:51: Number of enqueued Light message elements: 0
04/29/26 03:46:51: Number of enqueued Accelerometer messages: 0
04/29/26 03:46:51: Iridium trying to transmit! Queue lengths: waves = 0, accel = 0, turbidity = 0, light = 0
04/29/26 03:46:51: Number of enqueued Waves messages: 0
04/29/26 03:46:51: Number of enqueued OBS message elements: 0
04/29/26 03:46:51: Number of enqueued Light message elements: 0
04/29/26 03:46:51: Number of enqueued Accelerometer messages: 0
04/29/26 03:46:51: No cached messages ready to transmit.
04/29/26 03:46:51: RF switch set to Iridium port.
04/29/26 03:46:51: Iridium thread complete, now terminating.
04/29/26 03:46:51: All threads complete. Entering processor standby mode. Alarm set for 04:00:00 UTC.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions