Keyboard Shortcuts
Likes
- BITX20
- Messages
Search
Re: SBITX DE for sale
bill steffey NY9H
let's try this again? @?? 285$.......
toggle quoted message
Show quoted text
On 1/16/2024 10:46 AM, bill steffey NY9H wrote:
for sale : |
Re: Digital signal processing to improve readability
Mike KW1ND
Gordon, if I had had you as my pre-calc teacher, I might have actually grasped some of the concepts. Applying math to real-world scenarios should be a part of every course, just like science classes. In my experience, for some reason, math isn't typically taught that way once you leave arithmetic and basic algebra.
|
Re: hacking the audio system of sbitx DE, V2, V3
¿ªÔÆÌåÓý?
Ashar ...
?
is it possible to use and connect an wireless headset (with a USB-dongle)
to the sBITX v3 ?
(Like this headset which works with LINUX :
?
)
?
What and how must be choosed and programmed in the sBITX the setup about
the audio in-& output ?
?
73 , Jens / HB9JOI
?
+++
?
? From: Ashhar
Farhan
Sent: Wednesday, January 17, 2024 7:39 AM
Subject: [BITX20] hacking the audio system of sbitx DE, V2,
V3 ?
The audio system uses a WM8731 codec. This samples 96000 times a
second and produces 32 bit samples in stereo (only 24 bits have actual data).
This means that there are 96000x32x2 , approximately 6.144 million bits per
second in each direction (record and play). This is transferred over the I2S
bus. The BCLK runs at twice this frequency of 12.288 MHz.
An Unfortunate confusion
The WM8731's I2S uses the word "frame" and so does the alsa sound system of
linux. for entirely different reasons. The WM8731 frame refers to a pair of
single left and right samples of audio (a total of 64 bits). In alsa, it refers
to a few hundred of the pairs of left and right samples. So, the ALSA's frame is
made of a number of WM8731 frames!
How audio is organized
The audio system uses the right channel to transmit and the left channel to
receive (yes, both can theoretically work at once, we need to write the software
that way). The demodulator output is fed to the left channel line input and the
microphone is connected to the right channel. Each time 1024 samples of left and
right are ready, the system calls sound_process(). Here the sbitx takes over,
depending upon the transmit or receive status, right or left channel is
processed and returned to the sound subsystem to be played to the speaker and/or
the transmission system.
Hacking the system
The sound system has been abstracted to just two calls: first,
sound_thread_start is called and in a seperate thread, sound_process is called
with left, right input and output pcm streams at 32-bit arrays. depending upon
the transmit/receive status, the appropriate processing is done by sdr.c of
these samples. Remember not to call any GUI related code from sound_process as
it needs to get back within a few milliseconds to handle the next block of
audio.
Playing around
You could (at one time, I havent tried it for a few years) compile the
sbitx_sound.c as a separate program? by uncommenting the main() function.
You may have to comment out some code to remove the dependencies from sbitx
specific code.
- f
?
? |
Re: Digital signal processing to improve readability
I tested adding "white noise"? (a specific number added to the first 60 bins, to add equal energy to every bin of the voice audio) this morning and IT WORKS.?
Didn't sound exactly like what I expected -- sounds like power line noise! -- but nice flat addition observed on the receiver waterfall.? ?Varying the size of the number changes the power (by the square). These are the basic elements that we need for the science fair project. Gordon KX4Z |
Re: hacking the audio system of sbitx DE, V2, V3
Thanks!
In the tx_process, when you have the modulation in the frequency domain, is there a reason not to assign 0.0 to the bins that are above the highest audio component expected?? ?? In this section of code, from tx_process(), you applied zeroes to cancel out the undesired sideband.? ?What about energy above the 3kHz voice expected range on the desired sideband?? ? (There may be a reason I just don't know about) -- I might have expected that you might zero out the frequency bins above say, 3.4 kHz or so on the desired side also??? ?(I was fascinated by the possibility of wideband transmission that your current architecture allows, possibly for wideband data on vhf/uhf bands, for example.)? ?But curious about the bins beyond 3.4 kHz or so in the transmit process..... Sorry if this is a dumb question, just trying to learn!? ?I'll be demo'ing the treble emphasis software for the high school kids tomorrow.? ? It appears to work well.? ?The plan is to add graded amounts of white noise and see if we can prove, with experimental measurements of random 5-letter groups or so, that aged males do better with emphasis beginning around 2kHz and de-emphasis below say 300 Hz.? ? There are multiple papers suggesting this, due to the rapid fall-off of high frequency response in us oldsters.? ? Aiming for a small school science fair in March or April at our school. Gordon KX4Z?? (code below) // apply the filter
for (i = 0; i < MAX_BINS; i++)
fft_out[i] *= tx_filter->fir_coeff[i];
?
// the usb extends from 0 to MAX_BINS/2 - 1,?
// the lsb extends from MAX_BINS - 1 to MAX_BINS/2 (reverse direction)
// zero out the other sideband
?
// TBD: Something strange is going on, this should have been the otherway
?
if (r->mode == MODE_LSB || r->mode == MODE_CWR)
// zero out the LSB
for (i = 0; i < MAX_BINS/2; i++){
__real__ fft_out[i] = 0;
__imag__ fft_out[i] = 0;
}
else
// zero out the USB
for (i = MAX_BINS/2; i < MAX_BINS; i++){
__real__ fft_out[i] = 0;
__imag__ fft_out[i] = 0;
}
// GLG - potentially zero out energy above necessary bandwidth???
//now rotate to the tx_bin?
for (i = 0; i < MAX_BINS; i++){
int b = i + tx_shift;
if (b >= MAX_BINS)
b = b - MAX_BINS;
if (b < 0)
b = b + MAX_BINS;
r->fft_freq[b] = fft_out[i];
} |
hacking the audio system of sbitx DE, V2, V3
The audio system uses a WM8731 codec. This samples 96000 times a second and produces 32 bit samples in stereo (only 24 bits have actual data). This means that there are 96000x32x2 , approximately 6.144 million bits per second in each direction (record and play). This is transferred?over the I2S bus. The BCLK runs at twice this frequency?of 12.288 MHz. An Unfortunate confusion The WM8731's I2S uses the word "frame" and so does the alsa sound system of linux. for entirely different reasons. The WM8731 frame refers to a pair of single left and right samples of audio (a total of 64 bits). In alsa, it refers to a few hundred of the pairs of left and right samples. So, the ALSA's frame is made of a number of WM8731 frames! How audio is organized The audio?system uses the right channel to transmit and the left channel to receive (yes, both can theoretically work at once, we need to write the software that way). The demodulator output?is fed to the left channel line input and the microphone is connected to the right channel. Each time 1024 samples of left and right are ready, the system calls sound_process(). Here the sbitx takes over, depending upon the transmit or receive status, right or left channel is processed and returned to the sound subsystem to be played to the speaker and/or the transmission system. Hacking the system The sound system has been abstracted to just two calls: first, sound_thread_start is called and in a seperate thread, sound_process is called with left, right input and output pcm streams at 32-bit arrays. depending upon the transmit/receive status, the appropriate processing is done by sdr.c of these samples. Remember not to call any GUI related code from sound_process as it needs to get back within a few milliseconds to handle the next block of audio. Playing around You could (at one time, I havent tried it for a few years) compile the sbitx_sound.c as a separate program? by uncommenting the main() function. You may have to comment out some code to remove the dependencies from sbitx specific code. - f |
Re: Digital signal processing to improve readability
Gordon,
toggle quoted message
Show quoted text
I am going to reply to your two questions in a new email thread to make it easier for others to refer to this. - f On Wed, Jan 17, 2024 at 8:05?AM Gordon Gibby <docvacuumtubes@...> wrote:
|
Re: Noise floor problem with Bitx40
The clue I get is that this is a switching power supply noise. Could even be some device
toggle quoted message
Show quoted text
running on the same mains branch. Connect it to a battery and see ? Raj On 17/01/2024 8:57 AM, Randy Cooley wrote:
The noise level does not change when I unhook the antenna. the noise level is more pronounced on the lower end of the phone portion of the band. |
Re: Digital signal processing to improve readability
Well it TOOK ME several more hours to figure out things that I should have figured out much more quickly.....but I am gaining steam.
Ashhar's frequency bins appear to be approx 50Hz? ?(I'm sure there is an easy way to calculate this from the sample speed and the size of the FFT but I'm dumb, so I had to inject sine wave equivalents into the frequency spectrum and then FIND THEM in a receiver attached with about 50dB of attenuation). I now know how to write code that adjusts whatever voice frequency range I want.? ? My precalculus students just studied how to write a polynomial that "hits" certain targets (which is overkill for this project, but brings in the relationship) So I wrote simple code to decimate power below 300Hz and to add 10dB to power between 2000 Hz and 3000 Hz -- and it works.? ? I muffed the work to do the inverse transform and hear the result on the same unit (I think I need to window before inverse fft'ing...)? ?but using a separate Sbitx DE, I can easily hear what I'm doing, and simpler. This is a big step forward for me on this project and I could now demonstrate it to the students. Next I have to be able to add quantitative amounts of NOISE and I think that may be easier now that I know the bin structure.? ?? Then test intelligibility and we have a science experiment! So huge progress and I'm learning a ton. Still many things about this I don't remember and haven't re-learned...... One of the things that bothers me -- why didn't the code just set to 0 all the FFT bins above 3kHz in the tx_processs??? ? Gordon KX4Z |
Re: #sBitx on Raspberry Pi OS 64-bit
#sBitx
¿ªÔÆÌåÓýJerry, the SBITX on the desktop was pointing to the wrong place.? Copied from the file and all was well, that has happened to me before.? WSJT worked fine.? I mostly do CW and WSJT ? Tom ? Sent from for Windows ? From: JerryP
Sent: Tuesday, January 16, 2024 8:40 PM To: [email protected] Subject: Re: [BITX20] #sBitx on Raspberry Pi OS 64-bit ? Hi Tom, ? |
Re: V1 design of sbitx case completed!
Mike KW1ND
You're welcome - glad I could contribute in some way. Truth be told, I can't imagine my design is all that great, and I'm sure there are some errors in it. It's not uncommon for me to work through a design over time, then once I'm generally satisfied with it, go back and create a new design with all my "final" geometries & dimensions, just to clean things up. I have not yet done that on this model.
|
Re: #sBitx on Raspberry Pi OS 64-bit
#sBitx
FYI
I ran glxgears on both the 9-inch and my old Samsung 22-inch HDMI displays and was getting 60 fps. Not? bad for Pi 4B with 4GB memory. -- Jerry Ponko, AC9NM |
Re: #sBitx on Raspberry Pi OS 64-bit
#sBitx
Hi Tom,
Glad to hear that the install worked on your V2. What was the problem with starting sbitx with the desktop icon and how did you fix it.? I don't understand why it didn't work. I've installed this several times and the desktop icon always worked. There is also a sBitx menu item in the Other category. Does that one work? It was supposed to be in the Hamradio category but the desktop software decided otherwise. I'm not certain there will be much speed improvement but the Cinnamon desktop is much nicer than the primitive looking Raspbian desktop. As I said before, you can now run 64-bit apps that couldn't be run on the 32-bit OS. Have you tried the wsjtx or Fldigi programs from the Hamradio Menu? I know I used a rather dark desktop theme but everything is reconfigurable from 'Preferences'. -- Jerry Ponko, AC9NM |
Re: Recommended sBITX speaker
This is an 8 ohms speaker used in some LCD televisions. On Wed, Jan 17, 2024, 5:39 AM Mark Hatch <mark2382@...> wrote: And can somebody that owns a V3 take a photo of their speaker and provide the dimensions? Impedance? |
Re: Noise floor problem with Bitx40
Randy, Is this noise going up only when you connect the antenna? On Wed, Jan 17, 2024, 6:44 AM Randy Cooley <kc9utm@...> wrote:
|
Noise floor problem with Bitx40
I have a noise floor problem on 40m in my shack. With my other radios I can overcome the noise using squelch and noise reduction filtering. The noise floor is so high with my 40 bitx that I have difficulty hearing? stations.?
I'm looking for suggestions?
Thanks
de K5UTM |
Re: V1 design of sbitx case completed!
BTW: This would not have been possible without the great work by?Mike KW1ND!? Crawling through his Fusion 360 design, it is clear that he must have forgotten more than I have ever learned by Fusion 360. Wow! I learned a lot just reviewing his design.
Thanks Mike! 73 Mark -- AJ6CU/7 KD8CEC 2.0, Nextion Screens,? and open source uBITX Raduino boards for Arduino IOT, BLE, RP2040, Teensy 4.0, and Raspberry Pi Pico https://github.com/aj6cu |
V1 design of sbitx case completed!
Happy to report that I have worked the major issues on the design of a sbitx v3 case tha can be 3d printed. Should have it posted on thingiverse and my github by Monday (life is intervening at the moment). The box is large and requires a printer with a larger build ara (i.e. Ender 3 need not apply...). I think a 330x330 should work (e.g. Creality 10).?
For someone with just a v3 sbitx board, the missing piece is the internal speaker.? At this point, I have maintained the mechanical design of the original box for the speaker. Perhaps someone with a v3 complete will share some photos and dimensions of the OEM speaker so a source can be developed? BTW: I see this as a stop gap effort until the OEM case is made available 73 Mark? -- AJ6CU/7 KD8CEC 2.0, Nextion Screens,? and open source uBITX Raduino boards for Arduino IOT, BLE, RP2040, Teensy 4.0, and Raspberry Pi Pico https://github.com/aj6cu |