A few years ago I built js8-cli, a small Node.js command line wrapper for JS8Call – the amateur radio digital mode software that lets you send free-form text messages over HF radio using a variant of the FT8 protocol. It sits on top of another project of mine, lib-js8call, and the whole point was simple: pipe text into JS8Call from the command line, so you can script it, automate it, and bolt it onto whatever else you’re building. Weather stations, telemetry, “on air” lights – that sort of thing.
It’s the kind of project that gets a handful of downloads a year, quietly does its job, and doesn’t expect much attention. So it was a genuinely nice surprise to find it cited in a peer-reviewed academic paper.
BearWave: radio for rainforest conservation
The paper is Enhancing Remote Conservation in Borneo: NVIS for Wildlife Monitoring and Protection using BearWave, presented at COMPASS ’25 (the ACM SIGCAS/SIGCHI Conference on Computing and Sustainable Societies) in Toronto, and authored by researchers including Cardiff University’s Mark Andrew Butterworth, Charith Perera, Omer Rana, Pablo Orozco-terWengel and Benoit Goossens.
The project they’ve built, BearWave, tackles a genuinely hard problem: how do you monitor wildlife traps and sensors scattered across dense, remote tropical rainforest – like the area around the Danau Girang Field Centre in Sabah, Borneo – without sending staff out on labour-intensive, sometimes risky treks just to check equipment? Conventional connectivity (WiFi, cellular, satellite) either doesn’t reach, doesn’t penetrate the canopy, or costs too much to run at scale.
Their answer leans on a bit of amateur radio physics called Near Vertical Incidence Skywave (NVIS) – bouncing HF signals almost straight up off the ionosphere so they come back down within a couple of hundred kilometers, rather than skipping off around the world. Combined with the FT8/JS8 digital mode (originally designed for weak-signal amateur radio contacts), it means a low-power sensor node in the middle of the jungle can get a message back to a central receiving station, cheaply and reliably, on a budget of under £200 per node.
Where js8-cli comes in
For their testing and evaluation phase, the BearWave team used JS8Call itself to handle the actual radio communication, and my js8-cli package as the tool for scripting messages in and out of it – exactly the use case I built it for, just in a considerably more exciting setting than my back garden. The paper name-checks it directly, noting it as the command line wrapper for lib-js8call that they used to interface with the system.
It’s a strange feeling seeing your own project sitting in the references of an ACM paper next to citations about ionospheric propagation and IoT sensing networks. You write these tools to scratch your own itch – mine was scripting weather telemetry over ham radio – and you genuinely never know where they’ll end up.
Why this matters (to me, at least)
This is exactly the kind of thing that makes maintaining small open source projects worthwhile, even when they’re not the ones racking up thousands of stars. js8-cli has never been a big project. It doesn’t need to be. Somewhere out there, it quietly did a job that helped researchers test a system now aimed at protecting orangutans, elephants and other wildlife in one of the most bio-diverse – and most threatened – rainforests on Earth.
If you’re curious about the underlying tech, both js8-cli and lib-js8call are open source and available on my Bitbucket:
And if you want to read about the BearWave system itself, the full paper is well worth a look: Enhancing Remote Conservation in Borneo: NVIS for Wildlife Monitoring and Protection using BearWave.