跳到内容

APRS小玩具:ESP32IGate

近些年来ESP系列开发板一直备受DIYer们青睐,博主一直以来也在寻找它在APRS方面的应用方案,起初关注了一个由泰国HAM开发的APRS-Indy设备,它通过ESP8266、TNC和一些电子元件构成,可以实现IGate网关、Digi中继、Tracker追踪等功能,但对于博主这种电路菜鸟来说比较困难……

直到后来发现了一个叫ESP32IGate的项目,它使用更强大的ESP32将TNC部分内置其中,简单工整的电路板和插槽让人耳目一新,直到最近发布的1.0版本WebUI界面大大改善,更是让人欲罢不能。有趣的是ESP32IGate和前者APRS-Indy一样是由泰国HAM开发,两者应该有很多渊源。

今天我们把目光转向这个小巧全能的APRS开源设备:ESP32IGate

开源项目地址:https://github.com/nakhonthai/ESP32IGate

小巧体现在其主控,ESP32拥有强大的可开发空间,大量的GPIO可以同时连接:GPS模块、射频模块、音频输入输出、屏幕、传感器、按键等等。从而使APRS功能涵盖:IGate网关、Digi中继、Tracker追踪、遥测,ESP32自带WiFi蓝牙更是锦上添花。最关键的是它支持WebUI,这让获取状态信息和修改配置变得更加方便。

 

硬件

板子部分很简单,元件数量不多,图纸和元件清单项目主页里都有,那就打板开工吧。

博主这种渣渣焊功也能完成

开发板和屏幕另外购买

开发板要求使用ESP32-WEOOM-32,博主先买了和项目介绍里一模一样的CP2102串口+MicroUSB,后来考虑MicroUSB已过时就又买了CH340+Type-C的,但发现WiFi信号稍微逊色一些,所以最终选择了前者,不知道是不是个例,反正通用性方面还是Type-C好一些,而且座子更加稳固。

还有就是I2C四针接口的OLED屏,项目要求使用1.3寸,博主尝试了0.96寸和2.42寸,都能适配,但显示有两个像素的换行现象,不过不影响使用。要注意的是I2C针第一个是VCC供电,也就是说从左向右依次为:VCC、GND、SCL、SDA,而新版的I2C屏是GND开头,一定要买VCC开头的旧版,弄错了后果你懂的。

接下来就是电台连接线了,板子上接口时RJ12,也就是常见的6芯数字电话机接口,我们使用4芯RJ11水晶头即可。手台博主使用的是国产TYT,所以另一头选用建伍K头,线尽量长一些,减少发射时天线对电路板的干扰。

连接K头喇叭那根线需要串一颗10K电阻,也可以把电阻直接飞到电路板上。

 

固件

硬件搞完刷固件:

ESP32-WEOOM-32插数据线连接电脑,在“我的电脑”右键“管理”-“设备管理器”-“端口”中查看COM口编号,没有的话就是驱动问题。

下载Releases版本固件,分为boot、bootloader、ESP32IGate_V**d、partitions四部分,使用Flash Download Tools按照项目说明选择bin文件和地址并填入对应COM口编号刷入。

最后将ESP32-WEOOM-32和OLED屏幕插上板子,上电启动,看到LOGO则表示成功。

 

配置

开机后用手机搜索连入一个名称为ESP32IGate的WiFi AP接入点,密码:aprsthnetwork,浏览器192.168.4.1访问WebUI,输入用户名admin口令admin就可以看到仪表台了(这页面风格有些眼熟)。

不要着急,首先要做的就是联网,进入Wireless无线配置页,下方填入你的WiFi,然后点最底部应用,提示成功后刷新,然后把上方AP接入点关掉,再次应用,而后断电重启,联网步骤就完成了。

接下来挨个标签页配置吧,因为博主连的是台子而非射频模块,所以“Radio”页不用开启。

接下来是“IGate网关”配置页,根据自己情况填写,这里要注意的是“RF2INET”和“INET2RF”开关,前者是将台子或射频模块收到的信标上传至APRS-IS服务器;后者是从APRS-IS读取过滤出信标(“Server Filter”选项为过滤条件,后面有说明页。)并通过台子或射频模块发射出去。

