¿ªÔÆÌåÓý

Date

Re: CNC encoder for ubitx

 

This was just an example to show that the 100PPR encoders can be made to work.? Anyone who cares to can feel free to incorporate Jack's suggestion and make the code into a library.


Re: BITX40 and loud noises #bitx40help

 

Thank you Evan, Vic and Sergio,

I have forgotten what software I installed since it I wasn't paying attention to the BITX40 for a long time. It was the first radio I was able to listen to a 40m station before I even had my license. Now it is time to actually use it!
I replaced the volume poti cable with a shielded one in the meantime - with no success but with a better feeling. The Amunter FW will be hopefully installed tonight if I'll find the time.

I'll upload a new video with the new software and after trying some other things out. This seems to be an awesome community - great to know that one gets help here.

A metal enclosure is also on the to-do list after the basic problems have been sorted out.

BTW: If the DHL tracking is right, I will receive my uBITX next tuesday :)

Cheers
Michael


Re: CNC encoder for ubitx

Jack, W8TEE
 

Dennis:

Why not make pos a static int within the CheckEncoderStatus()? It's still allocated on the heap, but you remove it from exposure via global scope and encapsulate it within the method that needs it. Also, if you decide to make it a library, you don't need to worry about its presence in a header file since it's buried within the method.

Jack, W8TEE

On Thursday, May 13, 2021, 8:24:53 AM EDT, Dennis Zabawa <kg4rul@...> wrote:


#include <RotaryEncoder.h> /*Support for 100 PPR rotary encoder*/
/*/
/*? ? ? ? ? ? ? ? ? ? ? ? ?ROTARY ENCODER? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*/
/*/
/*We are using an encoder with 100 PPR (Pulses Per Rotation)*/
#define RotaryEncoderPinB 10 /*Encoder pins? - Marked B- on body*/
#define RotaryEncoderPinA 11 /*Marked A- on body*/
#define EncoderRotatedCCW -1 /*Value returned for CCW rotation of encoder*/
/*Setup a RotaryEncoder with 4 steps per pulse for the 2 signal input pins*/
RotaryEncoder encoder(RotaryEncoderPinB, RotaryEncoderPinA, RotaryEncoder::LatchMode::FOUR3);
/*This interrupt routine will be called on any change of one of the input signals*/
static int pos = 0; /*If changed from last pass, encoder has been rotated*/
enum RotaryEncoderDirections /*Which way is the rotary encoder being rotated or not*/
{
? NoRotation, /*No rotation*/
? CwRotation, /*CW rotation*/
? CcwRotation /*CCW rotation*/
};
RotaryEncoderDirections CurrentRotaryEncoderDirection;
/*/
void EncoderInterruptService()
{
? encoder.tick(); /*Call tick() function to check the rotary encoder state*/
}//END EncoderInterruptService
?
/*/
RotaryEncoderDirections CheckEncoderStatus()
{
? encoder.tick(); /*Query the encoder library*/
? int newPos = encoder.getPosition(); /*Get current encoder position*/
? if (pos != newPos) /*Has encoder been rotated*/
? {
? ? if (int(encoder.getDirection()) == EncoderRotatedCCW) /*Query encoder library for rotation direction*/
? ? {
? ? ? pos = newPos; /*Save new rotary encoder position*/
? ? ? return CcwRotation; /*Encoder rotated CCW*/
? ? }
? ? else
? ? {
? ? ? pos = newPos; /*Save new rotary encoder position*/
? ? ? return CwRotation; /*Encoder rotated CW*/
? ? }
? }
? else
? {
? ? return NoRotation; /*ENccoder not rotated*/
? }
}//END CheckEncoderStatus
?
//
void setup()
{
? Serial.begin(9600);
? /*Setup rotary encoder interrupt routines for pin change*/
? attachInterrupt(digitalPinToInterrupt(RotaryEncoderPinB), EncoderInterruptService, CHANGE);
? attachInterrupt(digitalPinToInterrupt(RotaryEncoderPinA), EncoderInterruptService, CHANGE);
}//END setup
?
/*/
/*/
void loop()
{
CurrentRotaryEncoderDirection = CheckEncoderStatus();
? switch(CurrentRotaryEncoderDirection)
? {
? ? case CwRotation:
? ? ? {
? ? ? ?Serial.println("CW");
? ? ? ? ?break;
? ? ? }
? ? case CcwRotation:
? ? ? {
? ? ? ?Serial.println("CCW");
? ? ? ? ?break;
? ? ? }
? ? default:
? ? ? {
? ? ? ? ?break;
? ? ? }
? }
} //END loop
?

