Who made it, and why: author, credits, licence and support

The README says who wrote it and the two projects it was built for, WII6
and OGLAS, with their sites; credits Ground Control for the modem and
the library that does the protocol work; and gives the licence with
contact details, where to report issues and what helps in a report, and
that it is not a Ground Control product. The licence, every source file
and the Python package's metadata carry the copyright and email; the
package lists its homepage, repository, issues and changelog.
This commit is contained in:
scottp committed 2026-10-09 13:16:30 +11:00
1 parent 90d56e4c6d
commit 97affae86c
28 files changed
+76 -3

No files matched your search

+1
View File
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
#
# rockblock9704-zephyr: Ground Control's RockBLOCK 9704 library built for
# Zephyr, with the serial port, the timing calls and one worker thread to own
+1
View File
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
menuconfig RB9704
bool "RockBLOCK 9704 Iridium modem"
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2026 Scott Penrose
Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+33 -2
View File
@@ -11,6 +11,13 @@ The 9704 sends and receives IMT messages of up to 100 kB through the
Iridium network, and speaks JSPR, JSON lines over a 230400 8N1 UART. There
is no AT mode; it is not a 9602 or 9603.
rockblock9704-zephyr is written and maintained by Scott Penrose
([Digital Dimensions](https://www.dd.com.au/)). It was built for two
projects that send data home by satellite:
[WII6](https://wii6.au/), a wave-measuring buoy, and
[OGLAS](https://oglas.au/), a fleet of LoRa sensors, repeaters and hubs.
Both run it, and neither is needed to use it.
## Ground Control's library
This module does not reimplement or fork the protocol. Ground Control's
@@ -175,7 +182,31 @@ docs/TESTING.md the tests and how to run them
west.yml the pins
```
## Credits
- [Ground Control](https://www.groundcontrol.com/), for the RockBLOCK 9704
and its [C library](https://github.com/rock7/RockBLOCK-9704) (MIT),
which does all of the protocol work. This module builds it unchanged.
- The serial port and the worker began in OGLAS's satellite bench and were
carried through WII6 before moving here.
## Licence
MIT, as Ground Control's library is. The serial port and worker began in
the OGLAS satellite bench and were carried through WII6 before moving here.
MIT, as Ground Control's library is. See `LICENSE`.
Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
* https://www.sh3d.com.au/ - Sh3d
* https://www.dd.com.au/ - Digital Dimensions
## Support
Report issues on the [GitHub mirror](https://github.com/SH3D/rockblock9704-zephyr/issues)
(the Gitea instance does not allow public sign-ups). Most helpful in a
report: the output of `rb9704 spy on` around the problem, and the modem's
firmware version from `rb9704 info`.
## Disclaimer
This is not an official Ground Control product. Use at your own risk, and
remember that every `send` costs airtime.
+1
View File
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
description: |
RockBLOCK 9704, Ground Control's Iridium Certus (IMT) modem board, on a
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704.h - the RockBLOCK 9704 Iridium modem on Zephyr.
*
+2
View File
@@ -1,4 +1,6 @@
#!/usr/bin/env bash
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
#
# install.sh - set up the RockBLOCK 9704 host tools.
#
+7
View File
@@ -8,6 +8,7 @@ version = "0.1.0"
description = "Host tools for the RockBLOCK 9704: a command line for the modem and Cloudloop, and a fake modem for testing"
readme = "README.md"
license = { text = "MIT" }
authors = [{ name = "Scott Penrose", email = "scottp@dd.com.au" }]
requires-python = ">=3.10"
dependencies = ["pyserial>=3.5"]
@@ -18,6 +19,12 @@ dependencies = ["pyserial>=3.5"]
modem = ["rockblock9704==1.0.2"]
test = ["pytest>=7"]
[project.urls]
Homepage = "https://www.dd.com.au/"
Repository = "https://github.com/SH3D/rockblock9704-zephyr"
Issues = "https://github.com/SH3D/rockblock9704-zephyr/issues"
Changelog = "https://github.com/SH3D/rockblock9704-zephyr/blob/main/CHANGELOG.md"
[project.scripts]
rb9704 = "rb9704tools.cli:main"
rb9704-fake = "rb9704tools.fakemodem:main"
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""Host tools for the RockBLOCK 9704."""
__version__ = "0.1.0"
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
rb9704 - drive a RockBLOCK 9704 from the host over its USB-C port.
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
rb9704-fake - a fake RockBLOCK 9704: JSPR over a serial port, no satellites.
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
The test harness: a fake modem in a process of its own, and a console to
drive whatever is under test.
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""The rb9704 command line against the fake modem."""
import subprocess
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""The fake modem on its own, in this process: no serial port, no library."""
import base64
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
Ground Control's own Python binding (the rockblock9704 package, the same C
library this repository builds into Zephyr) against the fake modem on a pty.
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
A real RockBLOCK 9704, with --real-modem PORT. Free checks only: identity
and signal, never a message, so nothing here costs airtime. Indoors the
+2
View File
@@ -1,3 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
"""
Zephyr, through the shell sample, against the fake modem: on native_sim
with --zephyr-exe, on a board with --board-console and --board-modem.
+1
View File
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(rb9704_shell)
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* The rb9704 shell sample: `rb9704` on the console, and every message from
* the network, every finished send and every signal change printed as it
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_glue.h - what Ground Control's library needs declared on Zephyr.
*
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_internal.h - between this module's own files.
*/
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_power.c - the board's control pins, as the devicetree gives them.
*
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_serial.c - the library's serial port on a Zephyr UART. This is the
* whole port: five function pointers filled into the library's global
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_shell.c - `rb9704` on the Zephyr shell.
*
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_shims.c - the library's three timing calls on the Zephyr kernel,
* in place of its crossplatform.c, which has no Zephyr branch.
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* rb9704_worker.c - the one thread that calls into Ground Control's library.
*
+1
View File
@@ -1,4 +1,5 @@
# SPDX-License-Identifier: MIT
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
cmake_minimum_required(VERSION 3.20.0)
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
project(rb9704_bridge)
+1
View File
@@ -1,4 +1,5 @@
/* SPDX-License-Identifier: MIT
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
*
* A two-way UART bridge, for the test rig: every byte in on `host` goes out
* on `target`, and the other way round. With `host` a board's USB serial