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
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
#
|
#
|
||||||
# rockblock9704-zephyr: Ground Control's RockBLOCK 9704 library built for
|
# rockblock9704-zephyr: Ground Control's RockBLOCK 9704 library built for
|
||||||
# Zephyr, with the serial port, the timing calls and one worker thread to own
|
# Zephyr, with the serial port, the timing calls and one worker thread to own
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
|
|
||||||
menuconfig RB9704
|
menuconfig RB9704
|
||||||
bool "RockBLOCK 9704 Iridium modem"
|
bool "RockBLOCK 9704 Iridium modem"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
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
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
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
|
Iridium network, and speaks JSPR, JSON lines over a 230400 8N1 UART. There
|
||||||
is no AT mode; it is not a 9602 or 9603.
|
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
|
## Ground Control's library
|
||||||
|
|
||||||
This module does not reimplement or fork the protocol. Ground Control's
|
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
|
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
|
## Licence
|
||||||
|
|
||||||
MIT, as Ground Control's library is. The serial port and worker began in
|
MIT, as Ground Control's library is. See `LICENSE`.
|
||||||
the OGLAS satellite bench and were carried through WII6 before moving here.
|
|
||||||
|
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
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
|
|
||||||
description: |
|
description: |
|
||||||
RockBLOCK 9704, Ground Control's Iridium Certus (IMT) modem board, on a
|
RockBLOCK 9704, Ground Control's Iridium Certus (IMT) modem board, on a
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* SPDX-License-Identifier: MIT
|
||||||
|
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
*
|
*
|
||||||
* rb9704.h - the RockBLOCK 9704 Iridium modem on Zephyr.
|
* rb9704.h - the RockBLOCK 9704 Iridium modem on Zephyr.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/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.
|
# 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"
|
description = "Host tools for the RockBLOCK 9704: a command line for the modem and Cloudloop, and a fake modem for testing"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = { text = "MIT" }
|
license = { text = "MIT" }
|
||||||
|
authors = [{ name = "Scott Penrose", email = "scottp@dd.com.au" }]
|
||||||
requires-python = ">=3.10"
|
requires-python = ">=3.10"
|
||||||
dependencies = ["pyserial>=3.5"]
|
dependencies = ["pyserial>=3.5"]
|
||||||
|
|
||||||
@@ -18,6 +19,12 @@ dependencies = ["pyserial>=3.5"]
|
|||||||
modem = ["rockblock9704==1.0.2"]
|
modem = ["rockblock9704==1.0.2"]
|
||||||
test = ["pytest>=7"]
|
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]
|
[project.scripts]
|
||||||
rb9704 = "rb9704tools.cli:main"
|
rb9704 = "rb9704tools.cli:main"
|
||||||
rb9704-fake = "rb9704tools.fakemodem: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."""
|
"""Host tools for the RockBLOCK 9704."""
|
||||||
|
|
||||||
__version__ = "0.1.0"
|
__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.
|
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.
|
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
|
The test harness: a fake modem in a process of its own, and a console to
|
||||||
drive whatever is under test.
|
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."""
|
"""The rb9704 command line against the fake modem."""
|
||||||
|
|
||||||
import subprocess
|
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."""
|
"""The fake modem on its own, in this process: no serial port, no library."""
|
||||||
|
|
||||||
import base64
|
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
|
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.
|
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
|
A real RockBLOCK 9704, with --real-modem PORT. Free checks only: identity
|
||||||
and signal, never a message, so nothing here costs airtime. Indoors the
|
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
|
Zephyr, through the shell sample, against the fake modem: on native_sim
|
||||||
with --zephyr-exe, on a board with --board-console and --board-modem.
|
with --zephyr-exe, on a board with --board-console and --board-modem.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
cmake_minimum_required(VERSION 3.20.0)
|
cmake_minimum_required(VERSION 3.20.0)
|
||||||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
||||||
project(rb9704_shell)
|
project(rb9704_shell)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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 rb9704 shell sample: `rb9704` on the console, and every message from
|
||||||
* the network, every finished send and every signal change printed as it
|
* the network, every finished send and every signal change printed as it
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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.
|
* rb9704_glue.h - what Ground Control's library needs declared on Zephyr.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* SPDX-License-Identifier: MIT
|
||||||
|
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
*
|
*
|
||||||
* rb9704_internal.h - between this module's own files.
|
* rb9704_internal.h - between this module's own files.
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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.
|
* rb9704_power.c - the board's control pins, as the devicetree gives them.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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
|
* 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
|
* whole port: five function pointers filled into the library's global
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* SPDX-License-Identifier: MIT
|
||||||
|
* Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
*
|
*
|
||||||
* rb9704_shell.c - `rb9704` on the Zephyr shell.
|
* rb9704_shell.c - `rb9704` on the Zephyr shell.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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,
|
* rb9704_shims.c - the library's three timing calls on the Zephyr kernel,
|
||||||
* in place of its crossplatform.c, which has no Zephyr branch.
|
* in place of its crossplatform.c, which has no Zephyr branch.
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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.
|
* rb9704_worker.c - the one thread that calls into Ground Control's library.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
|
# Copyright (c) 2026 Scott Penrose <scottp@dd.com.au>
|
||||||
cmake_minimum_required(VERSION 3.20.0)
|
cmake_minimum_required(VERSION 3.20.0)
|
||||||
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE})
|
||||||
project(rb9704_bridge)
|
project(rb9704_bridge)
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
/* SPDX-License-Identifier: MIT
|
/* 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
|
* 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
|
* on `target`, and the other way round. With `host` a board's USB serial
|
||||||
|
|||||||
Reference in new issue
Block a user