--
Jack, W8TEE


Re: CNC encoder for ubitx

 

#include <RotaryEncoder.h> /*Support for 100 PPR rotary encoder*/
/*/
/*? ? ? ? ? ? ? ? ? ? ? ? ?ROTARY ENCODER? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?*/
/*/
/*We are using an encoder with 100 PPR (Pulses Per Rotation)*/
#define RotaryEncoderPinB 10 /*Encoder pins? - Marked B- on body*/
#define RotaryEncoderPinA 11 /*Marked A- on body*/
#define EncoderRotatedCCW -1 /*Value returned for CCW rotation of encoder*/
/*Setup a RotaryEncoder with 4 steps per pulse for the 2 signal input pins*/
RotaryEncoder encoder(RotaryEncoderPinB, RotaryEncoderPinA, RotaryEncoder::LatchMode::FOUR3);
/*This interrupt routine will be called on any change of one of the input signals*/
static int pos = 0; /*If changed from last pass, encoder has been rotated*/
enum RotaryEncoderDirections /*Which way is the rotary encoder being rotated or not*/
{
? NoRotation, /*No rotation*/
? CwRotation, /*CW rotation*/
? CcwRotation /*CCW rotation*/
};
RotaryEncoderDirections CurrentRotaryEncoderDirection;
/*/
void EncoderInterruptService()
{
? encoder.tick(); /*Call tick() function to check the rotary encoder state*/
}//END EncoderInterruptService
?
/*/
RotaryEncoderDirections CheckEncoderStatus()
{
? encoder.tick(); /*Query the encoder library*/
? int newPos = encoder.getPosition(); /*Get current encoder position*/
? if (pos != newPos) /*Has encoder been rotated*/
? {
? ? if (int(encoder.getDirection()) == EncoderRotatedCCW) /*Query encoder library for rotation direction*/
? ? {
? ? ? pos = newPos; /*Save new rotary encoder position*/
? ? ? return CcwRotation; /*Encoder rotated CCW*/
? ? }
? ? else
? ? {
? ? ? pos = newPos; /*Save new rotary encoder position*/
? ? ? return CwRotation; /*Encoder rotated CW*/
? ? }
? }
? else
? {
? ? return NoRotation; /*ENccoder not rotated*/
? }
}//END CheckEncoderStatus
?
//
void setup()
{
? Serial.begin(9600);
? /*Setup rotary encoder interrupt routines for pin change*/
? attachInterrupt(digitalPinToInterrupt(RotaryEncoderPinB), EncoderInterruptService, CHANGE);
? attachInterrupt(digitalPinToInterrupt(RotaryEncoderPinA), EncoderInterruptService, CHANGE);
}//END setup
?
/*/
/*/
void loop()
{
CurrentRotaryEncoderDirection = CheckEncoderStatus();
? switch(CurrentRotaryEncoderDirection)
? {
? ? case CwRotation:
? ? ? {
? ? ? ?Serial.println("CW");
? ? ? ? ?break;
? ? ? }
? ? case CcwRotation:
? ? ? {
? ? ? ?Serial.println("CCW");
? ? ? ? ?break;
? ? ? }
? ? default:
? ? ? {
? ? ? ? ?break;
? ? ? }
? }
} //END loop
?


Re: S5351 SetPower command

 

Hello Mark,

I arrived at that comparison when chasing the Rx signal difference between my V5s compared to my V3.

The V3 had a lower receive signal (even when using the audio section of the V5 to eliminate any V3 audio section issues).

I found a significant difference in the received signal?(from memory of 7dB) after the first mixer, as measured by my Antuino.?

After spending several hours chasing this issue I found the difference of drive in the software to and set the drive to 8mA for the V3. And voil¨¤, issue fixed.?

I noticed that the output power was also increased.

