Teensy Convolution SDR (Software Defined Radio)

audio output

Hi Rudolf: no, there is no complete schematic / es gibt keinen kompletten Schaltplan. Its the very nature of the project that the Teensy Convolution SDR can cope with every I & Q input from many different frontends and that builders have their own plan of the hardware. But you can find an incomplete suggestion in:

Hallo Frank,

and Frohe Ostern !

I have teensy 3.6 also the Elektor SDR board.
Do I need to buy audio teensy board, or I can use audio output from elektor sdr?
Thank you in advance !

My best 73, de yo2ldk
 
..and from my experience, the Elektor board is not very good, but sufficient for the fist experiments. Just don't expect great results.
 
The problem of the Elektor SDR is the noisy op amplifier. An low-noise op as the TS464 or TS974 instead the TS914 gives bettler performance.
 
Ich habe den Empfänger zusammengestellt und bin sehr zufrieden. Kompiliert #define HARDWARE_DO7JBH mit den Modulen PCM1808 / PCM5102. Die Lautstärke ändert sich jedoch nicht, wenn der Encoder von 0 bis 100 eingestellt wird. Bitte um Hilfe
 
Hallo Frank

I have put together the receiver and I am very satisfied. Compiles #define HARDWARE_DO7JBH with PCM1808/PCM5102 modules. However, the volume does not change when the encoder is set from 0 to 100. Ask for help
 
Hello,
I'm a newbie at Teensy SDR project so excuse me if I ask a wrong or unnecessary question.
I decided to build the Teensy-Convolution SDR project.
I ordered Teensy 4.0, 2.4 inch ILI9341 LCD, ADC PCM1808 module, DAC PCM5102a module and receiver module from QRP-Labs.
By the way, I downloaded all the files from https://github.com/DD4WH/Teensy-ConvolutionSDR. I installed Teensyduino. I also installed the si5351 library and the Arduino-Teensy-Codec library. I also fulfilled the issues stated in the "Software setup:" section at https://github.com/DD4WH/Teensy-ConvolutionSDR.
Finally, I wanted to compile the "Teensy_Convolution_SDR.ino" file to try, but got some error messages.
My question is: is there a document that outlining what needs to be done according to the latest version and libraries?
Regards.
Recep
 
Hello,
I'm also am newbie at Teensy SDR project. I downloaded all the files from https://github.com/DD4WH/Teensy-ConvolutionSDR.
I have been able to stop the compilation errors by adding all of the necessary libraries but, it still gives a lot of warnings.

Can I ignore these warnings? See below.

Regards.
------------------------

