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:
1 parent
90d56e4c6d
commit
97affae86c
28 files changed
+76
-3
No files matched your search
@@ -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,4 +1,5 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||
|
||||
menuconfig RB9704
|
||||
bool "RockBLOCK 9704 Iridium modem"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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,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.
|
||||
*
|
||||
|
||||
@@ -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.
|
||||
#
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,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,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,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,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,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,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,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,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,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,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,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
|
||||
|
||||
Reference in new issue
Block a user