跳到内容

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***_OLED、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

发表于无线电

28 条评论

  1. BG9ITI BG9ITI

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

    • BG9GYH BG9GYH

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

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

  3. bg2riw bg2riw

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

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

  4. BI9ABS BI9ABS

    那两可变电阻的调试过程值得我认真学习了。看来我不能单纯的用一个10k电阻就以为解决所有问题了。
    还有那个干扰问题,这让我用它做手台伴侣的执念之火快被熄灭了。我想是不是可以用金属壳子把设备包起来会好一些?反正OLED模块可以不用。

    • 我注意到APRS-Indy里的一个细节:控制PTT的三极管下面有一颗瓷片电容,是否起到退耦或抗干扰作用?

      • 已解决,在PTT末端和GND之间加一颗退耦电容即可阻断射频干扰进入PTT控制电路,博主用的是104独石电容。

  5. bg5vcg bg5vcg

    博主能不能帮我弄一个。我想学
    如何联系到你

    • 我对电路不太懂,这个还是本地HAM帮忙打的板子。

      • BG5VCG BG5VCG

        谢谢

      • bg5vcg bg5vcg

        有没有这位本地HAM的联系方式,我想弄一个玩玩。

        • 这一批只打了十张左右供测试使用,目前发现很多坑,有PTT被干扰无法断开和电位器调节幅度太大的bug,所以暂时不会打了,正在优化板子,后面的板子可能会改成更小的贴片元件。

          • BI1GCS BI1GCS

            哈哈,真能折腾呀,我搞了一个泰国那ham的8266的,挺不错,可以脱离手台单独打点位,多少的还是有BUG,时区比咱们少1小时,然后接收所有的呼号位置都是泰国那边的。郁闷了!不过不影响玩。

          • bg4uvy bg4uvy

            板子出来后通知一下!

          • BI1GCS BI1GCS

            老师您是没有开评论上传照片的权限吧?我还想在您的评论下分享一下我折腾的成果呢!哈哈!我也想弄wordpress来着,本地搭建了一个服务器不想折腾域名了!哈哈!73!

            • 装了个插件,现在支持上传图片、视频和压缩包了。

        • GE GE

          3019670
          送你一块半成品

          • BG5vcg BG5vcg

            是要送个我吗?半成品是什么?给我零配件自己焊接?😍

            • GE GE

              半成品只是差了个ESP32模块
              V

  6. BI1GCS BI1GCS

    我最近鼓捣了两款APRS模块,第一款:按照泰国那位HAM的固件,将GPS/OLED屏幕/8266/旋钮这些整合在了一张洞洞板上(俗称万能电路底板),这样一来呢体积稍有些大,但是好处是可玩性高了,可以自己进行关于aprs的一切配置,就是用旋钮360度来回旋转选择字符,再一个好玩之处就是当行驶中是一个信标图片,停止不动了又是一个信标图片,唯一缺点就是屏幕显示的日期对,时间比咱们少一小时。
    第二款:就是集成度很高的一个DTU模块了,好处是小巧便携,而且还可以插一张物联网卡,程序固件写好后自己只需开动脑筋制作一个外壳+电池就完美了。唯一的缺点呢就是需要一次性写好呼号等信息,没屏幕没按键没法看状态,好在就是方便便携。

    • bg4uvy bg4uvy

      时区,有没有设置呢。编码开关接那几脚?!
      我已经打板,基本成功!等慢慢测试

      • BI1GCS BI1GCS

        由于对方给的是.bin文件导致时区无法更改!只能烧写无法改动。接线图可以看这个图片。希望把您把板子发上来瞧瞧啊。73!

    • bg4uvy bg4uvy

      旋钮(编码开关)的接线与配置方法,望回复一下。谢谢

  7. 018 018

    有没有大神知道这板子的GPS也就是GNSS怎么调

    • 确认MOD菜单里UART0的RX和GPS模块的TX对应,还有波特率也对应,然后GNSS的PORT选UART0就行,成功的话首页GPS Info旁边有个[View]可以看到GPS模块的NMEA协议输出信息。

      • 018 018

        感谢

  8. BI1GCS BI1GCS

    回复:“旋钮(编码开关)的接线与配置方法,望回复一下。谢谢”

发表评论

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

允许上传的最大文件为2 MB。 您可以上传:图像, 视频, 存档 Drop file here