随着使用 FMO 的台友越来越多,很多台友也开发了相关的仪表盘、Web 端、App 端来扩展 FMO 的使用周边。FMO 伴侣与 FMO 网关,就是其中一套基于常见 ESP32 开发板的伴侣终端与数据中转方案:伴侣负责把仪表盘功能带到独立的廉价硬件上,网关负责在 FMO 与多个客户端之间建立统一、稳定的连接通道。

FMO 伴侣
FMO 伴侣并不替代 FMO 主机本身,而是作为 FMO 主机的辅助终端存在。它通过 WiFi 连接到 FMO 服务端,并通过 WebSocket 获取音频、事件、站点和 QSO 信息,实现:
- 当前通联呼号显示;
- 通联状态提示;
- 当前站点显示;
- 上次通联记录显示;
- QSO 数量显示与同步;
- 收藏站点切换;
- WiFi 与 FMO Host 设置;
- 电池电量显示与低电量省电;
- 待机时钟;
- 触摸屏交互;
- 本机音频播放控制。
[!NOTE] 伴侣的初衷,是让 FMO 仪表盘功能在另一个硬件平台实现的可能性,选用的也是性能较弱的 ESP32 开发板,目的在于使用低廉的硬件实现仪表盘功能。FMO 伴侣提供的一切数据均来源于 FMO 主机接口。
固件与资料
- 固件基于 ESP32,已集成 WireGuard,支持远程组网后跨网络使用;
- 固件为合并单 BIN,烧录时写入
0x0即可; - 配套提供硬件组装教程、固件烧录教程视频与硬件购买推荐清单(详见离线资料包)。

FMO 网关
FMO 网关是一套面向 FMO 的 WebSocket 数据转发解决方案,主要用于在 FMO 与伴侣设备、仪表盘 Web、App 之间建立统一、稳定的连接通道。
网关只需与 FMO 建立一组上游连接,即可将数据分发给多个下游客户端,避免多个伴侣设备直接连接 FMO 所造成的资源占用、运行卡顿或不稳定问题。
网关支持转发 FMO 的三类核心 WebSocket 通道:
| 通道 | 用途 |
|---|---|
audio 音频通道 |
转发 FMO 音频二进制数据 |
events 事件通道 |
转发系统事件文本或二进制数据 |
ws 命令通道 |
实现客户端与 FMO 命令通道之间的双向通信 |
ESP32 硬件网关
ESP32 版本是一款体积小、功耗低、配置方便的独立网关设备(使用硬件与伴侣一致),接通电源并连接 Wi-Fi 后即可使用:
- 内置网页管理功能,可配置 Wi-Fi、FMO 服务地址、本机显示呼号及管理账号;
- 屏幕实时显示北京时间、UTC 时间、网络状态、FMO 连接状态、局域网 IP 地址以及当前连接的 WebSocket 客户端数量;
- 支持 5 个伴侣设备或仪表盘同时使用;
- 首次使用/恢复默认时开启 AP 配网热点(
ESP32-FMO-GATEWAY/12345678,配网页http://192.168.4.1,默认账号admin/admin888); - 本地提供
/audio、/events、/ws三个下游 WebSocket 接口及/api/state状态查询接口。
Linux 网关 V2(软件版)
Linux 版本是一款轻量级、高并发的软件网关,可部署在 Linux 主机、NAS、服务器或 Docker 环境中:
- 支持 Docker / Docker Compose 部署,镜像支持
amd64、arm64、arm/v7多架构; - 提供 Web 配置页面(默认
8089端口,admin/admin888)、健康检查接口(/healthz)与状态接口(/api/state、/api/reload); - 每通道可承载 1024 个下游客户端,可根据服务器性能承载更多客户端,更适合有更高性能需求的台友部署;
- 配置文件
config.json只需填写 FMO 服务地址,程序会自动生成ws://host/audio、ws://host/events、ws://host/ws三个上游地址; - 提供断线自动重连、慢客户端踢除(
drop_slow_client)等稳定性机制。
网关的使用方式
在实际使用中,FMO 伴侣、控制软件或其他客户端不再直接连接 FMO 服务端,而是连接网关提供的本地地址。网关负责维护与上游 FMO 的连接,并将数据实时转发给各个客户端;当上游网络短暂中断时,网关会按照设定自动重连。
总体而言,FMO 网关相当于 FMO 系统与多个伴侣客户端之间的**“统一中转站”**,既能减少 FMO 服务端的连接压力,也便于集中管理服务地址、运行状态和客户端接入。
选型建议:终端数量较少、注重便携和低功耗的场景,选择 ESP32 FMO Gateway;客户端数量较多、需要长期稳定运行或已有 NAS、Linux 服务器的场景,则更适合部署 FMO Gateway Linux V2。
WireGuard 远程组网
伴侣与网关固件均集成了 WireGuard,配合服务端(WireGuard + WireGuard-UI)可实现远程组网:
- 典型组网:服务端
10.88.10.0/24网段,vpn.example.com:51820UDP 端口; - 采用分流模式:客户端访问 VPN 内网地址走 WireGuard,普通上网流量仍走本地网络(PostUp 仅放行
wg0→wg0,不保留 NAT/MASQUERADE); - ESP32 客户端注意:VPN 掩码必须填写
255.255.255.0(不能填/32),否则客户端之间互访会异常; - 伴侣端内置 “WGweb 配置” 功能,开启后 5 分钟自动关闭以节省硬件资源。
资料包内容
- 伴侣:硬件组装教程、固件烧录教程(视频)、硬件购买推荐清单、伴侣固件
esp32-fmo-companion-WireGuard-merged_firmware1.3.1; - 网关:ESP32 硬件网关固件及用户使用指南、WireGuard 服务端部署及客户端设置手册、Linux 版网关 Docker 镜像(
zhaozhengde/fmo-gateway-linux-v2); - 伴侣固件源码:github.com/zhaozhengde/esp32-fmo-companion;
- Linux 网关镜像:hub.docker.com/r/zhaozhengde/fmo-gateway-linux-v2。
需要了解伴侣制作及代制作,可关注抖音号 “蚂蚁艺术-Bi8SPD”。VY73!
资料下载
原文文档(来自 FMO 伴侣及伴侣网关资料包):
- 《FMO伴侣简介》(14 KB)
- 《FMO网关简介》(15 KB)
- 《ESP32 FMO Gateway 用户使用指南》(333 KB)
- 《WireGuard 服务端部署及客户端设置手册》(608 KB)
- 《网关说明及部署教程》(15 KB)