Note: my V3 has been heavily modified, so this is a sample of one, on a non-standard unit (Axicom relays, extra inductors at the first IF filter, CW unbalance moved to 2nd IF mixer among other changes).

But the test is so simple, so it may be worth trying on older units.

All the best,

73, John (VK2ETA)


Re: BITX40 and loud noises #bitx40help

 

Unless you are using different software such as Amunter's V2 which requires some significant hardware changes, the BFO is only adjustable by changing capacitors on the main board. Not that it is a bad idea, look for the YouTube video from VK3YE on Improved BitX40 Audio and it makes a great improvement on transmitted audio frequency response by changing out one capacitor.

I would suggest changing to the Amunter V1.28 software. It loads without any hardware changes and immediately provides an improvement in tuning. Some simple and well described minor hardware changes add some significant features. See

The BitX40 is a relatively quiet radio on receive, but make sure you have a good antenna and ground, of course. The bands have not been very good lately, so continue to listen and see if some signals get better as the propagation improves. I have been very happy with mine and even use it mobile with good results.

=Vic=


Re: S5351 SetPower command

 

Mark and all

I tried the opposite way to lower the values for my sound pbs. That did not change anything.
On the other hand, it would be good to look with a spectrum analyzer at the 3 signals clock 0,1,2. Especially see the harmonics.
I can¡¯t do it, my analyzer¡¯s is at this time out of order.
With Evan, we saw that there was still a modulation signal at the output of the SSB filter. Signal that modulates sound at 16 khz. (Ubitx V2,3,4 with KD8CEC version)
If someone may test this.

cdt


Re: S5351 SetPower command

Mark - N7EKU
 

Hi John,

How did it improve the RX and TX?? I am interested to try it, and am wondering what you found?

Thanks!


Mark


Re: BITX40 and loud noises #bitx40help

 

Michael,
I have never worked on a BITX40, So ai am using experience form the multiple version of the ?BITX I have worked on.??

I sound to me like you have a BFO adjustment issue.? I would think that the BFO Tuning Aid from Ashhar Farhan should be able to help with that.

To set it you do need an antenna connected.? Tune to a clear frequency, and then adjust the noise plateau to be between the two red lines.? I would suggest more towards the 300Hz marker to limit the opposite sideband suppression issues.? That also puts the most power in the most used audio portion for speech.

The BFO impacts both SSB receive and transmit.? You need the signal centered in the actual center of the crystal filter.? I believe that you adjust the BFO using C103.? It should have been set at the factory, but things can change over time.

73
Evan
AC9TU


Re: uBITX V6 Specifications.

Will B
 

On Tue, May 4, 2021 at 10:53 PM, Ashhar Farhan wrote:
There is a brutal way to add an on/off switch between the LED pin of the tft board and the Raduino board. That should shave off the power requirements down to 100 mA on receive (with headset on).
I have done this, and it's wonderful for battery and night-time operating.? I have added a pot to the front panel that also has a switch on it.? Whenever I just want to listen and not tune around, I just switch off the current to the display back-light and switch it back on for tuning around.? I also can dim the display almost completely dark.? It works great.? I have not tried to disconnect the whole display from power -- not sure I want to risk that.


Re: BITX40 and loud noises #bitx40help

 

Thank you very much for all your input!

The speaker is passive and the problem was still there with headphones attached.
The main problem was in fact the power source. With a proper power source, only a much quiter noise is left. The BITX40 is now kinda usable ;) The situation is now the following:

  • With an antenna attached, I don't hear the usual static but a permanent, not very loud noise (I'll better make a new video). It doesn't feel like radio, more like a telephone line with a little buzzing as I can hear strong stations perfectly clear and weaker stations absolutely not. Where could the problem be?
  • I was able to work a serbian station from germany and got a report of 55 (first QSO - yay!). I was only audible to the other station when I basically put the mic into my mouth. Tests with a power meter and a dummy load showed, that I get about 7W power out if i blow directly into the mic. A strong whistle a few cm away from the mic moves the needle to not more than 1-2W. Is there something like a mic gain setting? Any other idea how to get more power out / NF in?

Thank you very much!


Re: CNC encoder for ubitx

