jgromes / RadioLib

Universal wireless communication library for embedded devices
https://jgromes.github.io/RadioLib/
MIT License
1.45k stars 366 forks source link

RTTY on CC1101? #4

Closed yasiupl closed 5 years ago

yasiupl commented 5 years ago

Hi! I'm looking for a solution to transmit RTTY teletype telemetry through a CC1101 equipped shield. I see that you're working on something that might satisfy my needs. What's the outlook and is there maybe an ETA?

Also, is KiteShield needed to use your library?

jgromes commented 5 years ago

Hi, KiteLib doesn't support CC1101 at the moment. I wasn't planning to add it, so I don't even have the module - even if I ordered it right now, it would take some time to arrive.

Also, do you know if it is possible to get RTTY working on CC1101? The way it is implemented for SX127x and RFM69 chips is a bit of a hack. I haven't used CC1101 before, so I don't know if it will work. Is there a specific reason you want to use that module?

KiteShield isn't required to use the library, you can connect as many different wireless modules as you like - or at least until your Arduino runs out of memory ;)

yasiupl commented 5 years ago

I must admit my knowledge on the topic is limited, but I have seen working examples of RTTY on cc1101 on the internet. Maybe I should change my approach? I want to squeeze the most distance out of 433MHz for use with a balloon telemetry. I found this project http://canduino.eu that uses cc1000 with rtty, but the availability of the circuit is limited.

jgromes commented 5 years ago

If you want to get the maximum distance, why not something like LoRa? It was used in high-altitude baloons before (e.g. https://github.com/LoRaTracker/HAB2). LoRa chips like SX1278 are pretty common and cheap.

yasiupl commented 5 years ago

I'm especially looking for an alternative to LoRa that's maybe more hackable and has more throughput. Or I'm asking for too much out of such system :P

jgromes commented 5 years ago

Still not a reason not use the SX1278 chips though :P Apart from LoRa, they can also transmit FSK (and have RTTY support here), so if you don't want to use LoRa modulation you don't have to. FSK on SX1278 can go up to 300 kbps. If it was me designing the system, I would choose the part that gives me the most options.

Also, I'd say these chips are pretty hackable, I managed to broadcast a .wav file with Arduino, SD card and SX1278 - I doubt that anyone who designed them ever thought of this "use case" ;)

yasiupl commented 5 years ago

Thanks for the insight! I will look into it more and check what's within my budget.

jgromes commented 5 years ago

OK, I'll close this for now, feel free to reopen later.

jgromes commented 5 years ago

@yasiupl just got some CC1101 modules, are you still interested in this?

yasiupl commented 5 years ago

Very much so. I'm a newbie but If you want any help, I might figure something out.

jgromes commented 5 years ago

I think I know how http://canduino.eu managed to get RTTY working on CC1000 - they're using it as a simple 2-FSK radio, and set the frequency deviation to 300 Hz, so it ends up looking like RTTY with 300 Hz shift between mark and space frequency.

The problem with CC1101 is that it can't set frequency deviation that low - the lowest value I can set to the configuration registers is about 1.6 kHz. You also have to keep in mind that is the shift from carrier, so shift between mark and space will be 3.2 kHz in this case. I don't know whether you will be able to receive that as RTTY (I'm using SDR dongle with SDR Console v2, and I can only go up to 850 Hz).

As I've said before, the way RTTY is implemented on SX127x/RF69 is a massive hack - basically, I just turn on the transmitter and shift the carrier frequency. On SX127x chips, that can be set in 61 Hz steps (with 32 MHz crystal), which is good enough for RTTY with 183 Hz shift.

On CC1101 however, that step size is 397 Hz (26 MHz crystal). That's better than the 3.2 kHz shift, but still quite a lot. So my questions is this - if I manage to get RTTY working, will you be able to receive it with your hardware?

yasiupl commented 5 years ago

I was initially wondering whether it's possible to use cc1101 as a replacement for c1000 in the canduino use case. If it adds another layer of complexity it might not be worth it then. Do you think cc1101 is compatible with any other protocols that could be picked up and decoded using SDR dongle?

jgromes commented 5 years ago

Basic RTTY support on CC1101 is in now, so you can try it. I set the frequency shift to 397 Hz (the lowest available value) and I can receive RTTY fine with RTL-SDR dongle and SDR console v2 (RTTY shift set to 425 Hz).

Please note that none of the packet funcions are working on CC1101, it's just RTTY for now.

yasiupl commented 5 years ago

Cool, looks promising, I will check it out asap.

jgromes commented 5 years ago

Closed due to inactivity, feel free to reopen later.