Brilliant, just noticed on your screen in the video that it looks like you have two instances of the sbitx application running as shown on the top menu bar. This can cause some strange issues so, may be worth you making sure there is only a single instance of the sbitx app running to prevent chasing issues that might be caused by running the 2 instances.
Regards Paul G0KAO
|
Dean,
NICE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
73 David ac9xh
|
Re: Toroid size for scratch build Bitx40
toggle quoted message
Show quoted text
25 pieces for $7.00 from DIZ...
?
-- Paul Mateer, AA9GG Elan Engineering Corp.
-- Paul Mateer, AA9GG Elan Engineering Corp.
|
Re: Toroid size for scratch build Bitx40
25 pieces for $7.00 from DIZ...
?
-- Paul Mateer, AA9GG Elan Engineering Corp.
|
Hi all.... Quick progress report. Happy to report my first phone contacts were made today. I only have a low pass filter for 40 m. so far so only one band.? if you want to listen. I built a mic today with one of the sensitive electret capsules that have been discussed in the other threads.? I put it in a 3D printed case using a micro switch for the PTT.? First contact reported distorted audio but then I realized I had the mic gain at 100... Back it off to 50 and then to 35 and started making contacts with good audio reports. I still have a few kinks to work out. I'm not sure the codec board is functioning well. It seems to go into oscillation when using the built-in CW sender. And I get some crackling and noise in the side tone audio. I also still have an issue where the displayed frequency counter track with the tuned frequency. Curious if anyone else is using the codec board from Mikroeelectronica?? I noticed that it has different values for the serious capacitor and termination resistors on the headphone audio-out channels then is used in the SBITX version. Below is what the rig looks like as of today. 73, Dean 
|
Re: Getting much closer to hearing something
Steve you¡¯re too kind to a guy who feels like a dumbass. I still have no idea why these connectors didn¡¯t fit. Looking forward to making contacts!
Thanks again
toggle quoted message
Show quoted text
On Feb 26, 2024, at 18:13, Steve Beckman <n3sb@...> wrote:
?Tony - that's great news. WooT !!
Your willingness to work through the issue paid off. So it's Tony For The Win!!
73; Steve, N3SB
|
Would you like HF Signals to update the sBitx application for 64-bit compatibility with Raspberry Pi or to release an official 64-bit version of the sBitx image for download?
Thank you for voting.
Results
|
Re: sbitx encoder contact bounce
Farhan:
I agree. If the only tool you have is a hammer, every problem looks like a nail. If you can, it's always nice to add a new tool to the belt.
Jack, W8TEE
On Monday, February 26, 2024 at 09:03:05 PM EST, Ashhar Farhan <farhanbox@...> wrote:
Barry, They are simpler fix for you. But if we roll in this interesting change, then, all the hundreds of radios can have better debouncing without touching their soldering irons. We are homebrewing in C as well, now.
toggle quoted message
Show quoted text
On Tue, Feb 27, 2024, 3:04 AM barry halterman < kthreebo@...> wrote: Two 0.1 uf capacitors on the encoder board are WAY much simpler! Barry ? ? Sent from for Windows ? ? On Monday, February 26, 2024 at 10:37:26 AM EST, Ashhar Farhan <farhanbox@...> wrote: Jack, In the sbitx, the encoders fire interrupts and measure the time through millis(), it is a wrapper around utime() ? My experience is that debouncing in software can vary from encoder to encoder. I would suggest creating symbolic constants for each encoder (e.g., tune, volume, etc). Usually, the delay is between 40 and 100 milliseconds: #define TUNE_ENCODER_DELAY??????????? ???? 50??????? // debounce delay in ms #define VOLUME_ENCODER_DELAY??????????? 40 and then look where to place them in the code. Many programmers use the standard delay() function call: delay(TUNE_ENCODER_DELAY); ?????????? ???? However, the delay() function is a "blocking" function, which means that it turns off interrupts for the delay period. Given that debounce functions have relatively short delays, this probably isn't a problem in this code body. However, perhaps some functions [e.g., MyHairsOnFire()] shouldn't be blocked. In that case, I would suggest: ? Purpose: to cause a delay in program execution ? ? ? unsigned long millisWait ? ?// the number of millseconds to wait ? void MyDelay(unsigned long millisWait) ? unsigned long now = millis(); ? ? while (millis() - now < millisWait) ? ? ; ?????????????????????????????????// Twiddle thumbs until delay ends... ? The millis() standard Arduino function is non-blocking, otherwise it acts the same as delay(). I try to use the style shown above. I use a starting capital letter for the function name and Polish notation because most standard and function library names in the Arduino IDE start with a lowercase letter. That way, I know in advance whether I wrote the code or it comes from a library I didn't write.? Also, the details about the function always falls in the function header between the "/" and the "/" followed immediately by the function signature (e.g., void MyDelay(unsigned long millisWait) and a newline character). By rigidly following the function format, I wrote a program that looked for the "/" lead-in and then used the __FILE__ and __DATE__ standard macros to create a user document that detailed all of the function calls we wrote for the project. When I had my own software company, I gently convinced all of my programmers to follow this format. Anyone who used a different format had to buy beer and pizza for the programmers the following Friday. I don't remember anyone buying lunch more than once, which kept the project documentation for the code up-to-date. Sorry for the long answer, but conventions can make projects with multiple coders easier to use. On Monday, February 26, 2024 at 07:23:58 AM EST, Ashhar Farhan <farhanbox@...> wrote: The debouncing of the encoders is done in software, not hardware. This is the first time I have heard of a bounce problem anyway.? Take a look at the encoder code you could tweak it to increase the debounce time. ? On Mon, Feb 26, 2024, 6:14 AM barry halterman <kthreebo@...> wrote: Hi, I put the capacitors on the underside of the encoder board. Each capacitor (.1uf) goes from? the phase A and B pin, to the encoder housing grounding trace. Plenty of room to incorporate these. Barry ? Sent from for Windows ? ? I am interested to know where you placed the capacitors. Can you show a drawing perhaps? ? On Sun, Feb 25, 2024, 3:18 PM barry halterman <kthreebo@...> wrote: lately I have noticed some contact bouncing with the main encoder when tuning my sbitx. My display frequency would bounce back and forth. I noticed, on the schematic, that there are no capacitors to clean up the noise from the rotary encoder. I installed two .1uf caps on the encoder board and that took care of my issue. Have not noticed any problems with the multi function encoder though. 73 Barry?
-- Jack, W8TEE
-- Jack, W8TEE
-- Jack, W8TEE
|
Re: Getting much closer to hearing something
Tony - that's great news. WooT !!
Your willingness to work through the issue paid off. So it's Tony For The Win!!
73; Steve, N3SB
|
Re: sbitx encoder contact bounce
Barry, They are simpler fix for you. But if we roll in this interesting change, then, all the hundreds of radios can have better debouncing without touching their soldering irons. We are homebrewing in C as well, now.
toggle quoted message
Show quoted text
On Tue, Feb 27, 2024, 3:04 AM barry halterman < kthreebo@...> wrote: Two 0.1 uf capacitors on the encoder board are WAY much simpler! Barry ? ? Sent from for Windows ? ? On Monday, February 26, 2024 at 10:37:26 AM EST, Ashhar Farhan <farhanbox@...> wrote: Jack, In the sbitx, the encoders fire interrupts and measure the time through millis(), it is a wrapper around utime() ? My experience is that debouncing in software can vary from encoder to encoder. I would suggest creating symbolic constants for each encoder (e.g., tune, volume, etc). Usually, the delay is between 40 and 100 milliseconds: #define TUNE_ENCODER_DELAY??????????? ???? 50??????? // debounce delay in ms #define VOLUME_ENCODER_DELAY??????????? 40 and then look where to place them in the code. Many programmers use the standard delay() function call: delay(TUNE_ENCODER_DELAY); ?????????? ???? However, the delay() function is a "blocking" function, which means that it turns off interrupts for the delay period. Given that debounce functions have relatively short delays, this probably isn't a problem in this code body. However, perhaps some functions [e.g., MyHairsOnFire()] shouldn't be blocked. In that case, I would suggest: ? Purpose: to cause a delay in program execution ? ? ? unsigned long millisWait ? ?// the number of millseconds to wait ? void MyDelay(unsigned long millisWait) ? unsigned long now = millis(); ? ? while (millis() - now < millisWait) ? ? ; ?????????????????????????????????// Twiddle thumbs until delay ends... ? The millis() standard Arduino function is non-blocking, otherwise it acts the same as delay(). I try to use the style shown above. I use a starting capital letter for the function name and Polish notation because most standard and function library names in the Arduino IDE start with a lowercase letter. That way, I know in advance whether I wrote the code or it comes from a library I didn't write.? Also, the details about the function always falls in the function header between the "/" and the "/" followed immediately by the function signature (e.g., void MyDelay(unsigned long millisWait) and a newline character). By rigidly following the function format, I wrote a program that looked for the "/" lead-in and then used the __FILE__ and __DATE__ standard macros to create a user document that detailed all of the function calls we wrote for the project. When I had my own software company, I gently convinced all of my programmers to follow this format. Anyone who used a different format had to buy beer and pizza for the programmers the following Friday. I don't remember anyone buying lunch more than once, which kept the project documentation for the code up-to-date. Sorry for the long answer, but conventions can make projects with multiple coders easier to use. On Monday, February 26, 2024 at 07:23:58 AM EST, Ashhar Farhan <farhanbox@...> wrote: The debouncing of the encoders is done in software, not hardware. This is the first time I have heard of a bounce problem anyway.? Take a look at the encoder code you could tweak it to increase the debounce time. ? On Mon, Feb 26, 2024, 6:14 AM barry halterman <kthreebo@...> wrote: Hi, I put the capacitors on the underside of the encoder board. Each capacitor (.1uf) goes from? the phase A and B pin, to the encoder housing grounding trace. Plenty of room to incorporate these. Barry ? Sent from for Windows ? ? I am interested to know where you placed the capacitors. Can you show a drawing perhaps? ? On Sun, Feb 25, 2024, 3:18 PM barry halterman <kthreebo@...> wrote: lately I have noticed some contact bouncing with the main encoder when tuning my sbitx. My display frequency would bounce back and forth. I noticed, on the schematic, that there are no capacitors to clean up the noise from the rotary encoder. I installed two .1uf caps on the encoder board and that took care of my issue. Have not noticed any problems with the multi function encoder though. 73 Barry?
-- Jack, W8TEE
-- Jack, W8TEE
|
Re: Getting much closer to hearing something
Yes, I certainly received signals. Digital quite a bit
toggle quoted message
Show quoted text
On Feb 26, 2024, at 15:39, Steve Beckman <n3sb@...> wrote:
?Tony - does this mean you are now receiving signals on your sBitx???????? N3SB
|
Jacob,
I'm glad that you found the current problem.? Do you have a way to measure the current draw by the uBiTx?? Overcurrent seems like the most likely cause, though it seems to have cleared.??
Have fun with the radio!
73 Evan AC9TU
|
@Evan, yep D6 is definitely a problem, but I just can't figure out what caused the problem to begin with. IRF510s seem fine. I replaced D6 with what I had on hand (FR207) and everything powered up as expected (RX circuitry seems fine, I hear FT8 going on 7074k). I TX'd into the ATU + Power Meter and I see ~11W out. Contact gave me a 57 on 40m at about 10W output. I will be dropping a fuse in the circuit as soon as I pick one up.?
Any thoughts on what the root cause could have been? If the finals weren't the issue causing a big current draw, maybe a bad diode (what are the chances of that, really...)??
In any case, it's back operational, and a fuse will be here to be put inline soon.?
Many thanks!?
-jacob
|
Re: Getting much closer to hearing something
Tony - does this mean you are now receiving signals on your sBitx???????? N3SB
|
Re: CB to 10m Conversions
David - something to keep in mind when removing the channel switch - the input lines to the PLL may float to a state that represents an invalid channel. That may cause the PLL to shut down the transmitter.
If that happens, just ground some (or all) of the input lines from the channel switch.
73; Steve, N3SB
|
Re: CB to 10m Conversions
Nice!!!
t leaast i know im not the only one converting these rigs. Yes 10 meters is hot. I was running Cw with about 1 1/2 watts and making contacts. I want to build a fm board so i can run the repeaters on the top end of 10. Am has ,in my own opinion ,been active on 10. seems alot of ops been re living the good stuff, finding out the quality of a good AM transmission.
My uniden grant xl only needed a crystal and peaking, but i prefer to have it wide open,so im going with the si5351 and arduino since i have several on hand. oled screens are fairly easy to connect but im wanting to have a bigger screen. Im going to remove the channel switch. Im also stripping down one of my 10 to 6 meter transverters so i can kick it in with a switch.hoping i can fit it in the case, if not i will obtain a new Plastic project box for it.
I remember back in the day, the hygain boards with the ploo2 chips or the uniden 828? might be wrong about the number, but you could pull the leggs that were grounded and add some pullup resistors to give quite a wide swath of channels with a couple of toggles.
73 David ac9xh
On Monday, February 26, 2024 at 08:48:37 AM EST, Steve Beckman <n3sb@...> wrote:
Hi David;
The subject (victim) is a Cobra 29LTD Classic. I built up a board with an SI5351, RP2040 Zero, OLED, and a rotary encoder to replace the PLL. The control program is written in MicroPython, which has been fantastic for projects like this. The radio will be used for 29 MHz AM, although it has good sensitivity lower in the 10m band as well. May have to get the third channel of the SI5351 to generate 455 KHz to serve as a BFO so that it can receive SSB and CW.
The circuit is really begging for a simple PC Board to be designed. Also, once all the hardware is in place, it's easy to add more functionality to support scanning, memories, etc.
10 meters has been hot lately and there's DX in the AM segment, A project like this would be great for clubs that might want to have a 10m AM Simplex channel set up for local chats.?
I still have to get the OLED installed --BEHIND-- the front panel. (hi)?
73; Steve, N3SB
|
Re: Toroid size for scratch build Bitx40
BTW, the 37 in FT37-43 means its size is 0.37 inch, and 43 is the material mix of the toroid. So yes, they are very small. If you have fat fingers, the FT50-43 is a bit bigger. Use about one turn less for the same inductance.
toggle quoted message
Show quoted text
The FT37-61 toroid has a much lower permittivity than FT37-43, translating into a far lower inductance. I'd guess 5 to 10 times less inductance. It might work, but why go through the trouble? FT37-43 are pretty common. In fact, you can get 10 via Amazon for less than $7.
I would not use the FT37-6. It has low permittivity, and I believe higher losses at RF.
Hello,? I was hoping someone could help me with choosing the correct toroid for a scratch built bitx40. The circuit description on hfsignals below.
The inductors used on the board as follows:
- L1, L2, L3?: 6uh, 40 turns on T30-6 core
- L4?: Only needed the analog VFO, 9uh, 50 turns on T30-6 core
- L5?: just a jumper on the standard bitx40, you will have to an inductor of a few uh to pull the BFO down for upper-sideband
- L6, L7?: 1.1 uh, 17 turns on T30-6 core
- L8?: 10 turns on FT37-43
- T1,T2,T4,T5,T6,T7?: 10 turns trifilar on FT 37-43 core

