开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育
Date

uBitx and CW

 

I'm a cw guy, so that's my main use for the uBitx. ?As I noted on here before, I find the bandpass too wide to be useable on cw - noise overwhelms the signals. ?Until we get a better fix, I've installed a Hi-Per-Mite SCAF (the same design used in the QCX) in the audio output line and it's HUGELY helpful. ?The rig is now quite competent on cw. ?This also isolates the TDA audio chip from the headphone jack, thus perhaps reducing chances of blowing the chip.

I'm using the KD8CEC firmware, which is great. ?The cw speeds are so close together, however, that after selecting one and trying to confirm it by pushing the encoder, the speed often changes. ?To solve that, I've wired a button parallel to the encoder push switch. ?In fact, I've used a spring-loaded SPDT switch; one side is for the encoder, and the other is PTT for when that is needed to set something in the menu. ?That has made confirming menu settings much easier, especially since I no longer have to hold onto the rig to keep it from moving when pushing the encoder.

I've installed the 470uf cap to reduce audio pop, though it increases the TX to RX delay and I may try a smaller one. ?It does reduce the pop on that transition.

Also, I've replaced R250 with a pot to control the sidetone volume, at least until I get it where I want it. ?I may replace it with a fixed resistor at that point.

Hope this is helpful to somebody.

Howard K4LXY


Re: Pulling Arduino data apart

 

You definitely need to be endian-aware when coding in assembly language.
But I can code all day in C without worrying about big vs little endian.

If you have a 32 bit integer and want to send the 8 msb's over a serial link, do something like this:
? ? sendbyte(data32>>24);
I'm assuming sendbyte() accepts an 8 bit argument, so no need to explicitly strip off unused bits.
This might make it more obvious:
? ? sendbyte((data32>>24)&0xff);
That code is bulletproof in C, should work the same on a PDP-8 with 12 bit hardware?
as it does on the the latest stuff from Intel.? Unions will undoubtedly get packed differently
on a PDP-8, in case anybody still cares these days.? C does not specify that unions get packed
in any particular manner, that's true even on an 8/16/32/64 bit machine.

Unions almost always work, might be a good idea on a minimalist machine like the ATMega328P.
Shifting a 32 bit integer is relatively painful with an instruction set that can only shift an 8 bit word
left or right by one bit at a time.? However, while it might take 100 clock ticks to execute, the code to
shift a 32 bit word is instantiated only once as a function call, and 100 ticks happens much faster
than sending a single byte out through the I2C interface.? (100 ticks is a wild guess.)

If 100 ticks is too painful, then it's time to sack the Nano and move on to the $2 STM32 Blue Pill.

Take a look at the si5351 routines in Allard's code and on the uBitx.
Totally endian agnostic.
I'm looking forward to trying them out on a PDP-8 someday.

Jerry, KE7ER



On Thu, Mar 8, 2018 at 07:51 am, Jack Purdum wrote:
.....? If you are bit shifting or masking, you need to know the "Endian" order for the bytes. On an Arduino, you are given two functions: lowByte() and highByte() to allow you to extract the order to determine how the data are organized in an int. Knowing the byte order can be important, such as transferring binary data from one place to another over a serial link. But what if you are working with a long data type? The lowByte() and highByte() functions don't work since a long is 4 bytes. The solution is to use a C structure called a union. Think of the union as a buffer; a small chunk of memory. I think of it as a bucket, the size of which is determined by the biggest piece of data that will be stored in the union. For example: .....


Re: TDA2822 Replacement

 

The issue has been handled by admin.
If it persists, more drastic action can/will be taken.
?
Can we please let this go and get back on-topic.

Thanks

Arv K7HKL
_._



On Wed, Mar 7, 2018 at 7:42 PM, Larry Smith <815cpu@...> wrote:
I had the same run in with Dex out of the blue!? i made a English usage error.? i guess typing in the middle of the night with a flashlight not wanting to wake the family is bound to cause a problem.? I see errors all the time and still "get" what the author is saying.? David just know we all know what's go'in on.

Good advice Jack.? Thanks..... Tomatoes as i recall I rem that one Hi

WA9DOH

?pompous ass ?comes to mind

On Wed, Mar 7, 2018 at 8:17 AM, Jack Purdum via Groups.Io <jjpurdum@...> wrote:
David:

