-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to generate data transmission #7
Comments
Hi @LaneaLucy can you please clarify what type of terminals (aka mobile stations, handheld dmr radio, car/vehicle dmr radio, ...) you want to use? Or if you intend to just use the MMDVM/DMR protocols to transfer arbitrary data over MMDVM master (hblink, freedmr, ...) without terminals? There is sadly no easy and generic way of using the terminals, which is the reason why there are no ready-made examples for such, because usually the protocols implemented in ok-dmrlib are encapsulated by proprietary protocols (of talking to terminals or using their serial interface for the matter) Best of luck with your endeavours |
I just want to be able to send data over RF. This could be from one mmdvm directly to another mmdvm, or it could be mmdvm <---RF---> mmdvm <---network---> dmr server <---network---> mmdvm <---RF---> mmdvm |
not sure what you mean by "mmdvm", in my post i talk about software endpoint implementing Homebrew/MMDVM protocol (by G4KLX and friends). I'd suggest you start your study in TransmissionGenerator
and respective tests
Which allows you to generate all bursts necessary to transmit arbitrary data |
Could you maybe make a small example which uses a mmdvm hotspot to send hello world to another mmdvm hotspot? |
Yeah, that wont happen any time soon sorry, i am overloaded. I'll appreciate anything from community, even PoC, i could later clean up and publish. |
I really need a example how to send for example "hello world" via mmdvm hardware and receive it via mmdvm hardware too. |
tl;dr: i'm not sure what kind of "simple example code" could be produced, i never worked low-level with mmdvmhost, maybe if it has CLI interface or something, it could be easier than what I describe below If it's meant to include on-air transmission, you'll want similar setup [homebrew client] -> hblink3 -> mmdvmhost -> (air) -> mmdvmhost/radio Question is what type of protocol you'll use to transfer data, i'd suggest usual Rate 1, 1/2 or 3/4 data transmission. If you check out the sample bursts needed to deliver SMS here:
There are preambles (might not be needed, usually to clear out traffic and let the radio-hw sync on RX
In this specific case it carries UDP/IP compressed header and payload (Motorola TMS - Text Messaging Service - Acknowledgment with seq.no. 7)
So with the setup i outlined in the beginning, you will need to
Or if you talk about using DMO (Direct Mode Operation), eg. without repeater infrastructure, you could even connect two radios (or maybe two mmdvm modems, i never tried that) to single computer. However then you'd talk to the radio using Motorola/Hytera/other proprietary protocol, MMDVM has no support in hardware afaik. |
@smarek Do you have more such samples like - 7abc3520240678e3a3436a8b55bdff57d75df5d55ed179b2304122624d0589a7bc For all the Data PDU's |
@smarek could you please make a complete example out of it? |
@smarek Looking for your help on the above comments |
@LaneaLucy i can do that, however i don't have much time to invest right now, if you're in hurry, try to work out something, it's always easier for me to help with something existing than making everything from scratch on my own :) @alwinhb i don't have anything extracted at the moment, you should really try to work with the PCAP data i already linked you and extract the right bursts, the tools are available (ok-dmrlib and dmr-kaitai cli scripts) if they need enhancement, you can try to modify PcapTool or any other, or at least identify "the way i want to use the script and it's not provided". I won't do your work on your behalf, not for free, sorry |
@smarek i can wait for now, but i really need at least a hello world example of doing just through a dmr server and through mmdvm hardware modems. If i have those for examples (one transmit, one receive, over server and over mmdvm) i can mix them together as i need them and replace the hello world message with my own stuff. Is there a site where i can for example buy you a coffee? |
@LaneaLucy thank you for the offer, i have github sponsors set-up for a while now https://github.com/sponsors/smarek |
@smarek send you some over GitHub sponsor, i hope this is enough for the beginning. |
meant sponsor/donation platform, i actually was curious, so now i'm also on https://www.buymeacoffee.com/smarek anyway, yep, i'll give it some time actually you only will need single hblink3, because your network model will be: "recipient" and "sender" will be homebrew protocol endpoints emulating dmr terminal(s) |
So if i understand right, for a standalone rf node i need a local dmr server in the middle for mmdvm to connect to? |
@smarek Thanks for the quick help, Not looking for the quick help, Whenever you get time you may add the hex samples (Data and Voice) |
@alwinhb suit yourself, i updated pcaptool to output both description of processed burst and hex form of on-air burst (not raw input wrapped in IPSC/MMDVM/whatever protocol), now you should be able to inspect all the pcap data easily usage:
And you can reverse inspect operation by going
|
depends on the "standalone rf node" capability, if it's standalone hytera/motorola/... repeater, you don't need anything else, but you'll have to talk to it in proprietary language if it's mmdvmhost , afaik it expects some kind of upstream (mmdvm dmr server or dmrgateway or alike) |
Ok, i can work with this, maybe I find a minimal dmr server for it where no full one is needed. |
minimal mmdvm server (such as hblink3 without ACL and other features) just takes in dmr bursts wrapped in mmdvm protocol and distributes them to other clients (repeat to all scenario, "what one client sends to hblink3 will be sent to all other clients") i still don't clearly understand your intended hardware setup, but since you want "mmdvm hardware" then the most simple setup will be "2x mmdvm hotspot (mmdvmhost on rpi or similar)" and hblink3 which will interconnect those two hotspots. Then you can monitor all the DMR traffic and inject traffic by acting as yet another "mmdvm hotspot" connected to the same hblink3 and script-wise [SENDER SCRIPT]
[RECIPIENT SCRIPT]
does this seem useful to you? |
forgot to tag you @LaneaLucy |
@smarek |
@LaneaLucy |
@smarek |
@LaneaLucy that depends entirely on the hardware you own, i cannot help you im afraid, i assume you can transfer message from pc[mmdvm hotspot + hblink3] to pc[dmr terminal], i don't think you can just use two mmdvmhosts to rf-connect two computers, i think you need dmr terminal at least on one side of the solution. Also the easiest way would be to have two dmr terminals in DMO, but then we'd not be dealing with MMDVM but terminal-specific-protocol (such as hytera HRNP/HDAP) and respective serial interfaces. Can you diagram your network model with respective hardware you intend to use? Then I'd maybe be able to help more |
@smarek rf path would be just mmdvm as hardware if possible, because they are easy to get |
I dont think its possible to connect two mmdvm modems in DMO. Do you think its possible? Can you link devices and settings/config of mmdvmhost maybe? Id be interested but i dont work with hardware, so i dont know if it can be done |
I don't know but i opened a issue on mmdvmhost to find out |
@smarek In regard to the below screenshot for the DMR Data Sample Can you help me understand what raw data (Text) is embedded within these hex samples? So that when I decode the samples via my code I could see the same result. |
@alwinhb you should try harder next time, shame really to ask such questions, use search next time, eg. like this everything i have is published in the repositories, all the data you refer to are in tests usually, because putting them into implementation would be silly
tests are implemented very verbosely, the actual content is not "Text" but TMS ACK message, a PDU with seqNo=7, so the content is really just acknowledgement for previously received TMS text message |
Hi, I want to do generic data transmission over tier 2 with mmdvm for RF.
But sadly I have no idea how to start because of missing documentation. If I would know, at which files to look, for connecting to mmdvm, to transmit/receive generic data, I probably could figure it out by myself, but I don't know where to look.
More documentation or even better some simple examples, for example just sending hello world and receiving it, would be much appreciated.
Thx
The text was updated successfully, but these errors were encountered: