Sentinel Core
TestFlight beta · free & open source JS8 Firefly

JS8 on your iPhone.

JS8 Firefly is a JS8 client for iPhone, iPad and Mac. It uses the same modem and messaging as JS8Call, so you can chat, send heartbeats and leave messages with any JS8Call station, from a phone, a Digirig and a QRP rig, or from the Mac in your shack.

Join the TestFlight beta Source on GitHub
JS8 Firefly is in beta testing. The modem and messaging have been checked against JS8Call's own code, and it has decoded and answered real signals, but it hasn't had much time on the air yet. Expect rough edges. Want to help? Join the TestFlight beta. If something doesn't work, please tell me or open an issue.
What it does

Everything JS8Call does, in your pocket.

Real JS8, every speed

The same 8-tone modem, sync and error correction as JS8Call, on Slow, Normal, Fast, Turbo and Ultra. It decodes all five at once and talks to any JS8Call station.

Full JS8Call messaging

Directed queries (SNR?, GRID?, INFO?, STATUS?, HEARING?), auto-replies, heartbeats and their acknowledgements, CQ, groups, relays and compound callsigns. Follow every conversation on the band, or just the one on your offset.

Inbox & store-and-forward

Messages left for you with MSG land in your inbox. Hold messages for other stations with MSG TO: and they can pick them up later with QUERY MSGS.

Digirig over USB-C

Plug a Digirig Lite into the iPhone and PTT is keyed by a tone on the right audio channel. Plug in a QMX or QDX and the app switches to VOX for you.

Rig control

Change frequency in the app and the radio follows, and the app follows the VFO. Presets for the QMX, FTDX3000 and many Yaesu, Kenwood, Elecraft, Icom and Xiegu radios.

Live waterfall

A flattened audio waterfall with every decode labelled on it and a line at the start of each transmit period. Tap a signal to jump to it, and set the contrast with one slider.

Levels at a glance

One panel for audio: a receive meter with a target zone and clipping warning, input gain, transmit level in fine steps and a Tune button. Changes apply live, even mid-transmission.

Grid square from GPS

Set your Maidenhead grid from the phone's location with one tap, or turn on automatic updates so it follows you on a portable or mobile outing. You can still type it in yourself.

Screenshots

What it looks like.

JS8 Firefly's Live tab: waterfall with decode labels, band activity showing a heartbeat, a CQ and an SNR query, and a reply being transmitted
Live. Waterfall, band activity and a reply going out.
JS8 Firefly's Chat tab: an incoming SNR query and the automatic heartbeat and SNR replies
Chat. Incoming queries and the automatic replies.
JS8 Firefly's Stations tab listing heard stations with grid, distance, bearing and SNR
Stations. Who you hear, with grid, distance and bearing.

Screenshots from the iPhone Simulator, decoding JS8 test signals played over the air from a nearby speaker.

Hooking it up

Phone, Digirig, radio.

iPhone (USB-C)→Digirig Lite→Your radio
Digirig LiteSet PTT to Digirig Lite – PTT tone. JS8 audio goes out the left channel and a keying tone on the right keys the radio.
QRP Labs QMX / QDXPlug it straight into the iPhone with a USB-C cable. The app uses the radio's own USB audio and switches PTT to VOX; turn on Digi VOX in the radio's menu.
Yaesu FTDX3000 and other rigsAudio through a Digirig on the rear DATA jack. Rig control over Bluetooth or Wi-Fi from the iPhone.
Rig control on iPhoneiOS doesn't let apps open USB serial ports, so on the phone CAT runs over a Bluetooth LE serial adapter, Hamlib rigctld, flrig or a network serial bridge.
On a MacPick your USB sound interface in Settings. CAT runs straight over the radio's USB serial port, and PTT can use RTS or DTR on that port, as with a Digirig Mobile.

iPhone setup guide (PDF) Step by step for the QMX and the Digirig Lite: wiring, app settings, setting levels, a first on-air test and troubleshooting.

Get it · TestFlight beta

Help test it on your iPhone.

JS8 Firefly isn't on the App Store yet, but you can try it through Apple's TestFlight beta. Open the link below on your iPhone, install the TestFlight app if you don't have it, then tap Accept and Install.

Found a problem, have an idea for a feature, or want something changed? Email me at nathan@nr5p.com. Including your callsign and radio setup helps me track problems down. You can also open an issue on GitHub.

New in beta build 5

  • Set your grid square from GPS: tap Set grid from current location in Settings, or turn on Update grid from GPS to keep it current as you move.
  • Location is used only to work out your grid. It never leaves the phone except as the grid you transmit.

New in beta build 2

  • Levels panel for receive and transmit audio, with live TX level and Tune.
  • Chat can show All band conversations, not just your offset. Tap one to jump to it.
  • Waterfall taps snap onto the signal you meant, and each transmit period is marked.
  • Waterfall contrast slider now goes the way you'd expect, with a wider default range.
  • QMX and QDX switch PTT to VOX automatically.
  • Fixed a crash when pressing Tune with Digirig tone PTT.

Or build it yourself

You can also build it with Xcode on a Mac (free) and run it on your own iPhone or iPad. Open the project, pick your device, set your Apple ID under Signing & Capabilities and press Run.

To run it on the Mac itself, pick My Mac as the destination instead. It's a native Mac app (macOS 14 or later), built from the same code as the iPhone version. The Mac version is newer and has had less testing on the air than the iPhone one.

git clone https://github.com/NR5P/js8-firefly.git
open js8-firefly/JS8Call.xcodeproj

Open source

All of JS8 Firefly's code is on GitHub at github.com/NR5P/js8-firefly. It's free software under the GNU GPL v3, built on the work of JS8Call by Jordan Sherer, KN4CRD, and its contributors. It isn't affiliated with the JS8Call project.

Source code · README & setup · Report a problem · License (GPL v3)

Support on PayPal JS8 Firefly is free and made in my spare time. If it's useful to you, a tip helps keep it going.