- I could not find FT37-43 so i ordered the FT37-61
- these cores look way smaller than any build i have seen.
- Thanks in advance for any advice.?
- JR
|
Re: Toroid size for scratch build Bitx40
The FT37-61 toroid has a much lower permittivity than FT37-43, translating into a far lower inductance. I'd guess 5 to 10 times less inductance. It might work, but why go through the trouble? FT37-43 are pretty common. In fact, you can get 10 via Amazon for less than $7.
I would not use the FT37-6. It has low permittivity, and I believe higher losses at RF.
toggle quoted message
Show quoted text
Hello,? I was hoping someone could help me with choosing the correct toroid for a scratch built bitx40. The circuit description on hfsignals below.
The inductors used on the board as follows:
- L1, L2, L3?: 6uh, 40 turns on T30-6 core
- L4?: Only needed the analog VFO, 9uh, 50 turns on T30-6 core
- L5?: just a jumper on the standard bitx40, you will have to an inductor of a few uh to pull the BFO down for upper-sideband
- L6, L7?: 1.1 uh, 17 turns on T30-6 core
- L8?: 10 turns on FT37-43
- T1,T2,T4,T5,T6,T7?: 10 turns trifilar on FT 37-43 core

- I could not find FT37-43 so i ordered the FT37-61
- these cores look way smaller than any build i have seen.
- Thanks in advance for any advice.?
- JR
|
Re: sbitx encoder contact bounce
Two 0.1 uf capacitors on the encoder board are WAY much simpler! Barry ? ? Sent from for Windows ?
toggle quoted message
Show quoted text
From: Jack, W8TEE via groups.ioSent: Monday, February 26, 2024 1:44 PM To: [email protected]Subject: Re: [BITX20] sbitx encoder contact bounce ? On Monday, February 26, 2024 at 10:37:26 AM EST, Ashhar Farhan <farhanbox@...> wrote: Jack, In the sbitx, the encoders fire interrupts and measure the time through millis(), it is a wrapper around utime() ? My experience is that debouncing in software can vary from encoder to encoder. I would suggest creating symbolic constants for each encoder (e.g., tune, volume, etc). Usually, the delay is between 40 and 100 milliseconds: #define TUNE_ENCODER_DELAY??????????? ???? 50??????? // debounce delay in ms #define VOLUME_ENCODER_DELAY??????????? 40 and then look where to place them in the code. Many programmers use the standard delay() function call: delay(TUNE_ENCODER_DELAY); ?????????? ???? However, the delay() function is a "blocking" function, which means that it turns off interrupts for the delay period. Given that debounce functions have relatively short delays, this probably isn't a problem in this code body. However, perhaps some functions [e.g., MyHairsOnFire()] shouldn't be blocked. In that case, I would suggest: ? Purpose: to cause a delay in program execution ? ? ? unsigned long millisWait ? ?// the number of millseconds to wait ? void MyDelay(unsigned long millisWait) ? unsigned long now = millis(); ? ? while (millis() - now < millisWait) ? ? ; ?????????????????????????????????// Twiddle thumbs until delay ends... ? The millis() standard Arduino function is non-blocking, otherwise it acts the same as delay(). I try to use the style shown above. I use a starting capital letter for the function name and Polish notation because most standard and function library names in the Arduino IDE start with a lowercase letter. That way, I know in advance whether I wrote the code or it comes from a library I didn't write.? Also, the details about the function always falls in the function header between the "/" and the "/" followed immediately by the function signature (e.g., void MyDelay(unsigned long millisWait) and a newline character). By rigidly following the function format, I wrote a program that looked for the "/" lead-in and then used the __FILE__ and __DATE__ standard macros to create a user document that detailed all of the function calls we wrote for the project. When I had my own software company, I gently convinced all of my programmers to follow this format. Anyone who used a different format had to buy beer and pizza for the programmers the following Friday. I don't remember anyone buying lunch more than once, which kept the project documentation for the code up-to-date. Sorry for the long answer, but conventions can make projects with multiple coders easier to use. On Monday, February 26, 2024 at 07:23:58 AM EST, Ashhar Farhan <farhanbox@...> wrote: The debouncing of the encoders is done in software, not hardware. This is the first time I have heard of a bounce problem anyway.? Take a look at the encoder code you could tweak it to increase the debounce time. ? On Mon, Feb 26, 2024, 6:14 AM barry halterman <kthreebo@...> wrote: Hi, I put the capacitors on the underside of the encoder board. Each capacitor (.1uf) goes from? the phase A and B pin, to the encoder housing grounding trace. Plenty of room to incorporate these. Barry ? Sent from for Windows ? ? I am interested to know where you placed the capacitors. Can you show a drawing perhaps? ? On Sun, Feb 25, 2024, 3:18 PM barry halterman <kthreebo@...> wrote: lately I have noticed some contact bouncing with the main encoder when tuning my sbitx. My display frequency would bounce back and forth. I noticed, on the schematic, that there are no capacitors to clean up the noise from the rotary encoder. I installed two .1uf caps on the encoder board and that took care of my issue. Have not noticed any problems with the multi function encoder though. 73 Barry?
-- Jack, W8TEE
-- Jack, W8TEE
|
Re: sbitx encoder contact bounce
I understand now.
Jack, W8TEE
On Monday, February 26, 2024 at 10:37:26 AM EST, Ashhar Farhan <farhanbox@...> wrote:
Jack, In the sbitx, the encoders fire interrupts and measure the time through millis(), it is a wrapper around utime() - f
toggle quoted message
Show quoted text
My experience is that debouncing in software can vary from encoder to encoder. I would suggest creating symbolic constants for each encoder (e.g., tune, volume, etc). Usually, the delay is between 40 and 100 milliseconds:
#define TUNE_ENCODER_DELAY??????????? ???? 50??????? // debounce delay in ms #define VOLUME_ENCODER_DELAY??????????? 40
and then look where to place them in the code. Many programmers use the standard delay() function call:
delay(TUNE_ENCODER_DELAY); ?????????? ????
However, the delay() function is a "blocking" function, which means that it turns off interrupts for the delay period. Given that debounce functions have relatively short delays, this probably isn't a problem in this code body. However, perhaps some functions [e.g., MyHairsOnFire()] shouldn't be blocked. In that case, I would suggest:
/ ? Purpose: to cause a delay in program execution ? Parameter list: ? ? unsigned long millisWait ? ?// the number of millseconds to wait ? Return value: ? ? void / void MyDelay(unsigned long millisWait) { ? unsigned long now = millis(); ? while (millis() - now < millisWait) ? ? ; ?????????????????????????????????// Twiddle thumbs until delay ends... } The millis() standard Arduino function is non-blocking, otherwise it acts the same as delay(). I try to use the style shown above. I use a starting capital letter for the function name and Polish notation because most standard and function library names in the Arduino IDE start with a lowercase letter. That way, I know in advance whether I wrote the code or it comes from a library I didn't write.?
Also, the details about the function always falls in the function header between the "/" and the "/" followed immediately by the function signature (e.g., void MyDelay(unsigned long millisWait) and a newline character). By rigidly following the function format, I wrote a program that looked for the "/" lead-in and then used the __FILE__ and __DATE__ standard macros to create a user document that detailed all of the function calls we wrote for the project. When I had my own software company, I gently convinced all of my programmers to follow this format. Anyone who used a different format had to buy beer and pizza for the programmers the following Friday. I don't remember anyone buying lunch more than once, which kept the project documentation for the code up-to-date.
Sorry for the long answer, but conventions can make projects with multiple coders easier to use.
Jack, W8TEE
On Monday, February 26, 2024 at 07:23:58 AM EST, Ashhar Farhan < farhanbox@...> wrote:
The debouncing of the encoders is done in software, not hardware. This is the first time I have heard of a bounce problem anyway.? Take a look at the encoder code you could tweak it to increase the debounce time. On Mon, Feb 26, 2024, 6:14 AM barry halterman < kthreebo@...> wrote: Hi, I put the capacitors on the underside of the encoder board. Each capacitor (.1uf) goes from? the phase A and B pin, to the encoder housing grounding trace. Plenty of room to incorporate these. Barry ? Sent from for Windows ? ? I am interested to know where you placed the capacitors. Can you show a drawing perhaps? ? On Sun, Feb 25, 2024, 3:18 PM barry halterman <kthreebo@...> wrote: lately I have noticed some contact bouncing with the main encoder when tuning my sbitx. My display frequency would bounce back and forth. I noticed, on the schematic, that there are no capacitors to clean up the noise from the rotary encoder. I installed two .1uf caps on the encoder board and that took care of my issue. Have not noticed any problems with the multi function encoder though. 73 Barry?
-- Jack, W8TEE
-- Jack, W8TEE
|