Skip to content

Conversation

Habraken
Copy link

@Habraken Habraken commented Oct 2, 2025

Completed the TX path: audio (usb/ALSA) -> (UserSpace)->SMI->FPGA-MODEM. Rough first try to get TX to work. (Other than CW.) This is the first pass very crude approach, many things are still ‘hacky’ or hard coded. The goal was to prove I could push IQ data at 4 mega samples per second containing a 600 Hz pure tone that is frequency modulated with a max. deviation of 2500 Hz.

In pursuit of this goal I modified the cariboulite_test_app, to include a modem status monitor, so that I could watch the modem registers in real time. I had to rewrite the lvds_tx fpga module to ensure the modem would sync to the IQ data. I also had to modify the SMI driver on the kernel side as well as the user space side. It was a long and winding road with many false starts. The current state of the source code will still reflect that. (I am not a professional programmer.)

I have tested this code on a Raspberry Pi 4, running an up-to-date version of Bookworm. The test consisted of starting the cariboulite_test_app, selection menu option 12 (modem status monitor and starting TX with tapping t on the keyboard. Through a ALSA loopback device and a running speaker-test I was able to transmit a narrow band fm modulated tone of 600 Hz on 430.1 MHz.

Habraken and others added 30 commits April 28, 2025 17:12
Minor corrections
Added a markdown file with a detailed description of how the CaribouLite can be install on a Pi0 or a Pi4, running the latest and up-to-date Raspberry Pi 64 bit OS: Bookworm (lite).
…_EN bit is always set in the IQ data to the modem. Gap functionality untested!
@londero-usp
Copy link

Awesome! Congrats on your progress!!

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.

2 participants