## 2 General Design and Features of the Instrument v2021
### Wave Data Acquisition and Onboard Processing  
The wave data acquisition is performed by a 9-degrees-of-freedom (9-dof) sensor, which performs high-frequency measurements of acceleration, angular rates, and magnetic field on the X, Y, and Z axis of the sensor chip. An industrial quality, thermally compensated, low-noise sensor is used for this (the ST ISM330 DHCX together with the LIS3 MDL). At present, only the vertical wave spectrum is computed, and the absolute orientation (provided by the magnetometer) is not used but can be used in the future to derive directional information. The raw accelerometer and gyroscope data are sampled at approximately 800 Hz and time-averaged into a 100 Hz low-noise sensor value. When performing this averaging, a 3-sigma filtering stage is used, i.e., individual measurements that deviate from the rest of the current 800 Hz sample by more than 3 standard deviations are rejected. This means that each set of 8 samples at 800 Hz, spanning over 10 milliseconds, is filtered (with the n-sigma filter) and averaged. This allows us to discard occasional low-quality measurements (in our experience, a few such measurements are obtained in a 20 min measurement segment; this is most likely inherent to the kind of sensor used and/or may come from a rare irregularity in the functioning of either the 9-dof sensor or the firmware used for communicating with it), to avoid any risk of signal aliasing and to reduce the noise level by performing averaging. This low-noise sensor value averaged at 100 Hz is then fed in real time to a Kalman filter run on the Ambiq Apollo microcontroller at 100 Hz. The Kalman filter itself is provided by an Attitude and Heading Reference System (AHRS) C++ embedded open-source library, provided to the community by Freescale Semiconductors. The Kalman filter implementation performs data fusion for 9-axis MEMS input (i.e., 3-axis accelerometer, gyroscope, and magnetometer) and produces an accurate estimate for the absolute orientation of the sensor in a North, East, Down frame of reference. The Kalman filter output is used for computing the vertical component of the wave acceleration at 100 Hz by projecting the acceleration from the X, Y, Z frame of reference onto the vertical direction, following the absolute orientation information provided by the Kalman filter as a quaternion and subtracting the constant gravity acceleration. Finally, the processed 100 Hz vertical acceleration measurement is time-averaged to 10 Hz. This output frequency is sufficient to measure either wind waves (typical peak frequency 0.2 Hz), swell (typical peak frequency from 0.08 to 0.10 Hz), and waves in ice (typical peak frequencies corresponding to swell, or slightly lower, due to the increased damping rate at higher frequencies) and is a value commonly used in other waves in ice instruments [51]. If necessary, this output sampling frequency can be increased by the user, and the resources available on the microcontroller could allow for at least 20 Hz sampling rate. The whole procedure is implemented through a couple of classes in the code and performed instantaneously. The reader is referred to the open-source implementation released on Github (see Appendix A) for more details. Resorting to a simple 9-dof sensor and running the Kalman filter on the Artemis microcontroller is both much more power effective (total power consumption is around 5 mA for the proposed solution, compared with typically 35 mA using a dedicated full-feature IMU) and significantly less expensive than using a single discrete Inertial Motion Unit component, which performs both tasks on its own (the cost of a high-quality 9-dof sensor is around 15 USD, compared with 50 to 1000 USD for a lower accuracy, or similar accuracy, IMU, respectively). Pseudocode for the data acquisition and Kalman filter processing is presented in the description of Algorithm 1. The wave elevation data processing is also performed on the Ambiq Apollo microcontroller.