Skip to content

Jms float32 input changes - #9

Open
julia-m-stephenson wants to merge 14 commits into
Greg-R:mainfrom
julia-m-stephenson:JMS_Float32_Input_Changes
Open

Jms float32 input changes#9
julia-m-stephenson wants to merge 14 commits into
Greg-R:mainfrom
julia-m-stephenson:JMS_Float32_Input_Changes

Conversation

@julia-m-stephenson

Copy link
Copy Markdown

These changes allow T41-EEE to use the new AudioInputI2SQuad_F32 object in the OpenAudio_ArduinoLibrary.
https://github.com/chipaudette/OpenAudio_ArduinoLibrary

This means the T41-EEE software can receive 24Bit-Audio on the I2S interface for the first time!

You will need a version of this library dated Jul 19, 2026 or later.

It can be disabled by commenting out this line
#define JMS_QUAD 1
in SDT.h

I have tested this extensively on V10 hardware.

This does include some file header and menu changes from the main branch as well. I thought it would make merging easier but possibly not!

First Attempt IQ data displayed but didn't crash!
The Floating point libraries need audio settings to work properly.
Works on RX, had to disconnect Microphone connection3 as there was a Null pointer crash in line 144 of AudioStream_F32.cpp
Did change anything just a rebuild
I have done an investigation into the connect/disconnect and discovered it is handled in the RecordQueue object which discards data if it is disabled.
Needs Tidying up
bitBucket can run all the time it will just discard anything it receives.
I think the audio pipeline stalls if this is not running so give it a try.
Untested
This seems to do a TX Calibrate now.
I re-ordered the startup and made sure that MakeFFTData doesn't return until it has a full RX buffer. I notice that during the first few frames we get two Rx frames and One Tx frame and then it is Tx/RX alternating so this may have been the problem originally - just takes a while to get into lockstep?
The calls seem to happen to fast to this function before and it would send several error messages before the buffers were full. This maybe because its running at 48kHz so will take longer to fill the buffers c/w RxCalibrate which runs at 192kHz
TODO: Remove Bit Bucket and isolate change that actually does makes it work. Also add #defines around changes.
Also remove T/R printfs?
Removed some hackery which wasn't needed and tidied up debug
Pulled in some headers from main branch
Made sure all my changes (not) bug fixes are in #defines
Removed BitBucket and TX/RX printf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant