
برنامج ثابت لتحويل أجهزة راديو LoRa الاستهلاكية إلى مودمات KISS TNC مع واجهة CLI تسلسلية، واعتراض حزم BLE، وتوافق مع APRS/AX.25 لشبكات راديو الحزم.
MeshTNC هي أداة لنقل بيانات LoRa من وإلى أجهزة الراديو الاستهلاكية.
pio project config | grep '^env:'export FIRMWARE_VERSION="localbuild" ; ./build firmware <اسم-البيئة-للجهاز>قم بتنزيل إصدارات البرنامج الثابت المجمعة مسبقًا - github.com/datapartyjs/MeshTNC/releases
لم نقم بعد ببناء أداة وميض. يمكنك وميض الإصدارات باستخدام أداة وميض meshcore، أو أدوات الوميض المقدمة من الشركة المصنعة، أو باستخدام تعليمات المطورين للوميض باستخدام VS Code.
تم تصميم MeshTNC للأجهزة التي يدعمها MeshCore، لذا تحقق من قائمة الدعم الخاصة بهم في MeshCore Flasher. نحن ندعم معظم نفس الأجهزة، انظر variants.
يبدأ البرنامج الثابت لـ MeshTNC في البداية في وضع تسلسلي مقروء للبشر. يمكنك الاتصال بوحدة التحكم التسلسلية باستخدام تطبيق طرفي تسلسلي. قد تحتاج إلى ضبط معدل الباود، والذي يكون افتراضيًا 115200. الأمر التالي يستخدم minicom للاتصال بالمنفذ التسلسلي، يرجى استبدال /dev/ttyACM0 بعقدة الجهاز المناسبة لمنفذك التسلسلي:
minicom -b 115200 -D /dev/ttyACM0
قد يكون من المفيد في أنظمة Linux تشغيل الأمر التالي لتعيين الباود الافتراضي عند التفاعل مع المنفذ التسلسلي:
stty -F /dev/ttyACM0 115200
بمجرد الاتصال، يحتوي جهاز MeshTNC على واجهة سطر أوامر بسيطة. تشبه إلى حد كبير واجهة MeshCore مع بعض الإضافات البارزة.
txraw <hex...> - إرسال حزمةget syncword <word> - قراءة إعداد كلمة المزامنةset kiss port <port> - تعيين منفذ جهاز KISSset radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - تكوين الراديوserial mode kiss - التبديل إلى وضع KISSrxlog on - تمكين تسجيل حزم LoRa
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - تعطيل تسجيل حزم LoRarxlog ble on - تمكين تسجيل حزم BLE
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octets][hex...]\nrxlog ble off - تعطيل تسجيل حزم BLEget ble - تفريغ إعدادات BLErebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayيتيح وضع KISS تشغيل راديو LoRa كمودم KISS، مما يجعله متوافقًا مع الكثير من برامج الراديو الموجودة مسبقًا، بما في ذلك برامج APRS ونواة Linux.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty

يمكنك استخدام أدوات APRS المفضلة لديك مع MeshTNC. ببساطة اختر ترددًا، ضع الراديو في وضع KISS واتصل بأدوات APRS كجهاز KISS TNC.
minicom -D /dev/ttyACM0
set radio 918.25,500.0,7,5,0x16serial mode kissيجب أن يعمل MeshTNC مع العديد من عملاء APRS، وقد اختبرناه على ما يلي:
هناك ثروة من المعرفة والأمثلة متاحة هنا: https://linux-ax25.in-berlin.de/wiki/AX.25
هناك العديد من الأشياء المثيرة للاهتمام التي يمكن القيام بها مباشرة عبر AX.25 دون استخدام IP، لكن المثال التالي سيوضح كيفية تعيين عنوان IP لواجهة AX.25. يمكن القيام بذلك على جهازين مختلفين باستخدام MeshTNCs، ويجب أن تكون قادرًا على عمل ping بينهما عبر الهواء، طالما أن إعدادات الراديو على كلا الجهازين متطابقة، وعناوين IP المعينة على كل نظام في نفس الشبكة الفرعية ومختلفة عن بعضها البعض، وتختلف معرفات النداء (أو على الأقل SSID) على كل نظام. سيعمل توجيه IP أيضًا إذا تم تكوينه بشكل صحيح!
/etc/ax25/axports:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1 بمعرف النداء و SSID الخاصين بكkissattach /dev/ttyACM0 0
sudo dmesg | grep mkiss
[88447.885556] mkiss: ax0: crc mode is auto.ip addr add 10.10.10.10/24 dev ax0
قم بتشغيل ما يلي على جهازين أو أكثر، كل منها متصل بجهاز MeshTNC، لإنشاء شبكة إيثرنت عبر LoRa.
tncattach
git clone https://github.com/markqvist/tncattach.gitcd tncattachmakesudo make installminicom -D /dev/ttyACM0
set radio 916.75,500.0,5,5,0x16serial mode kisssudo tncattach --mtu=230 -e -noipv6 --ipv4=10.10.10.10/24 /dev/ttyACM0 115200sudo tncattach --mtu=230 -e -noipv6 --ipv4=10.10.10.11/24 /dev/ttyACM0 115200set ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - ما إذا كان سيتم استخدام المسح النشط. الافتراضي offfilter_dups - on / off - ما إذا كان سيتم تصفية العناصر المكررة. الافتراضي onmax_resulrs - الحد الأقصى لعدد النتائج لكل مسحscantime - عدد الميلي ثانية للمسحset/get txpower - تمت إعادة تسمية set/get tx الخاصة بـ MeshCore بشكل مناسبget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off