POSITION是ESP32IGate网关自身的信标,选择“Fix”在下方填写固定坐标,或者选择“GPS”连接GPS模块获取坐标,“TX Channel”是自身信标的发送方式,“RF”是通过台子或射频模块发射,“Internet”就是通过网络上传至APRS-IS服务器了。接下来的“DIGI中继”和“Tracker追踪信标”也是类似设置,此处不再阐述。

这里要注意IGATE默认是通过连接射频模块的GPIO来激活静噪的,如果你用的是外接台子,而非射频模块的话,要将“MOD”页中“SQL GPIO”改为“-1”,这样RX电路才能通过台子喇叭的音频激活静噪进行下一步解码。

 

调优

我们可以通过以上IGATE设置配合板子上两个电位器来完成收发音量的调节,使接收解码和编码发射达到最优状态。

博主是通过家里的Direwolf SDR网关配合调节,首先将台子功率调到最低(这样不会影响到频率上的其他人),然后把自身信标发射间隔调小,“TX Channel”选择“RF”保存,观察Direwolf日志中接收信标的音频电平去调节MIC电位器,电平在50左右为最佳。

接下来调接收,在仪表台IP地址后加入“/tnc2”或者在主页接收列表点击[Raw]进入TNC终端页面:

调整台子音量旋钮和板子上的SPK电位器,当接收到信标并解码成功时,该页面就会显示信标原始数据和音频参数,dBV数值在-20至-10之间,也就是指针绿色区域为最优,此时接收就调节好了。

 

“WX气象”“TLM遥测”“VPN”还有“MOD”中的各种接口设置自己研究吧。

最后就是“System系统配置”了,时间同步服务器和时区必改,最重要的就是屏幕显示:

“TX Display”“RX Display”分别是显示发射信标和接收信标。

“Popup Delay”“OLED Sleep”分别是弹出信标的停留时间和屏幕休眠时间(0表示没有信标显示时屏幕保持熄灭)。

“RX Channel”中的“RF”“Internet”表示信标显示来自射频接收还是APRS-IS网络拉取。

“Filter DX”通过距离范围来过滤接收到的信标是否被显示,半径单位是公里。

 

总结

到此为止ESP32IGate的刷入和设置就基本完成了,接下来就可以发挥你的脑洞尽情折腾了。博主个人感觉这个项目可玩性非常高,从“MOD”页就可以看出,它利用了ESP32的所有GPIO为自身扩展了很多额外接口。三个串口可以外接GPS模块、TNC、ModBus或其它控制设备,两个I2C一个连接屏幕显示另一个可以接传感器为遥测提供数据,还有两个GPIO按钮可以通过脚本定义操作,如手动发射信标或切换运行模式(IGate、Digi、Tracker)。

但不足之处也有,抗干扰能力差,手台天线离太近会干扰电路板,出现发射完PTT无法断开的现象,使用距离稍远的窗外天线则正常,这点不容忽视,可以想象一旦发射失控将会干扰当地APRS频率。还有一点就是从接收解码能力方面分析,ESP32IGate肯定不及强大的Direwolf+声卡组合,不过这么小巧廉价万能的小玩意儿,还要什么自行车呢?期待开发者的后期优化,博主也会继续折腾,争取搞出更多花势在以后的博文中和大家分享,也欢迎对这个项目感兴趣的精神小伙一起参与研究。

2.42寸大屏看着还是舒服,老了~~~眼睛不好使了 T_T

发表于无线电

5 条评论

  1. BG9ITI BG9ITI

    老哥这个有意思啊,我先把direwolf+声卡组装起来,下一步买个ESP32板子玩玩

    • BG9GYH BG9GYH

      来来闲着的时候搞一套,前两年泰国的那个项目看到过,东西也已经买回来了,把固件刷入后,自己改了内网网段在就连接不上了,然后懒症犯了在没折腾。

  2. 非常有意思的一个小玩具,佩服博主的动手能力!

  3. bg2riw bg2riw

    请教ega老师 他的igate配置页面怎么只有呼号输入而没有aprs服务器的登录密码输入项 不用填密码吗

    • 可能是集成进代码里了,话说这个Passcode密码貌似是由一种校验算法得出的,个人推测其最初应该是起APRS-IS认证作用,不过现在和公开没什么区别,自己随便找个工具都能算出来,失去作用就变得多余了,省了也好。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注