Dex went after me a number of months ago for some spelling error I made, so I understand you anger. But stop and think about it: Despite what they might say, how unhappy does a person have to be with their life when their only apparent joy comes from criticizing others.

He's not worth your time...

Jack, W8TEE



From: N8DAH <Dherron@...>
To: [email protected]
Sent: Wednesday, March 7, 2018 8:43 AM
Subject: Re: [BITX20] TDA2822 Replacement

Dex,
Yes it was a funny misuse of the word and it was a type-o late at night..... what is not funny is having some kiwi like you come at me and just short of call me stupid and "should go back to middle school". Maybe you should go crawl back under the rock you look like you came from....I am here to enjoy a hobby and share tips, tricks and other info with like minded Hams. I don't come here to be insulted by the likes of you or anyone for a simple type-o.
In the nicest way Dex ....Piss off!

--
David
?N8DAH





Re: Volume Control

 

Audio taper is logarithmic. Human (and I'd presume most other) ears respond logarithmically to acoustic (sound level) variations - it's how we can detect faint sounds and tolerate loud ones. Use a 'log' pot - pretty much all audio control is such. Part of Alexander Graham Bell's (he of telephone fame) experiments discerned this in converting sound to voltage/current. It's why we measure in (deci)bels - 10 x log (Power1/power2).

73 de ZL2DEX


First complete contact

 

Hello all
Have had the first confirmed contacts with the BITX40. !!!
I confirmed contact on norcars net this morning. With Sebring Fl, Michigan and maybe MD. The Florida station was about 1100 miles away.?

I am using the stock microphone on a wand and am using an inverted V 40m dipole.
I am operating my radio off of a 12v 1300mah Lipo. i should be able to go to 24v on the finals.?
Dave
KE0PVO


Re: uBITX Manager

 

Thanks Ian, for some reason I was using 9600, changed it to 38400 and that did the trick.? Thanks for your patience.
David


uBITX Firmware CEC Version Added WSPR function, I am looking for a beta tester. #ubitx

 

All
uBITX Firmware CEC Version Added WSPR function, but?It is still a test level.
so, I am looking for a beta tester who has uBITX and knows how to use WSPR.

I used the following method to put the WSPR function in the small space of uBITX.
?- All settings required for WSPR transmission are pre-entered in uBITX.
?- Callsign, location(2alpha, 2 number), db and frequency information to be used for transmission are stored in uBITX.
?- Outdoors, uBITX and antenna are all you need to transmit WSPR with pre-entered information.

you do not need to make any modifications to your uBITX to use WSPR.

For more information, click on the link below.
(You can download uBITX Manager as firmware for WSPR.
Firmware is based on Cat Support uBITX Firmware CEC Version 1.04.)

--
Best 73
KD8CEC / Ph.D ian lee
kd8cec@...
(my blog)


Re: GPS and BITX

 


WSPR does not require GPS. However:

1) WSPR requires precise frequency, the transmission must be within the 200Hz WSPR sub-band.

2) WSPR requires precise timing: transmissions start on the 2nd second of even minutes, +/- a few seconds. An ordinary crystal or worse still, the ceramic resonator on some Arduinos, will not provide sufficient timing accuracy to run WSPR for long.

A GPS is a very convenient and easy way to achieve both of these objectives. On the Ultimate3S kit the latitude and longitude are also converted to Maidenhead Locator which is encoded live, into each WSPR transmission. Something that is necessary if you want to use WSPR for tracking something (ship, balloon) for example the Canadian C3 expedition

Speaking of which: Jim N2NXZ's U3S-22 balloon (running modified Ultimate3S firmware) reached Kazakhstan today. For the second time! It's already been flying for 23 days, at a little over 9,000m altitude, and completed one world circumnavigation! See for details and live tracking (using WSPR) during daytime. Big congratulations to Jim!

73 Hans G0UPL?
?



Pulling Arduino data apart

Jack Purdum
 

I've been going through some of the BITX/?BITX code and see a number of places where bit shifting and/or masking is being done to get rid of "unwanted" bits of data. Doing this means you have solved the "Endian" problem for the microcontroller being used. For example, on some processors, the number 5 stored as an int data type appears in memory as: 00000000 00000101. On other processors, it is stored as: 00000101 00000000. If you are bit shifting or masking, you need to know the "Endian" order for the bytes. On an Arduino, you are given two functions: lowByte() and highByte() to allow you to extract the order to determine how the data are organized in an int. Knowing the byte order can be important, such as transferring binary data from one place to another over a serial link. But what if you are working with a long data type? The lowByte() and highByte() functions don't work since a long is 4 bytes. The solution is to use a C structure called a union. Think of the union as a buffer; a small chunk of memory. I think of it as a bucket, the size of which is determined by the biggest piece of data that will be stored in the union. For example:

