K7MDL2 / KEITHSDR

Teensy4.X with PJRC audio card Arduino based SDR Radio project.
54 stars 11 forks source link

Add Tx Functionality. #4

Closed K7MDL2 closed 1 year ago

K7MDL2 commented 2 years ago

UI framework supports RX and TX but any TX functions are stubbed out and incomplete. Surely some new TX related functions will be required. Up to now I only had RX hardware. Now have a NT7V RX/TX board to start TX dev.

K7MDL2 commented 2 years ago

Added PTT with debounce logic. PTT in and out gpio pins are assigned in the RadioConfig.h file. Calls the existing Xmit() function to toggle TX. The Active VFO (A or B will change to Red in TX. In Split B is the active TX VFO. Need to add the audio portion next.

K7MDL2 commented 2 years ago

Added in some basic audio blocks with RX TX audio processing path switches. The TX audio blocks are not correct for TX use yet, just placeholders.

K7MDL2 commented 2 years ago

Getting TX audio out of the QSD/QSE board now. Modulation is not likely right yet (and no mode controls are applied yet) but I can hear my tones and see it on an o'scope.

After several TX cycles the CPU is locking up and rebooting. have to track that one down.

K7MDL2 commented 2 years ago

After the last few days major changes with moving user data and enabling multiple FFTs, the TX lockup seems to be gone now. Still need to test the TX modulation and put an PA and filter board on the output.

K7MDL2 commented 2 years ago

Finally revisited the TX functionality. Made several changes and it is now working for USB and LSB modes. Press ATU for TwoTone Test. There is about 600Hz of audio in the opposite sideband that needs to get suppressed. Using an old dynamic hand mic. On the V2 4.3" PCB motherboard, using GPIO pin 0 for PTT_Input and is debounced in the code and working well. Can also press the XMIT button, turn on ATU next to it if you want tones and have no mic connected yet.

Lots more work to do for better sideband suppression and other modes. Using the RS-HFIQ for example can plug a straight key into the paddles jack, ground the ring for PTT and get a CW carrier. The carrier vs display are not correct.

K7MDL2 commented 1 year ago

With the updates to the OpenAudio_Libary, Arduino IDE 2.0.2 and TeensyDuino 1.57, and a different dev computer, I reapplied the 48Khz audio lib tweaks and now USB Audio In and Out are working well. Making FT8 contacts for days. No more CPU hangs. I still get a few cases where the TX-RX transition is missed causing a missed FT-8 RX cycle. The next TX event everything is back to normal. USB Audio connects WSJT-X on a PC to the Teensy SDR. Using OmniRig V1 for CAT control. #define DEBUG is disabled to permit the CAT control. Windows audio device properties report as 48KHz as desired.

The remaining problems are now

  1. occasional missed TX->RX events
  2. TX bandpass filter needs to be shifted lower. Bottom edge of passband is around 700Hz at best.
K7MDL2 commented 1 year ago

CAT command changed from OmniRig to emulate the Kenwood/Elecraft K3 protocol. Works with WSJT-X which uses Hamlib. Transmit now works proper and CESSB compression was recently added. 150Hz is the lower filter with 2.7Khz the TX bandwidth.