Teensy_Convolution_SDR_aw:406: warning: large integer implicitly truncated to unsigned type
uint16_t termColor = 0x10000;
^
Teensy_Convolution_SDR_aw:678: warning: ISO C++ forbids converting a string constant to 'char*'
};
^
Teensy_Convolution_SDR_aw:678: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:678: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
};
^
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw:689: warning: ISO C++ forbids converting a string constant to 'char*'
Teensy_Convolution_SDR_aw: In function 'void setup()':
/Users/aw/Documents/Arduino/Teensy_Convolution_SDR_aw/Teensy_Convolution_SDR_aw.ino:3546:116: warning: invalid conversion from 'const float32_t* {aka const float*}' to 'float32_t* {aka float*}' [-fpermissive]
arm_fir_init_f32 (&FIR_WFM_I, FIR_WFM_num_taps, FIR_WFM_Coef, FIR_WFM_I_state, (uint32_t)WFM_BLOCKS * BUFFER_SIZE);
^
In file included from /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/Audio/analyze_fft256.h:32:0,
from /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/Audio/Audio.h:61,
from /Users/aw/Documents/Arduino/Teensy_Convolution_SDR_aw/Teensy_Convolution_SDR_aw.ino:269:
/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/cores/teensy4/arm_math.h:1234:8: note: initializing argument 3 of 'void arm_fir_init_f32(arm_fir_instance_f32*, uint16_t, float32_t*, float32_t*, uint32_t)'
void arm_fir_init_f32(
^
/Users/aw/Documents/Arduino/Teensy_Convolution_SDR_aw/Teensy_Convolution_SDR_aw.ino:3547:116: warning: invalid conversion from 'const float32_t* {aka const float*}' to 'float32_t* {aka float*}' [-fpermissive]
arm_fir_init_f32 (&FIR_WFM_Q, FIR_WFM_num_taps, FIR_WFM_Coef, FIR_WFM_Q_state, (uint32_t)WFM_BLOCKS * BUFFER_SIZE);
^
In file included from /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/Audio/analyze_fft256.h:32:0,
from /Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries/Audio/Audio.h:61,
from /Users/aw/Documents/Arduino/Teensy_Convolution_SDR_aw/Teensy_Convolution_SDR_aw.ino:269:
/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/cores/teensy4/arm_math.h:1234:8: note: initializing argument 3 of 'void arm_fir_init_f32(arm_fir_instance_f32*, uint16_t, float32_t*, float32_t*, uint32_t)'
void arm_fir_init_f32(
^
Teensy_Convolution_SDR_aw: In function 'void loop()':
Teensy_Convolution_SDR_aw:3786: warning: comparison between signed and unsigned integer expressions
if (Q_in_L.available() > (WFM_BLOCKS) && Q_in_R.available() > (WFM_BLOCKS) && Menu_pointer != MENU_PLAYER)
^
Teensy_Convolution_SDR_aw:3786: warning: comparison between signed and unsigned integer expressions
if (Q_in_L.available() > (WFM_BLOCKS) && Q_in_R.available() > (WFM_BLOCKS) && Menu_pointer != MENU_PLAYER)
^
Teensy_Convolution_SDR_aw:4049: warning: comparison between signed and unsigned integer expressions
for (int i = 1; i < BUFFER_SIZE * WFM_BLOCKS; i++)
^
Teensy_Convolution_SDR_aw:4402: warning: comparison between signed and unsigned integer expressions
for (int i = 0; i < WFM_BLOCKS; i++)
^
Teensy_Convolution_SDR_aw:4502: warning: comparison between signed and unsigned integer expressions
if (Q_in_L.available() > N_BLOCKS + 0 && Q_in_R.available() > N_BLOCKS + 0 && Menu_pointer != MENU_PLAYER)
^
Teensy_Convolution_SDR_aw:4502: warning: comparison between signed and unsigned integer expressions
if (Q_in_L.available() > N_BLOCKS + 0 && Q_in_R.available() > N_BLOCKS + 0 && Menu_pointer != MENU_PLAYER)
^
Teensy_Convolution_SDR_aw: In function 'void Zoom_FFT_exe(uint32_t)':
Teensy_Convolution_SDR_aw:7761: warning: statement has no effect
high_Zoom_buffer_x[i + high_Zoom_buffer_ptr];
^
Teensy_Convolution_SDR_aw:7767: warning: comparison between signed and unsigned integer expressions
if(flag_2nd_decimation >= high_Zoom_2nd_dec_rounds)
^
Teensy_Convolution_SDR_aw: In function 'void FrequencyBarText()':
Teensy_Convolution_SDR_aw:9140: warning: variable 'c' set but not used
char txt[16], *c;
^
Teensy_Convolution_SDR_aw: In function 'void buttons()':
Teensy_Convolution_SDR_aw:9951: warning: variable 'PWR_Change' set but not used
static uint8_t PWR_Change;
^
Teensy_Convolution_SDR_aw: In function 'void show_menu()':
Teensy_Convolution_SDR_aw:11287: warning: enumeration value 'RTTY_SHIFT_NUM' not handled in switch
switch (rtty_ctrl_config.shift_idx)
^
Teensy_Convolution_SDR_aw:11315: warning: enumeration value 'RTTY_SPEED_NUM' not handled in switch
switch (rtty_ctrl_config.speed_idx)
^
Teensy_Convolution_SDR_aw:11331: warning: enumeration value 'RTTY_STOP_NUM' not handled in switch
switch (rtty_ctrl_config.stopbits_idx)
^
Teensy_Convolution_SDR_aw: In function 'void alt_noise_blanking(float*, int, float*)':
Teensy_Convolution_SDR_aw:14142: warning: comparison between signed and unsigned integer expressions
} while ((search_pos < NB_FFT_SIZE - boundary_blank) && (impulse_count < 20)); // avoid upper boundary
^
Teensy_Convolution_SDR_aw: In function 'uint8_t CwGen_CharacterIdFunc(uint32_t)':
Teensy_Convolution_SDR_aw:16165: warning: comparison between signed and unsigned integer expressions
for (int i = 0; i<CW_CHAR_CODES; i++)
^
Teensy_Convolution_SDR_aw:16175: warning: comparison between signed and unsigned integer expressions
for (int i = 0; i<CW_SIGN_CODES; i++)
^
Teensy_Convolution_SDR_aw: In function 'void showDayOfWeek(uint8_t)':
Teensy_Convolution_SDR_aw:16980: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==1) { Serial.printf("MONDAY ") ; termPutStr("MONDAY ") ;}
^
Teensy_Convolution_SDR_aw:16981: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==2) { Serial.printf("TUESDAY ") ; termPutStr("TUESDAY ") ;}
^
Teensy_Convolution_SDR_aw:16982: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==3) { Serial.printf("WEDNESDAY") ; termPutStr("WEDNESDAY") ;}
^
Teensy_Convolution_SDR_aw:16983: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==4) { Serial.printf("THURSDAY ") ; termPutStr("THURSDAY ") ;}
^
Teensy_Convolution_SDR_aw:16984: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==5) { Serial.printf("FRIDAY ") ; termPutStr("FRIDAY ") ; }
^
Teensy_Convolution_SDR_aw:16985: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==6) { Serial.printf("SATURDAY ") ; termPutStr("SATURDAY ") ; }
^
Teensy_Convolution_SDR_aw:16986: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==7) { Serial.printf("SUNDAY ") ; termPutStr("SUNDAY ") ;}
^
Teensy_Convolution_SDR_aw: In function 'void dcfDisplayTime()':
Teensy_Convolution_SDR_aw:17402: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==1) { termPutStr("MONDAY ") ; }
^
Teensy_Convolution_SDR_aw:17403: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==2) { termPutStr("TUESDAY ") ; }
^
Teensy_Convolution_SDR_aw:17404: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==3) { termPutStr("WEDNESDAY") ; }
^
Teensy_Convolution_SDR_aw:17405: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==4) { termPutStr("THURSDAY ") ; }
^
Teensy_Convolution_SDR_aw:17406: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==5) { termPutStr("FRIDAY ") ; }
^
Teensy_Convolution_SDR_aw:17407: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==6) { termPutStr("SATURDAY ") ; }
^
Teensy_Convolution_SDR_aw:17408: warning: ISO C++ forbids converting a string constant to 'char*'
if ( weekday==7) { termPutStr("SUNDAY ") ; }
^
Teensy_Convolution_SDR_aw: In function 'void AudioEqualizer_display_response(uint16_t, float32_t*)':
Teensy_Convolution_SDR_aw:18562: warning: variable 'centerIdx' set but not used
int centerIdx;
^
Teensy_Convolution_SDR_aw: In function 'void SSB_AUTOTUNE_est(int, float*, float*, float, float*, float*, float*)':
Teensy_Convolution_SDR_aw:14442: warning: 'angl' may be used uninitialized in this function
*pshift = *ppitch * angl / (2.*pi);
^
Memory Usage on Teensy 4.0:
FLASH: code:258364, data:158404, headers:9208 free for files:1605640
RAM1: variables:201472, code:253960, padding:8184 free for local variables:60672
RAM2: variables:329440 free for malloc/new:194848
/Applications/Teensyduino.app/Contents/Java/hardware/tools/arm/arm-none-eabi/include/stdio.h
 
