
圖1: LoRaHAM, by Travis Goodspeed
LoRaHAM是建議在Arduino RadioHead LoRa分支上的,面向火腿一族的開源設計。該設計可以充分利用現(xiàn)有的業(yè)務電臺資源,但是使用者必須有自己的呼號。
今天完成了兩種固件的升級:
- SCPI/VI,程控儀表接口
- ALOHA/SMAC,數(shù)傳電臺基礎固件
SCPI
SCPI是Standard Command for Programmable Instrument的縮寫,被許多程控儀表所采用。Semtech的SCPI固件可以適配到自己開發(fā)的NUCLEO-F103RB + LoRa Arduino Shield。但是使用上有許多不便,甚至有Bug。需要把源碼重新整理一遍,同時增加了USB CDC/ACM接口后,ROM Size會超越64KB,所以比如采用CB/RB后綴的型號。
ALOHA/SMAC
ALOHA是夏威夷大學教授提出的,是無線電電臺通訊早期的通訊方式。而SMAC是更新后的數(shù)據(jù)傳輸協(xié)議。
該數(shù)傳固件由某家匿名組織提供,沒有技術支持,確切地說只是一個半成品。缺乏主循環(huán),而且其采用的RingBuffer模板與mbed底層RingBuffer模板有沖突。折騰好長時間,總算可以編譯成功。雖然可利用現(xiàn)有的串口協(xié)議,一旦添加USB CDC/ACM驅(qū)動和AT指令集,也面臨同樣的問題:必須采用128KB型號。
ALOHA工程更新
開發(fā)這個固件更像是在Hack,而非移植代碼。這家組織提供代碼后,禁止開發(fā)者聯(lián)絡,留下一個殘局。現(xiàn)在看來,他們把AlohaTransceiver和SerialInterfaceProtocol公開給大家,但是把高層應用的main保留了,此外還留下一個RingBuffer模板的坑。所以我的工作就是在這兩者基礎上重新構建一個數(shù)傳電臺。已經(jīng)添加了USB驅(qū)動,但發(fā)現(xiàn)它的串口協(xié)議是某個變種的STX/ETX協(xié)議:
START | COMMAND(2B) | LENGTH(2B) | PAYLOAD(2...nB) | CHECKSUM(2B) | END
兩個模塊文檔設計得還算清晰,但有一定的工作量。