union {
? byte array[4];
? byte b;
? char c;
? int i;
? long L;
? float f;
} myUnion;

The long and the float data types are the biggest in the union, so the C compiler will allocate 4 bytes to the union named myUnion. It's a 4-byte bucket. If you want to, you can pour those four bytes into another long variable, or a float variable, or you could use a 1-byte dipper and spoon the 4 bytes into a 4-byte array. Your choice. Suppose, for some reason, the long in the union (i.e., the union member named L) needs to hold an RGB value for a color display. Further suppose you need to know the byte that isn't used as a color value. The following short program will show you how a union works. Note how I can fill the union with any data type, but extract it as a byte array. This makes it easy to observe the byte-order of the data. unions are a great C structure to understand as it gives you a portable way to determine the byte order of the data for a given processor.


union {
? byte array[4];
? byte b;
? char c;
? int i;
? long L;
? float f;
} myUnion;????? // Define a union

void setup() {
? byte b = 255;????? // create a list of variables...
? char c = 'A';
? int i = 5;
? long L = 10000000L;
? float f = 3.14;

? Serial.begin(9600);

? Serial.print("low byte = ");????????? // the non-portable way to see the byte order of? variable i
? Serial.print(lowByte(i));
? Serial.print("?? high byte = ");
? Serial.println(highByte(i));

? myUnion.i = i;????????????????????????????? // Stuff the int into the union, then look at it
? Serial.print("Union:? low byte = ");
? Serial.print(myUnion.array[0]);
? Serial.print("?? high byte = ");
? Serial.println(myUnion.array[1]);

? myUnion.b = b;??????????????????????? // same for a byte, in DEC and HEX
? Serial.print("Union: byte = ");
? Serial.println(myUnion.array[0]);
? Serial.print("? byte (hex) = ");
? Serial.println(myUnion.array[0], HEX);

? myUnion.L = L;?????????????????????????? // same for a long
? Serial.print("Union: long[0] = ");
? Serial.print(myUnion.array[0]);
? Serial.print("??? long[1] = ");
? Serial.print(myUnion.array[1]);
? Serial.print("??? long[2] = ");
? Serial.print(myUnion.array[2]);
? Serial.print("? long[3] = ");
? Serial.println(myUnion.array[3]);
???????????????????????????????????????????????????????? // Do some others on your own...
}

void loop() {
}


Re: Cases

Vince Vielhaber
 

Dunno about your aluminum tape, but copper tape is easy to solder to.

Vince.

On 03/08/2018 09:54 AM, W9ZIM wrote:
Nice looking case, Carl. I like the idea of lining the interior with
metal tape for better shielding, but does it need to be copper? I have
some aluminum tape that I use for patching up ductwork, and I wonder if
that will be just as effective.
--
Darren, W9ZIM
--
Michigan VHF Corp.


Re: GPS and BITX

 

Hi Qonita,
I agree with Chris, you do not have to transmit GPS coordinates.
WSPR is a protocol for testing propagation, antennas and so on.
Using this digital mode you transmit your Callsign, first 4 chars of your locator and power in dBm.
Receiving stations report transmitter they are able to heard.
GPS usage could be to transform coordinate in Locator so you can made a beacon always transitting right locator and runtime updated.
WSJTX is a program written by John Taylor (WSPR creator and Physics Nobel Prize) for operating WSPR, JT65, FT8 etc. digital modes?

Hope this helps,
Alessandro M. IU1ETR


Re: Micro BitX No Audio TDA2822?

 

Hi, Ron.? I have a similar post for the same problem.? My U1 has the WX label on it.? I ordered a replacement and it should be here next week.? I'll post results.? Crossing my fingers......:)
Tom
AB7WT


Re: KB1OIQ BITX40 / uBITX files now on Sourceforge

 

WOW!.? I'm excited at all the work different people are doing.? This makes the Bitx40 and uBitx even more exciting.? Now if I can just retire and get to work on all this stuff I'd have a blast. lol?? Thanks to you and all the others that are coming up with some amazing ideas and Farhan.?