Jack, W8TEE
 

There's a library that corrects for that (I forgot who wrote it, but a search should find it), or you can do it in code yourself. Basically, store the count in a static int and reset after 4 clicks instead of one.

Jack, W8TEE

On Wednesday, May 12, 2021, 3:46:49 PM EDT, barry halterman <kthreebo@...> wrote:


Hey fellow ubitx fans, has anyone had luck using a CNC encoder? I purchased one and get 4 pulses for every click of the dial. Not good!
Thanks for any info!
Barry
K3bo

--
Jack, W8TEE


CNC encoder for ubitx

 

Hey fellow ubitx fans, has anyone had luck using a CNC encoder? I purchased one and get 4 pulses for every click of the dial. Not good!
Thanks for any info!
Barry
K3bo


Re: S5351 SetPower command

 

Evan,?

you are right
the topic has already been raised by Jerry

Re: Raduino mod to use the SI5351C (groups.io)

cdt


Re: S5351 SetPower command

 

Thank's for your answers

have read the artical?
you can translate in English.

his command is different but do the same???
i (we) have to read operational notice AN619? p 19?

cdt

his command:
2020-01-26_205649


Re: S5351 SetPower command

 

On Wed, May 12, 2021, at 02:56 AM, Gerard wrote:
This command does not appear to be used in the KD8CEC sotfware.
Gerard,
The power level for the Si5351 is set in the ubitx_si5351 tab in lines 63 to 67:
=====================Copied Code======================================
#if UBITX_BOARD_VERSION == 5
uint8_t? si5351bx_drive[3] = {3, 3, 3}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2
#else
uint8_t? si5351bx_drive[3] = {1, 1, 1}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2
#endif
=====================================================================

I believe this is from the original ?BITX code, not something that Dr. Lee modified.
73
Evan
AC9TU


Re: S5351 SetPower command

 

Hi Gerard,

It is used in the ubitx_si5351.ino, see extract below.

It is set at 8mA for ubitx V5 so at the right value.?

I tested this setting on a V3 which defaults to 2mA and it improved the Rx and Tx so I believe it should always be set at 8mA regardless of the model.

73, John


#if UBITX_BOARD_VERSION == 5
uint8_t? si5351bx_drive[3] = {3, 3, 3}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2
#else
uint8_t? si5351bx_drive[3] = {1, 1, 1}; // 0=2ma 1=4ma 2=6ma 3=8ma for CLK 0,1,2
#endif


Re: BITX40 and loud noises #bitx40help

 

Michael,

Welcome to the forum.? Please feel free to ask your questions here.? It also helps those of us who try to answer your questions if you can give us details on any added things to your BITX like powered speakers.

My first guess is that you have a grounding problem between the powered speakers that you are using and the BITX40.? I did note that you have it mounted in a plastic case which will make grounding a potential issue.? To verify that it is a grounding issue with the powered speakers, can you run the powered speakers on battery or use a 12volt battery to power the BITX40.? You could also try using headphones to see if the hum is there.

It is possible that you have a power supply issue with the BITX40. Are you using a good 12volt 2amp or more well-regulated supply?? Most "wall warts" will not handle the power requirements or produce a large AC hum like is on the video.

Try running on all on battery power to see what happens.

73
Evan
AC9TU


Re: BITX40 and loud noises #bitx40help

 

On Wed, May 12, 2021 at 09:09 AM, Michael wrote:
thank you for being included in the forum. About two years ago I bought a BITX40 as my first radio before I even had my license. I applied some modifications like the ten turn poti but never came around to finish it or have a QSO with it. I now want to complete the build and use it but have problems with noises. Since I am not able to describe it properly, I uploaded two videos. The first shows what happens with the brown cable not connected to the volume poti:
In the meantime, I apologize for my English !!
The problem is the cable that goes to the volume potentiometer which needs to be shielded!
Replace the 3 cables with a shielded one and you will see that the AC noise disappears

Sergio


S5351 SetPower command

 

Hello,

I found this article about the spectral purity of the S5153 Clocks signal
Apparently, there is a SetPower command to set the output current.
The spectral purity of the signals can be improved.
This command does not appear to be used in the KD8CEC sotfware.



cdt