Topics

Stupid API tricks (notes on things I am playing around with just for amusement).


James Dallas
 

Hi everyone,

I've started playing around with the REST API, possibly in an abusive/not-intended-by-Eduoard-way. Here are some updates/musings --

1. I am currently trying to see if it is possible to trigger tone frequency changes with the SSB modulator (either using real FSK by changing the TX offset, or AFSK using different audio tones) to create a RTTY transmitter.

One of the reasons I started building from source was so that I could start trying to develop my own modulator plugin; it occurred to me yesterday that I might be able to just use the API to generate FSK tones instead of writing a new modulator in C (which I am familiar with at about the "hello world" level, but not really fluent). My first attempts were with bash/curl and javascript/XMLHttpRequest. I would say they were semi-successful in generating alternating tones, but couldn't quite nail the 22ms per bit timing of 45.45 baud RTTY. I will try using Python or Java instead, because I think I might be able to control timing better.

Also, I need to learn a little bit more about baudot code to actually generate anything useful (I was thinking I could generate an RYRYRY test signal just by shifting every 22ms from mark to space, but I think I neglected to take into consideration start/stop bits.. so when I re-implement later in a faster language I will do it the "right" way).

I will update as this goes along. Obviously, piping audio in/out to fldigi is easier, but I think it would be neat to build a RTTY transmitter entirely in sdrangel.


2. In addition to RTTY, automation could be used (probably a bash script would suffice) to change the CW string. So we could then break a larger text into chunks and then send that out line by line / chunk by chunk using the CW keyer. Could be useful in case anyone wants to transmit "War and Peace" on 900 MHz ISM band just for fun.


Edouard Griffiths
 

Hi James,

could be fun indeed but for your point #1 bear in mind that the REST API is not designed for real time operation in particular mind the network latency if not using localhost. However RTTY is relatively slow so this may work. The point #2 seems more reasonable. I don't remember the length limit for the CW string (or if there is one) but this should not be too hard to find in the code. The CW keyer is in the sdrbase/dsp folder.

Brgds, Edouard.


James Dallas
 

Hi Eduoard,

I was just able to get RYRYRY to work readably, if not reliably (error about every 5-10 characters), after adding the start/stop bits.

I'll keep experimenting. My guess is that it's just t about the cusp of being workable, hoping going to a more "real time" language will help. But your point re: latency is well taken, that is why I described it as a "stupid" and possibly abusive trick.

However, for FSK modes that are slower than RTTY... maybe WSPR (4FSK at something like 1.5 baud...).? Lots of fun to be had!


On Tue, Mar 12, 2019 at 11:05 AM Edouard Griffiths <f4exb06@...> wrote:
Hi James,

could be fun indeed but for your point #1 bear in mind that the REST API is not designed for real time operation in particular mind the network latency if not using localhost. However RTTY is relatively slow so this may work. The point #2 seems more reasonable. I don't remember the length limit for the CW string (or if there is one) but this should not be too hard to find in the code. The CW keyer is in the sdrbase/dsp folder.

Brgds, Edouard.