SMx00 Command Line Interface ============================ The ``smx00-cli`` tool is provided with pyflind and may be used to control scalar magnetometers and record data. The source code may also be used as an example of how to create :class:`pyflind.smx00.SMx00` objects and use them. Usage ----- See :doc:`/device_comm` for details on the device URI format. :: usage: smx00-cli [-h] [-v] [-b {115200,230400,460800,921600,1843200}] [-i] [-f [FS]] [-r REGISTER] [-e ENABLE [ENABLE ...]] [-d DISABLE [DISABLE ...]] [-a] [-s] [--reset_schedule] [--ls_registers] [--ls_streams] [--start] [--stop] [--record RECORD] device [device ...] FieldLine Industries SMx00 command line interface positional arguments: device Device URI: e.g. uart:/dev/ttyUSB0:921600 or tcp:HOST:PORT options: -h, --help show this help message and exit -v, --verbose Enable DEBUG logging (default: False) -b {115200,230400,460800,921600,1843200}, --baud {115200,230400,460800,921600,1843200} Change baud rate to this value after connecting to the device (default: None) -i, --ident Identify the device (default: False) -f [FS], --fs [FS] get/set the samplerate in Hz (default: None) -r REGISTER, --register REGISTER Get/set a register, supply addr[:value] (default: None) -e ENABLE [ENABLE ...], --enable ENABLE [ENABLE ...] Enable stream(s) (default: []) -d DISABLE [DISABLE ...], --disable DISABLE [DISABLE ...] Disable stream(s) (default: []) -a, --active_streams List active streams (default: False) -s, --stream_sync Perform stream sync (default: False) --reset_schedule Reset the streaming schedule (default: False) --ls_registers List available device registers (default: False) --ls_streams List available device streams (default: False) --start Start the sensor (default: False) --stop Stop the sensor (default: False) --record RECORD Record active streams to specified csv file (only supports single device) (default: None) Example Session --------------- Identify a device:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0 -i [2025-12-18 12:15:24.476|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: n [2025-12-18 12:15:24.476|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: rtt [2025-12-18 12:15:24.476|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: rx_t [2025-12-18 12:15:24.638|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:15:24.638|INFO|smx00-cli] Identity: [2025-12-18 12:15:24.679|INFO|smx00-cli] model: SM300 [2025-12-18 12:15:24.679|INFO|smx00-cli] fw_version: v2.0.0 [2025-12-18 12:15:24.679|INFO|smx00-cli] sensor_serial: JP3FYD [2025-12-18 12:15:24.679|INFO|smx00-cli] electronics_serial: 0xdf0000008cd2a13b Change the baudrate:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0 -b 1843200 [2025-12-18 12:15:41.995|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: n [2025-12-18 12:15:41.995|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: rtt [2025-12-18 12:15:41.995|INFO|FliDevice[uart:/dev/ttyUSB0]] stream added: rx_t [2025-12-18 12:15:42.158|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:15:42.168|INFO|smx00-cli] set baud rate to 1843200 List available data streams (using new baudrate):: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 --ls_streams [2025-12-18 12:16:20.330|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:16:20.330|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:16:20.330|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:16:20.493|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:16:20.493|INFO|smx00-cli] SM300StreamMap: { 6 (0x06): fw_version 7 (0x07): sensor_serial_lo 8 (0x08): sensor_serial_hi 13 (0x0d): electronics_rev 18 (0x12): larmor_freq 23 (0x17): mag 35 (0x23): logic_module_state 53 (0x35): electronics_2_serial_lo 54 (0x36): electronics_2_serial_hi 55 (0x37): electronics_serial_lo 56 (0x38): electronics_serial_hi 61 (0x3d): pps_clock_count 67 (0x43): pps_raw_output 68 (0x44): pps_raw_input } Enable some streams:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -e larmor_freq pps_clock_count [2025-12-18 12:16:49.297|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:16:49.297|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:16:49.297|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:16:49.460|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:16:49.481|INFO|SM300[JP3FYD]] stream added: larmor_freq [2025-12-18 12:16:49.501|INFO|SM300[JP3FYD]] stream added: pps_clock_count Get the current samplerate:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -f [2025-12-18 12:16:54.759|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 12:16:54.759|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:16:54.759|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:16:54.759|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:16:54.759|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 12:16:54.931|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:16:54.932|INFO|smx00-cli] samplerate: 1000.0 Hz Change the samplerate:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -f 2500 [2025-12-18 12:16:58.329|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 12:16:58.329|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:16:58.329|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:16:58.329|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:16:58.329|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 12:16:58.501|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:16:59.336|INFO|SM300[JP3FYD]] streams synced [2025-12-18 12:16:59.337|INFO|smx00-cli] samplerate: 2500.0 Hz Perform a stream sync (must be done at least once per power cycle before starting the sensor):: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -s [2025-12-18 15:58:43.322|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: 18 [2025-12-18 15:58:43.322|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 15:58:43.322|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 15:58:43.322|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 15:58:43.322|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 15:58:43.505|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 15:58:44.343|INFO|SM300[JP3FYD]] streams synced Start the sensor:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 --start [2025-12-18 12:17:07.173|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:17:07.173|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 12:17:07.173|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:17:07.173|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:17:07.173|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 12:17:07.359|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:17:07.359|INFO|SM300[JP3FYD]] starting sensor Access device registers:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 --ls_registers [2025-12-18 16:16:09.810|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 16:16:09.810|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 16:16:09.810|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 16:16:09.811|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 16:16:09.811|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 16:16:09.983|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 16:16:09.983|INFO|smx00-cli] SM300RegisterMap: { 0 (0x00): csr 2 (0x02): pcb_id 3 (0x03): read_reg 4 (0x04): scratch 23 (0x17): schedule_freq 67 (0x43): checksum_and_state_mon 68 (0x44): uart_rate 77 (0x4d): logic_module_ctrl 101 (0x65): autogain_enable 110 (0x6e): led_ctrl 124 (0x7c): sensor_serial_0 125 (0x7d): sensor_serial_1 126 (0x7e): sensor_serial_2 127 (0x7f): sensor_serial_3 128 (0x80): fw_version_lo 129 (0x81): fw_version_hi 130 (0x82): electronics_serial_0 131 (0x83): electronics_serial_1 132 (0x84): electronics_serial_2 133 (0x85): electronics_serial_3 } user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -r scratch [2025-12-18 16:16:15.488|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 16:16:15.488|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 16:16:15.488|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 16:16:15.488|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 16:16:15.488|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 16:16:15.661|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 16:16:15.682|INFO|smx00-cli] scratch = 0x0 user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 -r scratch:0xdeaf [2025-12-18 16:16:21.919|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 16:16:21.919|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 16:16:21.919|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 16:16:21.919|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 16:16:21.920|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 16:16:22.092|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 16:16:22.113|INFO|smx00-cli] scratch = 0xdeaf Record active streams to a CSV file:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 --record smx00_ex.csv [2025-12-18 12:17:45.464|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:17:45.464|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: 18 [2025-12-18 12:17:45.464|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: 61 [2025-12-18 12:17:45.464|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:17:45.464|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:17:45.648|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:17:45.648|INFO|smx00-cli] recording to smx00_ex.csv until interrupted... ^CSignal received: 2 [2025-12-18 12:18:02.010|INFO|smx00-cli] recorded 41320 samples user@host:~ $ head smx00_ex.csv rx_t,larmor_freq,pps_clock_count,rtt,n 1766085465.463916,339568419,931969323,0,0 1766085465.474021,339571642,931969323,0,1 1766085465.474021,339572930,931969323,0,2 1766085465.474021,339570224,931969323,0,3 1766085465.474021,339568231,931969323,0,4 1766085465.474021,339570722,931969323,0,5 1766085465.474021,339578429,931969323,0,6 1766085465.474021,339586803,931969323,0,7 1766085465.474021,339599675,931969323,0,8 Stop the sensor:: user@host:~ $ smx00-cli uart:/dev/ttyUSB0:1843200 --stop [2025-12-18 12:28:47.808|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rtt [2025-12-18 12:28:47.808|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: larmor_freq [2025-12-18 12:28:47.808|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: rx_t [2025-12-18 12:28:47.809|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: n [2025-12-18 12:28:47.809|INFO|FliDevice[uart:/dev/ttyUSB0:1843200]] stream added: pps_clock_count [2025-12-18 12:28:47.984|INFO|smx00-cli] Connected to device SM300[JP3FYD] [2025-12-18 12:28:47.984|INFO|SM300[JP3FYD]] sensor stopped .. toctree:: :maxdepth: 2