Pat Winlink Radio Email Station
This hands-on lab explores off-grid emergency telecommunications and digital amateur radio networking by establishing an automated Winlink email station using the Pat open-source client. Students integrate a host computer platform with high-frequency (HF) and very-high-frequency (VHF/UHF) transceivers, USB soundcard interfaces, hardware terminal node controllers, and external digital modems. Working through station deployment, students configure computerized transceiver control via Hamlib, interface GPS receivers to transmit Maidenhead grid position reports, and establish data links using protocols such as AX.25, PACTOR, VARA, and ARDOP across both peer-to-peer and Internet gateway paths. Participants gain practical experience in digital RF communication, serial transceiver interfacing, acoustic and baseband modem configuration, and resilient wireless data protocols.
Uploaded by demo on 2026-09-03 · ready · Electronics · Original source ↗
Files: go.mod · pat_README.md
Readiness checks
-
complete 2026-09-03 03:51 🛡 Cybersecurity: Review before networking · 5 findings 7 searches · 10 pagesview · PDF
Latest report — 2026-09-03 03:51
Readiness: Pat Winlink Radio Email Station
Verdict: Ready with caveats · 2026-09-02 · est. parts cost $290–$1,570 for the core station (add $450–$2,000 only if PACTOR mode is required) Cybersecurity — software & network: Review before networking
This is the cold check for this lab — there is no previous readiness report, so the prices, sellers and availability recorded below establish the baseline that future checks will measure drift against. Five of the six items on the bill of materials are commodity computing and amateur-radio equipment, currently listed for sale by multiple named sellers, and the lab's own snapshot grants wide substitution latitude on every one of them. The station can be built and taught today. The single troubled item is the SCS PTC series PACTOR controller: no unit in that series is in current production, leaving only a used market, and the current-production successor is not on the tested-hardware list of the driver this project pins. That is a caveat rather than a blocker because the lab itself scopes the PACTOR controller to one optional operating mode — Pat's telnet, AX.25, ARDOP and VARA transports need no PACTOR hardware at all, and the readily available soundcard interface below carries them.
Action required
| Part | Problem | Recommended action |
|---|---|---|
| SCS PTC Series PACTOR Controller | Obsolete. No PTC-II-series unit is in current production; the manufacturer's site lists only the PXdragon DR-9400 as a current device and marks both P4dragon models "no longer available". Used units are listed at $449.96–$639.20. | First decide whether PACTOR is needed at all — it is optional for this lab, and the soundcard interface covers ARDOP, VARA and packet. If it is needed, buy a used PTC-IIex with an ESN (~$639); it is on the pinned driver's tested list. Do not buy the $1,853–$2,000 DR-9400 without confirming driver support first (see Substitutes). |
| SCS PTC Series PACTOR Controller (used purchase) | PTC-II and early PTC-IIe units without an ESN can no longer be licensed for Pactor-III — SCS issues no new callsign-keyed codes. | Check for the bar-code ESN label on the underside before buying. Without it the modem runs Pactor-II only; an ESN retrofit plus licence runs about $350 on top of the purchase price. |
| Amateur Radio Transceiver | Not a sourcing problem — a scoping trap. The two cheapest listings are VHF/UHF-only or 10 m-only radios, which cannot do HF Winlink. | If the lab teaches HF Winlink, budget the $595–$1,100 HF SSB tier (Xiegu X6100, Icom IC-7300). Confirm the chosen model against the Hamlib supported-rig list before ordering. |
Cybersecurity — software & network
Review before networking — Thirty-five pinned dependencies were checked and three carry advisories at their exact pinned versions, the required Go toolchain line is past end of life, and the peer-to-peer listener ships with an empty password — all fixable, but each needs attention before the station goes on a shared network.
| Component | Version | How known | Support status |
|---|---|---|---|
| Pat (Winlink client application) | not determined | not determined (The lab's materials pin no Pat release version; go.mod declares only the module path github.com/la5nta/pat.) | — |
| Go toolchain | 1.24.0 | read from project (go directive in go.mod (fetched/01-go.mod, line printed verbatim by run_python: 'go 1.24.0')) | unsupported since 2026-02-10 |
| golang.org/x/net | v0.38.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/mod | v0.22.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/sys | v0.40.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| github.com/gorilla/mux (web mailbox HTTP router) | v1.8.1 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/gorilla/websocket (web mailbox live updates) | v1.5.3 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/microcosm-cc/bluemonday (HTML sanitiser) | v1.0.27 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/la5nta/wl2k-go (Winlink protocol stack) | v1.0.1 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/harenber/ptc-go/v2 (SCS PACTOR modem driver) | v2.2.4 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/n8jja/Pat-Vara (VARA modem driver) | v1.2.0 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/albenik/go-serial/v2 (serial / CAT port access) | v2.6.1 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/vuln (govulncheck tool directive) | v1.1.4 | read from project (tool directive and indirect require entry in go.mod (fetched/01-go.mod)) | — |
| Hamlib (rigctl transceiver control) | not determined | not determined (Named in the lab's README as an external binary dependency; no version is stated anywhere in the lab's materials.) | — |
| Host operating system (Linux, macOS, Windows or Android) | not determined | not determined (The lab's README names four possible operating systems and pins no version or distribution for any of them.) | — |
| VARA HF/FM and ARDOP software TNC engines | not determined | not determined (External closed-source software modems named by protocol in the lab's README; no version is stated.) | — |
| Component | Finding | Severity | Fix available? |
|---|---|---|---|
| golang.org/x/mod | Two advisories affect golang.org/x/mod at the pinned v0.22.0, both in the module checksum-database code that verifies downloaded dependencies, so an instructor rebuilding Pat from source could have a tampered dependency accepted as genuine. — GO-2026-6179, GO-2026-6180 | moderate | Yes — update to v0.40.0 |
| golang.org/x/net | Ten advisories affect golang.org/x/net exactly as pinned at v0.38.0, including a moderate-severity denial of service in its HTML parser and a panic when parsing malformed DNS records, so malformed message content or a hostile network response could crash the station's web mailbox or its name resolution. — GHSA-5cv4-jp36-h3mw, GO-2026-5942, GO-2026-5025, GO-2026-5026 (+2 more) | moderate | Yes — update to v0.56.0 |
| golang.org/x/sys | One advisory, an integer overflow in a Windows-only string helper, affects golang.org/x/sys at the pinned v0.40.0; it matters only if the station is built and run on Windows rather than on the Linux single-board computer the lab describes. — GO-2026-5024 | low | Yes — update to v0.44.0 |
| Go toolchain | The Go 1.24 release line that go.mod asks for reached end of life on 2026-02-10, so the toolchain this station is built with no longer receives security fixes of its own. | posture | Mitigation only — build and run the station with a Go release that still receives security updates; the go directive in go.mod sets a minimum, so a newer toolchain can build the project unchanged |
| Pat web mailbox and telnet-p2p listener | Pat's shipped defaults bind the web mailbox to localhost:8080 with no authentication setting defined for it anywhere in cfg/config.go, and the telnet peer-to-peer listener defaults to ListenAddr ':8774' with an empty password, so enabling the P2P listener the way the lab's example session does publishes a passwordless service on every network interface. | posture | Mitigation only — leave the web mailbox on localhost and reach it over an SSH tunnel, set a non-empty telnet-p2p password before enabling the listener, and keep the station on an isolated network segment |
What this means for your lab
Every one of the 35 software libraries this project pins was checked against the public vulnerability database this run, and 32 came back clean. Three did not, and one of them matters most: the networking library that handles HTML and DNS has ten known problems at the exact version pinned here, any of which could crash the station rather than let someone take it over. The bigger practical risk is how the station is placed on a network. Out of the box Pat's web mailbox is reachable only from the machine it runs on, which is the safe default and worth keeping. But the peer-to-peer listener that the lab's own example switches on listens on every network interface with a blank password, and there is no login on the web mailbox at all if you move it off localhost so students can reach it from another machine. Anyone else on the same network could then read, send and delete mail as the station's callsign, which on an amateur licence is the operator's personal responsibility. Finally, the Go toolchain version the project asks for stopped receiving security updates in February 2026. Practical steps: keep the web interface bound to localhost and reach it over an SSH tunnel, set a real telnet password before enabling the peer-to-peer listener, put the station on its own isolated network segment rather than the campus network, update the three flagged libraries, and build with a current Go release. Talk to campus IT before connecting this to a shared network.
Not checked
- Pat (Winlink client application): The lab's materials pin no Pat release version, so no advisory lookup against a specific version was possible.
- Hamlib (rigctl): Version not stated in the lab's materials; without a concrete version neither an advisory lookup nor a support-status lookup can return a meaningful answer.
- Host operating system (Linux, macOS, Windows or Android): The lab names four possible operating systems and pins no version or distribution, so no end-of-life or advisory lookup was possible.
- VARA HF/FM and ARDOP software TNC engines: External closed-source software modems with no version stated and no vulnerability database covering them; absence of advisories here is not evidence of safety.
Parts
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| Host Computer System | Raspberry Pi 4 Model B or any PC/SBC running Go 1.24 binaries with USB/serial host ports | readily available | not reported | $55.00 (2GB) – $189.59 (8GB) | PiShop USA, eBay, Best Buy |
| Amateur Radio Transceiver | HF or VHF/UHF, SSB or FM voice/data, CAT rig control, Hamlib-supported; 13.8 V DC nominal | readily available | not reported | $119.99 (VHF/UHF) – $1,039.95 (HF) | Buy Two Way Radios, GigaParts |
| SCS PTC Series PACTOR Controller | External enclosure, DB9/USB serial host port + multi-pin DIN radio port; 13.8 V DC nominal (9–15 V), 200–500 mA | obsolete or discontinued — used market only | not reported | $449.96 (PTC-IIe, used) – $639.20 (PTC-IIex, used) | Boaters Resale Shop of Texas; eBay seller movemarine |
| Radio Audio / Soundcard TNC Interface | External USB peripheral, radio accessory jack, optoisolated PTT; 5 V USB bus powered | readily available | not reported | $100.80 (SignaLink SLUSB6PM) – $168.55 | DX Engineering, ML&S, eBay |
| USB to Serial Rig Control (CAT) Cable | USB-A to DB9 / mini-DIN / 3.5 mm TRS; FTDI, CP2102 or CH340 bridge | readily available | not reported | $7.99 – $50.00 | Waveshare, Ham Radio Outlet, eBay |
| GPS Receiver (optional) | External USB/serial puck, NMEA 0183 at 4800 or 9600 baud; 5 V USB bus powered | readily available | not reported | $7.00 – $119.95 | Hinesight, The GPS Store, West Marine |
Stock levels are not reported for any row: every item on this bill of materials is a retail product priced through shopping listings rather than an authorized-distributor catalogue part, and those listings publish price and seller but not inventory. "Readily available" here means currently listed for sale by the named sellers.
Substitutes
| For part | Substitute | Differences | Verified | Judgment |
|---|---|---|---|---|
| SCS PTC Series PACTOR Controller | SCS P4dragon DR-7400 / DR-7800 | Same manufacturer and command set. The pinned driver github.com/harenber/ptc-go/v2 v2.2.4 covers it — the driver's wiki states it is "tested against the PTC-II, -III and DR-7X00 (since v2.2.0) series". Manufacturer states the DR-7800 has "pin-compatible radio ports – easy upgrade from PTC-II". USB host port satisfies the snapshot's DB9/USB requirement. Needs config.json "baudrate": 829440 instead of 57600 — a configuration change, not an incompatibility. | verified: ptc-go v2.2.4 driver support for the DR-7X00 series (ptc-go wiki, fetched this run) and PTC-II pin-compatible radio ports on the DR-7800 (scs-pactor.com, fetched this run). not verified: current price and stock — no retail listing for either model appeared in this run's evidence and the manufacturer marks both "no longer available"; supply-voltage range not stated on any page fetched this run. | Best technical fit and the only model the pinned driver is actually tested against — but no current source. Watch the used market; cannot be recommended as a purchase today. |
| SCS PTC Series PACTOR Controller | SCS PXdragon DR-9400 — $1,853.12 WiMo / $1,999.99 DX Engineering | Supply rail 12–30 V covers the lab's 13.8 V nominal — no supply-rail exclusion. Current draw 270 mA typical / 1 A max against the original's 200–500 mA: exceeds the original ceiling, acceptable on a supply already feeding a 20 A transceiver. USB, LAN and RS-232 host interfaces satisfy the DB9/USB requirement. Manufacturer states it is "software compatible with PTC-II and P4dragon applications". In current production and in stock. | verified: supply-voltage range 12–30 V against the lab's 13.8 V nominal rail, and current draw, from the SeaTech Systems product page fetched this run; current price and stock from this run's shopping evidence; the manufacturer's claim of PTC-II software compatibility (scs-pactor.com, fetched this run). not verified: harenber/ptc-go v2.2.4 support for the DR-9400 specifically — the driver's wiki lists its tested hardware as "PTC-II, -III and DR-7X00", which does not include the DR-9400; radio-port pin compatibility with a PTC-II cable — stated by the manufacturer for the DR-7800 only and silent for the DR-9400. | Plausible, unverified. Do not commit $1,850–$2,000 on the strength of a marketing compatibility line — confirm DR-9400 support with the ptc-go project first, or buy a used driver-tested PTC-IIex instead. |
Verify any substitute against its datasheet — and, for these modems, against the ptc-go driver's own supported-hardware notes — before ordering.
Other dependencies
- Board fabrication — not applicable. The lab ships no PCB design files, Gerber archives or layer stackups; the station is off-the-shelf equipment joined by cables. There is nothing to fabricate and no fab-house risk.
- Project homepage http://getpat.io — live (fetched this run).
- Winlink 2000 system overview http://winlink.org — live (fetched this run).
- Project repository https://github.com/la5nta/pat — live (the project manifest was fetched from its master branch this run).
- PACTOR driver documentation https://github.com/harenber/ptc-go — live, but relocated. The repository README now says only that documentation has moved to the wiki; the substantive setup and supported-hardware notes are at the repository wiki, which was fetched this run.
- Protocol stack repository https://github.com/la5nta/wl2k-go — not checked directly. It reaches this lab as a pinned dependency rather than a separate download.
Watch list
- SCS PTC series PACTOR controller — the one item with no new-production source. Used supply on eBay and marine resale sites is thin and priced by condition; expect the $449.96–$639.20 band to move and listings to disappear between checks. Re-check whether the ptc-go project has added the DR-9400 to its tested list, which would open a current-production path.
- P4dragon DR-7400 / DR-7800 — driver-supported but marked "no longer available" by the manufacturer this run. If either returns to stock anywhere it becomes the best answer for this line; worth a look each check.
- Amateur radio transceiver — no obsolescence risk, but the HF models that make this lab interesting sit at $595–$1,100 and are the largest single line in the budget. Watch for price movement and for the chosen model's Hamlib support status.
- Raspberry Pi 4 Model B — an older board still widely listed at a wide spread ($55–$189 for different RAM tiers). If supply thins, any PC or newer Pi satisfies the snapshot's requirement, so this is a price watch rather than an availability risk.
- Tigertronics SignaLink USB — sold in radio-specific connector variants; the variant needed depends on the transceiver chosen. A radio change mid-course silently invalidates the interface already bought.
Snapshot What the lab depended on when it was uploaded — the baseline the readiness checks research against.
This lab builds an amateur radio email station using Pat, an open-source cross-platform Winlink 2000 client written in Go. The system connects a host computing platform (running Linux, macOS, Windows, or Android) to amateur radio transceivers and external digital modem controllers to exchange email messages over high-frequency (HF) and very-high-frequency (VHF/UHF) radio bands or direct Internet (Telnet) connections. Electrically, the station relies on mixed-voltage operating rails: standard 5 V / 3.3 V DC logic and USB power rails for the host computer, GPS receiver, and serial/soundcard adapters, alongside nominal 13.8 V DC (typically 11.5 V to 14.5 V DC) power rails for external amateur radio transceivers and dedicated hardware PACTOR modems.
Bill of Materials
The repository does not supply custom printed circuit board (PCB) CAD files, schematics, or an internal board-level BOM. The station is constructed entirely from external commodity computing hardware, amateur radio transceivers, data controllers, and cabling interfaces described in the project documentation and driver manifests.
Host Computer System
- Identity: Host personal computer or single-board computer (such as a Raspberry Pi, desktop PC, or laptop) running Linux, OS X, Windows, or Android. Described only by operating system in pat_README.md.
- Quantity: 1
- Footprint/package: Standalone chassis or single-board computer enclosure.
- Electrical constraints: Supply rail varies by platform (standard 5 V DC via USB-C for single-board computers, or 100 V to 240 V AC mains for desktop/laptop supplies). USB ports must supply 5 V DC at ≥ 500 mA to power attached modems and serial interfaces.
- Substitution latitude: Any computing platform capable of executing Go 1.24 binaries, supporting USB/serial host ports, and hosting the web interface.
- Control operated by student: Yes; power buttons, keyboard, mouse/touchscreen interface.
- Sourcing plan: retail shopping search: Raspberry Pi 4 Model B single board computer or x86 PC
Amateur Radio Transceiver
- Identity: HF or VHF/UHF amateur radio transceiver capable of single-sideband (SSB) or frequency modulation (FM) voice/data transmission and CAT rig control. Described only by mode capabilities in pat_README.md.
- Quantity: 1
- Footprint/package: Standalone desktop or mobile amateur radio equipment chassis.
- Electrical constraints: Operates on a nominal 13.8 V DC power supply rail (typically 11.5 V to 14.5 V DC), drawing up to 20 A peak during 100 W RF transmission.
- Substitution latitude: Any amateur radio transceiver supported by Hamlib (rigctl) with dedicated data/audio input-output ports or microphone/speaker jacks.
- Control operated by student: Yes; operated control (VFO tuning dial, power toggle, RF gain, and mode selectors).
- Sourcing plan: retail shopping search: Hamlib compatible amateur radio transceiver
SCS PTC Series PACTOR Controller
- Identity: Special Communications Systems (SCS) PTC series PACTOR modem controller (e.g. PTC-II, PTC-III, or Dragon series). Referenced directly by the Go module github.com/harenber/ptc-go/v2 and listed as supported hardware in pat_README.md.
- Quantity: 1 (required for PACTOR mode operation).
- Footprint/package: External desktop metal enclosure with DB9/USB serial host port and multi-pin DIN transceiver port.
- Electrical constraints: Power input nominal 13.8 V DC (operable 9 V to 15 V DC), drawing 200 mA to 500 mA. Serial interface communicates at RS-232 or USB UART voltage levels.
- Substitution latitude: Must be an authentic SCS PTC series modem because the underlying harenber/ptc-go driver communicates via the proprietary SCS PTC serial control instruction set.
- Control operated by student: Standby/power switch; otherwise software-driven.
- Sourcing plan: retail shopping search: SCS PTC PACTOR controller modem
Radio Audio / Soundcard TNC Interface
- Identity: External amateur radio soundcard audio interface or hardware terminal node controller (TNC) for AX.25, ARDOP, VARA, or WINMOR digital modes (e.g., Tigertronics SignaLink USB, DRA series, or Kantronics TNC). Described only by protocol capability in pat_README.md.
- Quantity: 1 (required when running audio-frequency shift keying or soundcard software modems).
- Footprint/package: External desktop peripheral enclosure with USB host port and radio accessory jack.
- Electrical constraints: Powered via 5 V DC USB bus. Audio lines carry millivolt-level microphone and line-level signals with galvanic/transformer isolation. Push-to-Talk (PTT) keying line optoisolated.
- Substitution latitude: Any soundcard interface or hardware TNC providing audio input/output and PTT assertion compatible with the host OS and transceiver.
- Control operated by student: Yes; RX audio, TX audio, and VOX/delay potentiometer thumbwheels.
- Sourcing plan: retail shopping search: USB amateur radio soundcard audio interface SignaLink
USB to Serial Rig Control (CAT) Cable
- Identity: USB-to-UART / RS-232 serial converter cable matching transceiver CAT / CI-V protocols. Referenced via github.com/albenik/go-serial/v2 and Hamlib integration.
- Quantity: 1
- Footprint/package: Overmolded USB-A connector to DB9, mini-DIN, or 3.5 mm TRS connector assembly.
- Electrical constraints: Host side 5 V USB; transceiver side logic levels (TTL 5 V, 3.3 V, or RS-232 ±12 V depending on radio model).
- Substitution latitude: Any serial adapter based on standard UART bridge chipsets (FTDI, CP2102, CH340) wired to match the specific radio rig control pinout.
- Control operated by student: No (fixed cable assembly).
- Sourcing plan: retail shopping search: USB to RS232 CAT control programming interface cable
GPS Receiver
- Identity: External NMEA-compatible GPS/GNSS receiver module. Described in pat_README.md under position reporting ("Post position reports with location from local GPS, browser location or manual entry").
- Quantity: 1 (optional if browser geolocation or manual entry is used).
- Footprint/package: External USB or serial puck enclosure with integrated patch antenna.
- Electrical constraints: Powered via 5 V DC USB bus; delivers standard NMEA 0183 serial sentences (4800 or 9600 baud).
- Substitution latitude: Any GPS receiver outputting standard NMEA 0183 data over a virtual serial COM port.
- Control operated by student: No.
- Sourcing plan: retail shopping search: USB NMEA 0183 GPS receiver puck
Software and network dependencies
The software stack consists of the Go programming language runtime, the Pat application binary, direct and indirect Go package dependencies defined in the module manifest, and external system helper binaries for rig control and software modem emulation.
Go Programming Language Runtime
- Name: Go Toolchain
- Repository: https://go.dev/dl/
- Version: 1.24.0
- Where the version came from: pinned in go.mod
- Whether versions are pinned at all: Pinned via the go directive (go 1.24.0) in go.mod.
- Manifest location: go.mod line 3
- Check plan: support-status lookup: Go 1.24.0
Go Vulnerability Checker (Tool Directive)
- Name: golang.org/x/vuln/cmd/govulncheck
- Repository: https://pkg.go.dev/golang.org/x/vuln
- Version: v1.1.4
- Where the version came from: pinned in go.mod
- Whether versions are pinned at all: Pinned via indirect require block in go.mod.
- Manifest location: go.mod lines 5 and 45
- Check plan: vulnerability lookup: golang.org/x/vuln / Go / v1.1.4
Direct Go Module Dependencies (18 total):
- github.com/adrg/xdg (v0.5.3)
- Version: v0.5.3, pinned in go.mod line 8
- Check plan: vulnerability lookup: github.com/adrg/xdg / Go / v0.5.3
- github.com/bndr/gotabulate (v1.1.3-0.20170315142410-bc555436bfd5)
- Version: v1.1.3-0.20170315142410-bc555436bfd5, pinned in go.mod line 9
- Check plan: vulnerability lookup: github.com/bndr/gotabulate / Go / v1.1.3-0.20170315142410-bc555436bfd5
- github.com/fsnotify/fsnotify (v1.9.0)
- Version: v1.9.0, pinned in go.mod line 10
- Check plan: vulnerability lookup: github.com/fsnotify/fsnotify / Go / v1.9.0
- github.com/gorhill/cronexpr (v0.0.0-20180427100037-88b0669f7d75)
- Version: v0.0.0-20180427100037-88b0669f7d75, pinned in go.mod line 11
- Check plan: vulnerability lookup: github.com/gorhill/cronexpr / Go / v0.0.0-20180427100037-88b0669f7d75
- github.com/gorilla/mux (v1.8.1)
- Version: v1.8.1, pinned in go.mod line 12
- Check plan: vulnerability lookup: github.com/gorilla/mux / Go / v1.8.1
- github.com/gorilla/websocket (v1.5.3)
- Version: v1.5.3, pinned in go.mod line 13
- Check plan: vulnerability lookup: github.com/gorilla/websocket / Go / v1.5.3
- github.com/harenber/ptc-go/v2 (v2.2.4)
- Version: v2.2.4, pinned in go.mod line 14
- Check plan: vulnerability lookup: github.com/harenber/ptc-go/v2 / Go / v2.2.4
- github.com/hashicorp/go-version (v1.8.0)
- Version: v1.8.0, pinned in go.mod line 15
- Check plan: vulnerability lookup: github.com/hashicorp/go-version / Go / v1.8.0
- github.com/kelseyhightower/envconfig (v1.4.0)
- Version: v1.4.0, pinned in go.mod line 16
- Check plan: vulnerability lookup: github.com/kelseyhightower/envconfig / Go / v1.4.0
- github.com/la5nta/wl2k-go (v1.0.1)
- Version: v1.0.1, pinned in go.mod line 17
- Check plan: vulnerability lookup: github.com/la5nta/wl2k-go / Go / v1.0.1
- github.com/microcosm-cc/bluemonday (v1.0.27)
- Version: v1.0.27, pinned in go.mod line 18
- Check plan: vulnerability lookup: github.com/microcosm-cc/bluemonday / Go / v1.0.27
- github.com/n8jja/Pat-Vara (v1.2.0)
- Version: v1.2.0, pinned in go.mod line 19
- Check plan: vulnerability lookup: github.com/n8jja/Pat-Vara / Go / v1.2.0
- github.com/nfnt/resize (v0.0.0-20180221191011-83c6a9932646)
- Version: v0.0.0-20180221191011-83c6a9932646, pinned in go.mod line 20
- Check plan: vulnerability lookup: github.com/nfnt/resize / Go / v0.0.0-20180221191011-83c6a9932646
- github.com/pd0mz/go-maidenhead (v1.0.0)
- Version: v1.0.0, pinned in go.mod line 21
- Check plan: vulnerability lookup: github.com/pd0mz/go-maidenhead / Go / v1.0.0
- github.com/peterh/liner (v1.2.2)
- Version: v1.2.2, pinned in go.mod line 22
- Check plan: vulnerability lookup: github.com/peterh/liner / Go / v1.2.2
- github.com/spf13/pflag (v1.0.10)
- Version: v1.0.10, pinned in go.mod line 23
- Check plan: vulnerability lookup: github.com/spf13/pflag / Go / v1.0.10
- golang.org/x/sync (v0.19.0)
- Version: v0.19.0, pinned in go.mod line 24
- Check plan: vulnerability lookup: golang.org/x/sync / Go / v0.19.0
- golang.org/x/term (v0.30.0)
- Version: v0.30.0, pinned in go.mod line 25
- Check plan: vulnerability lookup: golang.org/x/term / Go / v0.30.0
- github.com/adrg/xdg (v0.5.3)
Indirect Go Module Dependencies (17 total):
- dario.cat/mergo: v1.0.2, pinned in go.mod line 29. Check plan: vulnerability lookup: dario.cat/mergo / Go / v1.0.2
- github.com/albenik/go-serial/v2: v2.6.1, pinned in go.mod line 30. Check plan: vulnerability lookup: github.com/albenik/go-serial/v2 / Go / v2.6.1
- github.com/aymerick/douceur: v0.2.0, pinned in go.mod line 31. Check plan: vulnerability lookup: github.com/aymerick/douceur / Go / v0.2.0
- github.com/clipperhouse/stringish: v0.1.1, pinned in go.mod line 32. Check plan: vulnerability lookup: github.com/clipperhouse/stringish / Go / v0.1.1
- github.com/clipperhouse/uax29/v2: v2.4.0, pinned in go.mod line 33. Check plan: vulnerability lookup: github.com/clipperhouse/uax29/v2 / Go / v2.4.0
- github.com/creack/goselect: v0.1.3, pinned in go.mod line 34. Check plan: vulnerability lookup: github.com/creack/goselect / Go / v0.1.3
- github.com/gorilla/css: v1.0.1, pinned in go.mod line 35. Check plan: vulnerability lookup: github.com/gorilla/css / Go / v1.0.1
- github.com/howeyc/crc16: v0.0.0-20171223171357-2b2a61e366a6, pinned in go.mod line 36. Check plan: vulnerability lookup: github.com/howeyc/crc16 / Go / v0.0.0-20171223171357-2b2a61e366a6
- github.com/mattn/go-runewidth: v0.0.19, pinned in go.mod line 37. Check plan: vulnerability lookup: github.com/mattn/go-runewidth / Go / v0.0.19
- github.com/paulrosania/go-charset: v0.0.0-20190326053356-55c9d7a5834c, pinned in go.mod line 38. Check plan: vulnerability lookup: github.com/paulrosania/go-charset / Go / v0.0.0-20190326053356-55c9d7a5834c
- go.uber.org/multierr: v1.11.0, pinned in go.mod line 39. Check plan: vulnerability lookup: go.uber.org/multierr / Go / v1.11.0
- golang.org/x/mod: v0.22.0, pinned in go.mod line 40. Check plan: vulnerability lookup: golang.org/x/mod / Go / v0.22.0
- golang.org/x/net: v0.38.0, pinned in go.mod line 41. Check plan: vulnerability lookup: golang.org/x/net / Go / v0.38.0
- golang.org/x/sys: v0.40.0, pinned in go.mod line 42. Check plan: vulnerability lookup: golang.org/x/sys / Go / v0.40.0
- golang.org/x/telemetry: v0.0.0-20240522233618-39ace7a40ae7, pinned in go.mod line 43. Check plan: vulnerability lookup: golang.org/x/telemetry / Go / v0.0.0-20240522233618-39ace7a40ae7
- golang.org/x/tools: v0.29.0, pinned in go.mod line 44. Check plan: vulnerability lookup: golang.org/x/tools / Go / v0.29.0
- golang.org/x/vuln: v1.1.4, pinned in go.mod line 45. Check plan: vulnerability lookup: golang.org/x/vuln / Go / v1.1.4
External System Utilities & Operating System
- Hamlib (Rig Control Library / rigctl): External binary required for transceiver frequency and PTT control ("Rig control (using hamlib)", pat_README.md). Version not stated. Check plan: not checkable: version not stated.
- Operating System: Linux, OS X, Windows, or Android (stated in pat_README.md). Version not stated. Check plan: not checkable: version not stated.
- Software Modem Engines: External software modems such as VARA HF/FM TNC or ARDOP TNC when running software-based digital modes. Stated by protocol in pat_README.md and module list (n8jja/Pat-Vara). Version not stated. Check plan: not checkable: version not stated.
Network Exposure:
- Local Web Interface: Built-in HTTP server and WebSocket service for the web mailbox UI ("Built in http-server with web interface (mobile friendly)", pat_README.md). Port number is not stated in the sources.
- Inbound Peer-to-Peer (P2P) Listening: Pat listens concurrently for incoming traffic across multiple transport channels as shown in the example session (listen winmor,telnet-p2p,ax25). The network-facing TCP port for incoming telnet-p2p connections is not stated in the sources.
- Outbound Network Traffic: Initiates outbound TCP/IP connections via Telnet to Winlink Common Message Servers (CMS) or direct peer RMS stations.
- RF Exposure: Transmits and receives data packets over VHF/UHF and HF radio frequencies using AX.25, PACTOR, ARDOP, VARA, and WINMOR protocols.
- Default Credentials: Not stated in the sources.
Fabrication and External Resources
- Board Fabrication: No PCB design files, Gerber archives, or layer stackup definitions exist for this lab. The station is integrated using off-the-shelf computing, amateur radio, and modem equipment interconnected by external cables.
- External Documentation and Repositories:
- Project Homepage: http://getpat.io
- Project Repository: https://github.com/la5nta/pat
- Protocol Stack Repository: https://github.com/la5nta/wl2k-go
- Winlink 2000 System Overview: http://winlink.org