I am successful in compiling the code on a teensy 4.1 and now tryi g to get it running with an ili9486 320x480 tft has anyone worked on a similar project
 
Thanks for the response that is the code base I was using the issue is that the waveshare 4" display with ili9486 controller and thier janky spi to parallel hardware is not properly initialized by the source so I need to replace the ili9341_t3n include with a equivalent one for the ili9486 on the waveshare board. I had hoped that someone had already done the coding and it just needed testing with a teensy 4.1 and waveshare shield.
 
Hello !
I tried right now to compile for 4.0
I get an error: use of deleted function audiomixer4::audiomixer4()
On AudioMixer4 mixleft;
définition

Any suggestion ?
Thanks !
 
I succeded in compile (heeem, trivial, I installed the latest audio lib...)
But now I have the I2S clocks multiplied 4x
I tried to divide per 4 setI2sFreq value, and now have the correct frequencies
but I wonder if it's sufficient.to make i2s engine work correctly
Is It a procedure of i2s bypass, to test line out ?
Thanks
 
Good morning all
I'm new to DD4WH SDR receiver. I downloaded the source .ino file from DD4WH GitHub and I compiled it in Arduino 1.8.19 with the last release of Teensyduino installed. I got a list of several warnings, but I did not find any problem in loading the software in Teensy 4.0 and after the download the program starts working and I can see the correct image on my display.
The problem I found is that I cannot select any menù by pushing the encoders buttons. Tune encoder works, but I cannot select a frequency step also filter encoder works, but if I push the encoder button nothing happens. I tried to see with a scope the signals on button connections and the level changes from 3.3. V to 0 volt when I press the button.
I can't understand why the menù doesn't change at all and I cannot set any parameters except RX mode (AM,USB and so on) and the IF bandwidth.
Does anybody found the same problems on this project and knows how to fix it?
 
Hello!
Is it possible to port the code to STM32F4xx/F7xx?
Or are some unique capabilities of the Teensy (DSP, fast ADC, etc) used?
 
Back
Top