elvis-epx / LoRaMaDoR

LoRa-based chat and automatic communication
14 stars 2 forks source link

A couple things I noticed #1

Open kd8bxp opened 3 years ago

kd8bxp commented 3 years ago

Elvis, Hello, Thank you for all your work. I came across this the other day. I know it's pretty new, so you may not have gotten a lot of feedback on it yet. Let me start I've been testing this limited all day today. And for the most part it works as expected, I do have a few notes that I have noticed so far.

1st: move the "information" display to a 2nd page, and use the button on the LoRa32 board to switch between pages, or give an option to turn this information on and off from display. I think in most cases you will want to see it, at least at the testing phases, 2st: if the message being sent is long the message received is truncated. This could related to my 1st note, if the display was split into two screens you would/could have more room for longer messages

These two aren't really bugs, more notes on possible improvements. My last note maybe a bug, but I'll let you decide.

Stations shall have 4 to 7 octets, shall not start with "Q", and may be suffixed by an SSID. Special or pseudo-callsigns are: QB (beacon) for automatic broadcast sent every 10 minutes, QC (think "CQ") for human broadcasting, and QL ("loopback") for debugging/testing.

I've noticed that an invalid call can send a message, IE: anything at least 4 characters long can send a message, IE: 1234, or aaaa, bbbb, cccc, ect. I am not sure how if I have an idea to correct that, at 1st I thought maybe just a simple check for a number being included. I don't think that will fix the issue, but it might be something to think about. Now I'm thinking that maybe a conditional check for each prefix maybe the only way to make it more valid, it's quite a large list of prefixes, but I think some of these are duplicated https://en.wikipedia.org/wiki/ITU_prefix

I am more of a novice to intermediate programmers, but I have been looking at the code to try and learn something, I understand parts of it, and other parts I need to learn more. Once I learn a little more, I'd be happy to try to contribute.

Thank you for your work, 73 KD8BXP, LeRoy

elvis-epx commented 3 years ago

Hi, thanks for writing!

Will take a look into the reported issues.

About callsign checking, it is very basic, just to reserve the 'Q' pseudo-callsigns. To be absolute sure a callsign is valid, a human would have to confirm against national databases of amateurs, so I don't think it is necessary for now.

kd8bxp commented 3 years ago

Good evening,

I can successfully get 20 to 21 characters on the screen from a message sent, everything else is not displayed. If I remember correctly, APRS has a 40 character limit, but I forget the reasoning being that limit. With these types of devices, I think we should be able to send messages that are much larger, 80 to 160 characters.

I agree the only is have someone validate the call, I am not sure how or if APRS keeps invalid calls from entering the system. Some maybe tactical calls as well. I will probably go back and re-read some of the APRS documentation. I know this isn't the same, but that system may give some ideas on improvements here. I was thinking of how to perhaps gate messages to APRS, using the APRS-IS system, is that maybe a goal for this project as well? I'm thinking a python script running on a raspberry pi with a LoRa board attach maybe able to handle the gateway.

I also came across this project https://github.com/kc1awv/KISSLoRaTNC It was not designed with the TTGO LoRa boards in mind, but I think it would be easy enough to make it work. This looks like it interfaces with some of the APRS software, and maybe able to do what I'm thinking with out reinventing things.

I look forward to some updates, and once I learn a little more would like to contribute and help the project out.

Thanks again, 73 KD8BXP, LeRoy

kd8bxp commented 3 years ago

Good evening, I don't know if you'd be interested in some python scripts that work with this project. 1st: I modified "loraham-console" python script from Travis Goodspeed loraham project - his didn't send, and I changed that. It seems to work nicely for this project - but it may not be as practical as it could be. All credit should go to that loraham project https://github.com/travisgoodspeed/loraham/blob/master/console/loraham-console.py

2nd after a lot of trail and error, and lot of learning as I go - I have a python script that connects to APRS-IS, and listens for messages, it also looks for a call sign. If both conditions are meet, it will forward the message to another call (or call w/ssid) over LoRa, it also adds the original senders call back. It sends that to a LoRaMaDor board. For this to work you need one board hooked up to a computer to act as a gateway.

3rd I made a little script that gets the sunrise and sunset for a given latitude and longitude from sunrise-sunset.org. It will send this information to the LoRaMaDor board (you need one hooked to the computer to act as a gateway). This one doesn't display correctly, it's information is too long, but otherwise it works.

I am just learning python, so I am very very new to it and I'm sure there is a lot I need to learn. But if you want the modified script, and my own scripts I'd be happy to have them included here.

I had another idea for this project, but I am really not sure how to proceed or do what I'm thinking. Since these boards have an ESP32 they have both WiFi and bluetooth, I was thinking it might be nice (in the field) to use bluetooth to connect to your phone over and use a bluetooth terminal app for a keyboard. I am not sure how to proceed. I have tested the ESP32 board and this does work. The basic idea came from here: https://circuitdigest.com/microcontroller-projects/using-classic-bluetooth-in-esp32-and-toogle-an-led and the android app I'm using for my test is https://play.google.com/store/apps/details?id=Qwerty.BluetoothTerminal I'm sure other ones would as well.

And my final idea (at least for now) is to use this keyboard from M5 Stack https://m5stack.com/collections/m5-hat/products/cardkb-hat this is an I2C device that was designed for a M5StickC but will work with other micro-controllers. It's affordable as well. I have a couple of these they work well, but I am not sure how to modified the LoRaMaDor sketch to work with it.

I am learning quite a bit, but still not at the point that I really understand the sketch.
Thanks again, 73 KD8BXP, LeRoy

elvis-epx commented 3 years ago

One thing you could try is to fork the project so can commit these new things you are trying, and perhaps submit them as merge requests once you are happy with the result.

kd8bxp commented 3 years ago

Elvis, sounds good, I was meaning to fork the project and got side tracked. I will be happy to add what I can to the project.