mikaelnousiainen / RS41ng

Custom firmware for Vaisala RS41 and Graw DFM-17 radiosondes with support for amateur radio use. Ideal for tracking high-altitude balloons. Supported modes include APRS, Horus 4FSK mode, CATS, morse code (CW) and additional digital modes like WSPR and FT8 via Si5351.
GNU General Public License v2.0
109 stars 28 forks source link

CATS support #86

Closed scd31 closed 3 months ago

scd31 commented 4 months ago

Tons to do still, but I'm working on adding CATS support. I only have a DFM-17 so I'm starting with that.

I'm using the FIFO for packet synthesis. This has numerous advantages as I outlined here: https://github.com/mikaelnousiainen/RS41ng/discussions/85 . Most notably, it means the accuracy of the mcu clock is no longer important. I intend to move all other modes to do this, assuming there are no objections. It should make APRS much more robust, as it won't need to have magic sleep values anymore.

Again, very WIP! Todo still:

mikaelnousiainen commented 3 months ago

@scd31 Can you also add some notes about the new mode in the README file (in relevant places regarding which hardware supports it)? Links to the CATS website and related documentation are welcome too (you can just follow how Horus is documented).

scd31 commented 3 months ago

Thanks for the thorough review! I believe I've addressed all feedback. I also confirmed it compiles on the RS41.

Tomorrow I will do a thorough test and confirm that it works with multiple modes enabled for more than 30 minutes.

mikaelnousiainen commented 3 months ago

Thanks for the thorough review! I believe I've addressed all feedback. I also confirmed it compiles on the RS41.

Tomorrow I will do a thorough test and confirm that it works with multiple modes enabled for more than 30 minutes.

Thanks! Looks good now. Please tell me the results of your tests and we can then merge the PR!

scd31 commented 3 months ago

Fixed a small bug I found. Other than that, I've had this running for about 4 hours with the following config:

#define RADIO_SI4063_TX_CW true
#define RADIO_SI4063_TX_CW_COUNT 1
#define RADIO_SI4063_TX_PIP true
#define RADIO_SI4063_TX_PIP_COUNT 6
#define RADIO_SI4063_TX_APRS true
#define RADIO_SI4063_TX_APRS_COUNT 2
#define RADIO_SI4063_TX_HORUS_V1 false
#define RADIO_SI4063_TX_HORUS_V1_COUNT 1
#define RADIO_SI4063_TX_HORUS_V2 true
#define RADIO_SI4063_TX_HORUS_V2_COUNT 6
#define RADIO_SI4063_TX_CATS true
#define RADIO_SI4063_TX_CATS_COUNT 5

Appears to be rock solid and is still decodeable!

mikaelnousiainen commented 3 months ago

@scd31 Thanks a lot for testing (and the final bug fixes). I'll go ahead and merge this, as the additions should not break any existing features.