wasa-rockoon / WOBC

WASAロケットプロジェクト 共通電装基盤
MIT License
0 stars 0 forks source link

LoRaの通信方法について #34

Open KeisukeSuganuma opened 1 month ago

KeisukeSuganuma commented 1 month ago

@fujiy 通信試験で発覚したのですが、10バイト程度のデータ量で5秒ほど間隔を設けているにも関わらず、しばらく通信を行うとバッファオーバーフローを起こしているかのような症状が見られます。 症状を下記に載せますが、これがバッファオーバーフローなのかどうか。もしそうであれば昨年はどのようなフロー制御を行っていたか教えていただけますか?

症状: しばらくは安定して通信を行うことができるが、突如感度が-1になり、それ以降の受信が止まる。 長時間経過後、239バイトほどのデータ(繰り返し)がまとめて表示され、それ以降10バイトよりも小さい範囲で受信が行われる。 このとき、受信感度は-250程度になる。 スクリーンショット 2024-08-17 172824

fujiy commented 1 month ago

シリアル通信で受け取ったデータが化けてるか何かで,先頭のデータ長の読み取りを間違ってる雰囲気があるな これどのコード使ってる?

KeisukeSuganuma commented 1 month ago

mainにあがってるsrc/compornent/RFtestの中にあるコードです。チャンネルだったりは多少変えてますけど基本的にはそのプログラムと同じです。

fujiy commented 1 month ago

なるほど LoRaモジュールを使ってると思うけど,Trackerでも再現する?

KeisukeSuganuma commented 1 month ago

今Tracker→GS/LoRaで通信試験実施しているので、そういう意味ではすでに再現しています。

fujiy commented 1 month ago

Trackerで受信するとどうなる? 10バイト送信じゃなくて100バイトとか長めに送ったら途中で化ける?

KeisukeSuganuma commented 1 month ago

帰宅後試してみます。 かなり時間かかります、申し訳ないです

fujiy commented 1 month ago

長距離通信できなかったのはこれが原因?

KeisukeSuganuma commented 1 month ago

それが、非常に申し訳ないんですけど、アンテナのスイッチが逆でして、HIGHとLOW逆にしたら回復しました。 ただ一点、3.3Vって推奨供給電圧より低いようで、低出力っぽいんですよね。ここをどうしようか迷ってます。(昇圧するか、他のICが大丈夫なら3.5Vまで上げるか) Screenshot_2024-08-17-19-04-53-676_com android chrome

fujiy commented 1 month ago

まじか 知らなかった 確認する必要はあるけど,大体のicが3.6Vくらいまでならいけると思うから若干上げるのはアリ

KeisukeSuganuma commented 1 month ago

私も今日見つけたのですが https://support.dragon-torch.tech/about_e220-900t22sjp_link こちらに色々と初耳情報のっていたので、他に気にしなくてはならない事があれば教えて頂けると幸いです

KeisukeSuganuma commented 1 month ago

Tracker→Trackerで試験を行った結果 10バイト、5秒間隔:10分ほど実施するも不具合起こらず 100バイト、5秒間隔:10分ほど実施するも不具合起こらず でした。どうやらLoRaモジュール固有の問題のようです。どうすればいいんですかね...

fujiy commented 1 month ago

rp2040のSerial通信がまた怪しそう LoRaモジュールで100バイト受信はどうなる? あるいはボーレート変えてみるとか

KeisukeSuganuma commented 1 month ago

LoRaで100バイト受信では10分ほど継続しても不具合を起こしませんでした...そういうものですか...? 受信側のボーレートを9800にしたところ、最初に提示した不具合が生じました。10バイトでのみ発生するのかどうかわかりませんが、原因がよくわかんないです。送信側のボーレートも変えますか?

fujiy commented 1 month ago

送信はTrackerだよね?そっちは(たぶん)正しく動いてるんだよね

https://github.com/wasa-rockoon/WOBC/issues/34#issue-2471430299 これを見る限り,途中で1バイト余分に挟まってずれたせいで以降が崩れてるように見える

fujiy commented 1 month ago
KeisukeSuganuma commented 1 month ago

送信はそうですTrackerです。 簡単なものから試してみようと思います。

KeisukeSuganuma commented 1 month ago

10バイトの送信 受信のE220:57600+シリアル57600→毎回100~200バイトほど貯めて送信される 受信のE220:9800+シリアル9600→最初の不具合のまま

fujiy commented 1 month ago

あとはlora1 lora2 どちらでも同じ症状が出る? それとlora2_serialを消してSerialPIOを一つだけにしたらどうなるか

fujiy commented 1 month ago

応急処置としてタイムアウトを追加して,化けたデータがそれ以降に影響しないようにしてみた

https://github.com/wasa-rockoon/WOBC/blob/8493cb1238e4e91704cc1b57d417f8103d53274e/src/components/LoRa/e220.cpp

KeisukeSuganuma commented 1 month ago

タイムアウト有効に働きました!一度感度-1になっても復帰できていそうです。本番もこのようにして対策しますか? image

fujiy commented 1 month ago

そうだね,できれば元の原因をなんとかしたいところではあるけど優先順位次第かな