73, Michael
KM4OLT


Re: UBit has shipped

 

John,
More kits/projects than time permits is kinda the standard with hams I think. I keep finding kit projects I've had so long that I can't remember when/why/where I ordered them LOL. Just received my BITX40 and am anxiously awaiting my uBitx.
Don N9GOD


Re: Cases

 

Nice looking case, Carl.? I like the idea of lining the interior with metal tape for better shielding, but does it need to be copper?? I have some aluminum tape that I use for patching up ductwork, and I wonder if that will be just as effective.
--
Darren, W9ZIM


Re: Cases

 

I designed a Case specifically for the uBITX.? Please read my attached PDF File and see what you think.? I have been getting nice feedback from those that have purchased one.


Re: Raduino oscilators. 33mhz and 57mhz " . Documentation says one thing, but this is what I measured.

Jack Purdum
 

Just to make sure, if you retype the code fragment:

? ? if (prev_freq <= 10000000l && frequency > 10000000l)
? ? ? isUSB = true;
? ? if (prev_freq > 10000000l && frequency <= 10000000l)
? ? ? isUSB = false;

note that the last character in the numeric constants is an 'el' not a one. You can make this more obvious by using a capital 'L' for the data type specifier:

? ? if (prev_freq <= 10000000L && frequency > 10000000L)
? ? ? isUSB = true;
? ? if (prev_freq > 10000000L && frequency <= 10000000L)
? ? ? isUSB = false;

Jack, W8TEE



From: Michael Shreeve <shreevester@...>
To: [email protected]
Sent: Thursday, March 8, 2018 12:59 AM
Subject: Re: [BITX20] Raduino oscilators. 33mhz and 57mhz " . Documentation says one thing, but this is what I measured.

24.99800 MHz clock

On Wed, Mar 7, 2018 at 8:34 PM, Michael Shreeve <shreevester@...> wrote:
Jerry, I was just looking at it. on LSB 54.99645
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? on USB 54.99645
Regardless of upper or lower, no change. Does that make more sense ? When I looked before setting it, I noticed it wasn't on 10.000 MHz so I made very sure this time. Now to measure the 25 clock.

On Wed, Mar 7, 2018 at 7:03 PM, Jerry Gaffke via Groups.Io <jgaffke@...> wrote:
So, in that first instance, the rig is tuned to?54.98977-(32.99388+11.99624 ) =?9.999650
In the second instance, it is tuned to?54.99647-(56.99305-11.99624 ) =?9.999660
Since it flipped, we can assume 10mhz is somewhere in the middle, let's assume 9.999655 mhz
I'm betting your 25mhz oscillator will measure to be around? 25.0 * 9.999655/10.0 =?24.9991375 mhz

This little exercise in looking at that transition makes apparent what I think is a bug in that code scrap,?
we need to deal with the case where one or the other frequency is exactly equal to 10.0 mhz.
So code in ubitx_20.ino at line 470 should be edited to read:

? ? if (prev_freq <= 10000000l && frequency > 10000000l)
? ? ? isUSB = true;
? ? if (prev_freq > 10000000l && frequency <= 10000000l)
? ? ? isUSB = false;

I think.

Jerry, KE7ER


On Wed, Mar 7, 2018 at 05:21 pm, Michael Shreeve wrote:
Hopeffuly you see this Jerry, its just for you. but anyone might find this usefull I hope.?

Frequencies on 10mhz lsb Clock 0 54.98977
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? clock 1 32.99388
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? clock 2 11.99624

Frequencies on 10 MHz USB Clock 0 54.99647
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? Clock 1 56.99305
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Clock 2 11.99624?
And as I said in the video, haven't measured the master 25.000 MHz clock. Soon that will happen.?



--
Michael Shreeve N6GRG




--
Michael Shreeve N6GRG




Virus-free.


Re: UBit has shipped

 

I ordered mine on Jan 10th and just received notice it was shipped today. It was shipped via DHL so should be here n a few days.

Ron
W5RKW


Re: UBit has shipped

 

I ordered mine on Jan 5 and it arrived March 7. what an elegant little board. beautiful!!!!!
Jim

wb4ctx


Re: RD16HHF1 power curve flattening...some

 

John,

How did you implement the ssm2167?

I have one in my bitx40.

Regards


Simon
VK3ELH