# SPDX-License-Identifier: MIT # Copyright (c) 2026 Scott Penrose menuconfig RB9704 bool "RockBLOCK 9704 Iridium modem" default y depends on DT_HAS_ROCK7_ROCKBLOCK_9704_ENABLED depends on SERIAL select RING_BUFFER select UART_INTERRUPT_DRIVEN help Ground Control's RockBLOCK 9704 (Iridium Certus, IMT messages) on the UART its devicetree node sits on. Builds Ground Control's library, pinned pristine at modules/lib/rockblock9704, with a Zephyr serial port and one worker thread that owns it. is the API. if RB9704 config RB9704_MESSAGE_MAX int "Largest message in either direction (bytes)" default 2048 range 16 100000 help The modem takes up to 100 kB, and the library keeps one static buffer of this size for messages out and one for messages in, plus one in this module for the copy rb9704_send takes. 2 kB is three buffers of 2 kB; raise it as far as the RAM allows. config RB9704_POWER bool "Drive the power pins from devicetree" default y if $(dt_compat_any_has_prop,$(DT_COMPAT_ROCK7_ROCKBLOCK_9704),power-gpios) select GPIO help P_EN, I_EN and I_BTD as the devicetree node gives them. Without them the modem is taken to be powered, as the board is with the pins left open. config RB9704_WORKER_STACK_SIZE int "Worker thread stack size" default 8192 help Measured, not guessed: the library parks a 1.5 kB MT segment on the stack in rbPoll(), with cJSON's recursion beneath it. A smaller stack overflows only when a message arrives, which may be days after the change. config RB9704_WORKER_PRIORITY int "Worker thread priority" default 8 config RB9704_RX_RING_SIZE int "Serial receive ring (bytes)" default 8192 help The library's longest JSPR line is 8 kB. config RB9704_SHELL bool "`rb9704` shell command" default y depends on SHELL config RB9704_UPSTREAM_DIR string "Where Ground Control's library is" default "" help Empty: /modules/lib/rockblock9704, where this repository's west.yml puts it. module = RB9704 module-str = rb9704 source "subsys/logging/Kconfig.template.log_config" endif # RB9704