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

Lawrence Galea

Sorry for the incomplete email.
Pushed the wrong button on the keyboard while still compiling this draft before any corrections..

OK.
Let's see if I can make it easy.

Lets say that we have a 12 MHz carrier and we want to convert it to transmit to the 28 MHz band.
We could either mix the 12 MHz carrier with a 16 MHz signal (12 MHz + 16 MHz = 28 MHz) or a 40 MHz (40 MHz - 12 MHz = 28 MHz).
In the case of mixing the 12 MHz carrier with the 40 MHz signal we will also get 52 MHz which we do not require and which we will filter out.

Let's say that now we have a 12 MHz filter which passes the lower side-band and we want to mix the filter output signal to transmit on the 28 MHz band.
Let's say that the carrier frequency is exactly 12 MHz and we modulate the carrier with a 1 kHz audio tone.
In a normal AM transmitter, we end up with the carrier and two side bands, one which is 12 MHz + 1 kHz = 12,001,000 MHz which is the Upper Side Band (USB) and the other 12 Mhz - 1 kHz = 11.999,000 MHz which is the lower side band

Now let's take the same example as above but the signals are passed through a filter which passes the lower side-band (LSB) (11,999,000 MHz in the example) and filters out the Upper Side-band (USB) (12,001,000 MHz).

The carrier is also attenuated somewhat by the filter as it is placed down the slope of the filter curve to cut the lower voice frequencies as we are not after generating a hi-fi signal and are not really required for intelligibility apart from other considerations while the carrier is further heavily attenuated in the balanced modulator. Theoretically, if the balanced modulator was perfectly balanced and everything screened, the carrier attenuation will be infinite, but practically it is attenuated to a very very low level as to be considered as being suppressed.

Now let's say that the carrier was not suppressed but the lower side-band was passed by the filter and we mix them with a 40 MHx oscillator. (Remember that the upper side-band was suppressed by the filter and theoretically is not present, leaving us with the 12 mHz carrier and the 11.999,000 MHz signals)

The output of the mixer will contain the 40 MHz oscillator, the 12 MHz carrier and the 11.999.000 MHz lower side-band including other mixer products which for the present purpose we shall ignore.

By using a balanced mixer as used in the 12 MHz side-band generator the 40 MHz signal can be cancelled (attenuated to a very low level) and we will have an output signal from the mixer of 40 MHz + 12 MHz = 52 MHz and 40 MHz - 12 MHz = 28.000,000 MHz and also 40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.

However, since we used a balanced modulator at 12 MHz, the 12 MHz carrier was suppressed and only the lower side band was allowed to pass through, which simplifies the matter as when we mix the lower side band from the filter with the 40 MHz oscillator will will only get  40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.

At the output of the mixer we put a filter to select our wanted 28 MHz signal and strip the unwanted 52 MHz signal.

This clearly shows how the lower side-band from the filter (11.999,000 MHz) in relation to the original carrier frequency of 12 MHz has been turned into an upper side-band by the mixer when we used an oscillator frequency for mixing higher then the output frequency required.

Now if we take the lower side band which is 11.999.000 Mhz and mix it with a 40 MHz oscillator, we can also get on the 50 MHz band, but in this case it is easy to see that we will still end up with a side-band transmission if you work out the simple mathematics.

Now let's say that instead of mixing our crystal filter output with 40 MHz, we mix it with 16 MHz to get on the 28 MHz band (16 MHz + 12 MHz = 28 MHz).
But since we have suppressed the carrier and we only have an 11.999,000 MHz signal, 16 MHz + 11,999,000 = 27.999,000 signal which in this case will be outside the 28 MHz band but serves to illustrate our purpose.
16 MHz - 11.999,000 Mhz will also give us 4,001.000 MHz which we can easily filter out.

If our side-band filter passed the upper side-band, the opposite will be true

As you can see it is simple mathematics but may be difficult to understand without some numbers.

Hope this explained the difficulty.

Regards
Lawrece

On Fri, Mar 9, 2018 at 12:39 PM, Lawrence Galea wrote:
OK.
Let's see if I can make it easy.

Lets say that we have a 12 MHz carrier and we want to convert it to transmit to the 28 MHz band.
We could either mix the 12 MHz carrier with a 16 MHz signal (12 MHz + 16 MHz = 28 MHz) or a 40 MHz (40 MHz - 12 MHz = 28 MHz).

Let's say that now we have a 12 MHz filter which passes the lower side band and want to mix the filter output signal to transmit on the 28 MHz band.
Let's say that the carrier frequency is exactly 12 MHz and we modulate the carrier with a 1 kHz audio tone.
In a normal AM transmitter, we end up with the carrier and two side bands, one which is 12 MHz + 1 kHz = 12,001,000 MHz which is the Upper Side Band (USB) and the other 12 Mhz - 1 kHz = 11.999,000 MHz which is the lower side band

Now let's take the same example as above but the signals therough a filter which passes the lower sideband (LSB) (11,999,000 MHz in the example) and filters out the Upper Sideband (USB) (12,001,000 MHz) in this example.

The carrier is also attenuated somewhat by the filter as it is placed down the slope of the filter curve to cut the lower voice frequencies which are not re and further heavily attenuated in the balanced modulator. Theoretically, if the balanced modulator was perfectly balanced and everything screened, the carrier attenuation will be infinite, but practically it is attenuated to a very very low level as to be considered as being suppressed.
Now let's say that the carrier was not suppressed but the lower sideband was still passed by the filter and the upper sideband was rejected we mix them with a 40 MHx oscillator.
The output of the mixer will contain the 40 MHz oscillator, the 12 MHz carrier and the 11.999.000 MHz lower sideband including other mixer products which for the present purpose we shall ignore.
However, by using a balanced mixer as used in the 12 MHz sideband generator the 40MHz signal can be cancelled (attenuated to a very low level) and we will have an output signal from the mixer of 40 MHz + 12 MHz = 52 MHz and 40 MHz - 12 MHz = 28.000,000 MHz and also 40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.
However, since we used a balanced modulator at 12 MHz, the 12 MHz carrier was suppressed and only the lower side band was allowed to pass through, which simplifies the matter as when we mix the lower side band from the filter with the 40 MHz oscillator will will only get  40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.
At the output of the mixer we put a filter to select our wanted 28 MHz signal and strip the unwanted 52 MHz signal.
This clearly shows how the lower sideband from the filter has been turned into an upper sideband by the mixer when we used an oscillator frequency for mixing higher then the output frequency required..
Now if we take the lower side band which is 11.999.000 Mhz and mix it with a 40 MHz oscillator, we can get

On Wed, Mar 7, 2018 at 10:13 PM, Michael Shreeve wrote:
Ok, checked out the BITX40 explanation, and clearly the uBITX is a completely different giraffe and requires different math. If someone even wanted to try to do that I'd be grateful. I guess I might be able to wrap my head around it.

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

Lawrence Galea

OK.
Let's see if I can make it easy.

Lets say that we have a 12 MHz carrier and we want to convert it to transmit to the 28 MHz band.
We could either mix the 12 MHz carrier with a 16 MHz signal (12 MHz + 16 MHz = 28 MHz) or a 40 MHz (40 MHz - 12 MHz = 28 MHz).

Let's say that now we have a 12 MHz filter which passes the lower side band and want to mix the filter output signal to transmit on the 28 MHz band.
Let's say that the carrier frequency is exactly 12 MHz and we modulate the carrier with a 1 kHz audio tone.
In a normal AM transmitter, we end up with the carrier and two side bands, one which is 12 MHz + 1 kHz = 12,001,000 MHz which is the Upper Side Band (USB) and the other 12 Mhz - 1 kHz = 11.999,000 MHz which is the lower side band

Now let's take the same example as above but the signals therough a filter which passes the lower sideband (LSB) (11,999,000 MHz in the example) and filters out the Upper Sideband (USB) (12,001,000 MHz) in this example.

The carrier is also attenuated somewhat by the filter as it is placed down the slope of the filter curve to cut the lower voice frequencies which are not re and further heavily attenuated in the balanced modulator. Theoretically, if the balanced modulator was perfectly balanced and everything screened, the carrier attenuation will be infinite, but practically it is attenuated to a very very low level as to be considered as being suppressed.
Now let's say that the carrier was not suppressed but the lower sideband was still passed by the filter and the upper sideband was rejected we mix them with a 40 MHx oscillator.
The output of the mixer will contain the 40 MHz oscillator, the 12 MHz carrier and the 11.999.000 MHz lower sideband including other mixer products which for the present purpose we shall ignore.
However, by using a balanced mixer as used in the 12 MHz sideband generator the 40MHz signal can be cancelled (attenuated to a very low level) and we will have an output signal from the mixer of 40 MHz + 12 MHz = 52 MHz and 40 MHz - 12 MHz = 28.000,000 MHz and also 40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.
However, since we used a balanced modulator at 12 MHz, the 12 MHz carrier was suppressed and only the lower side band was allowed to pass through, which simplifies the matter as when we mix the lower side band from the filter with the 40 MHz oscillator will will only get  40 MHz + 11.999,000 MHz = 51.999,000 MHz and 40 MHz - 11.999,000 = 28.001,000 MHz.
At the output of the mixer we put a filter to select our wanted 28 MHz signal and strip the unwanted 52 MHz signal.
This clearly shows how the lower sideband from the filter has been turned into an upper sideband by the mixer when we used an oscillator frequency for mixing higher then the output frequency required..
Now if we take the lower side band which is 11.999.000 Mhz and mix it with a 40 MHz oscillator, we can get

On Wed, Mar 7, 2018 at 10:13 PM, Michael Shreeve wrote:
Ok, checked out the BITX40 explanation, and clearly the uBITX is a completely different giraffe and requires different math. If someone even wanted to try to do that I'd be grateful. I guess I might be able to wrap my head around it.

Re: cheap logic analyzer

Rod Davis

In the previous email, I am not sure why the PULSEVIEW screen looks fuzzy- however, on the actual PC screen, it is quite sharp and clear,
and the pic I posted was sharp and clear.

Something got fuzzy in the posting process.

Rod KM6SN

cheap logic analyzer

Rod Davis

Hi All,

KD8CEC software will run in a stand-alone separate Arduino Nano which is not connected to a uBITX.

I have had occasions where I needed to look at the CAT serial link, so I mounted a spare Nano on
perfboard so I could access the UART RX and TX lines, as well as the Nano Reset line, and installed
the KD8CEC software on it. Test jig shown here:

and note the ESD ground plate underneath!

----------------------------------------------------------------------------------------------------------------------------------

Some time ago I  purchased a Saleae 8ch logic analyzer when they were still cheap. I used it, and enjoyed it for about a year.

Then, an ESD accident blew the Saleae. I looked online and did not like the new Saleae prices, so I purchased a cheap
Saleae clone for about \$12. See

Unfortunately, the folks at Saleae got upset at all the clones, and changed their software so that it would not work with the clones.

So, I went to the USBee web site to get software, only to find out they wanted \$20 for it. I did not want to pay \$20 for
proprietary software linked to one piece of hardware only.

After some digging I found what appears to be excellent open source (FREE!) logic analyzer software called  PULSEVIEW and sigrok.

PULSEVIEW provides for decoding protocols, such as I2C, UART, CAN, 1wire, and many more.

Sigrok is the command line version, and PULSEVIEW is the GUI on top of the command line
that provides a graphical display of decoded serial link.

PULSEVIEW/sigrok supports an impressive list of hardware analyzers. Furthermore, PULSEVIEW/sigrok supports
data collection from some digital mulit-meters, and digital oscilloscope dongles...see:

https://sigrok.org/wiki/Supported_hardware

Apparently some logic analyzers have an analog channel, and PULSEVIEW can show the analog signal as you would see it on an oscilloscope.

Here is an example PULSEVIEW screen showing a UART serial link decoded.
Channel D0 is Nano UART RX, channel D1 is Nano UART TX, channel D2 is Nano reset line:

Not bad for a \$12 investment!!

------------------------------------------------------------------------

PULSEVIEW/sigrok installation instructions:

WINDOWS:

https://sigrok.org/wiki/Windows#Windows_installers

LINUX:

I use Linux, specifically LUBUNTU 16.04.This is how I installed sigrok/PULSEVIEW:

https://sigrok.org/wiki/Linux

Then, install the firmware for the USBee AX using these instructions:

https://sigrok.org/wiki/Fx2lafw

Use sudo to copy the attached file 99SaleaeLogic.rules into /etc/udev/rules.d

------------------------------------------------------------------------

Now you have a very effective logic analyzer for about \$12 !!!

Have fun...

Rod KM6SN

Re: Wiring of the CW jack

Mike Bowthorpe

Hi Tim

Here is a picture of the control wiring (without on/off connected)

73
Mike
G0CVZ

Re: RD16HHF1 power curve flattening...some

John <passionfruit88@...>

No worries, thank you Simon for the information.

I haven't noticed the feedback issue on mine.

Not sure where it coming from since Q6 is in-powered in RX.

Worse case we can put an emitter follower npn on the supply side of the SSM2167 and extract the T/R line from the raduino (I have done that on mine) or bring the TX supply and regulate to 5V.

I will check that issue here.

73, John (VK2ETA)

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

Jerry Gaffke

That's an excellent method to measure the frequency of the 25mhz oscillator.
If the receiver has sufficient low frequency audio response, you could monitor the speaker wires with a scope
and get sub hz accuracy when zero-beating.

I'll check my uBitx (tomorrow?), see how much warmup drift I can detect.
The 2.3khz drift (at 25mhz) you reported seems too large by a couple orders of magnitude.

Jerry

On Thu, Mar 8, 2018 at 07:55 pm, Michael Shreeve wrote:
I don't know if I responded to this. I thought I explained but then maybe not. What I have always done when there is no buffered output is 1 use a receiver and an "antenna" if you will, one that is near the raduino but not touching anything. 2 turn on a somewhat stable generator and, in my case right now, measure the generator frequency directly with a counter. I can hear that generator in the same receiver.. Zero beat the generator , which is being measured, with the 25 MHz signal emanating from the raduino. Turns out it did change as I indicated, merely from heating up. No direct coupling at all for this measurement. At least to the raduino. If I had a communications monitor I wouldn't need to measure the freq of the generator. Or some other stable generator source. Also, I need to try to determine just how accurate my counter is.

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

Michael Shreeve

I don't know if I responded to this. I thought I explained but then maybe not. What I have always done when there is no buffered output is 1 use a receiver and an "antenna" if you will, one that is near the raduino but not touching anything. 2 turn on a somewhat stable generator and, in my case right now, measure the generator frequency directly with a counter. I can hear that generator in the same receiver.. Zero beat the generator , which is being measured, with the 25 MHz signal emanating from the raduino. Turns out it did change as I indicated, merely from heating up. No direct coupling at all for this measurement. At least to the raduino. If I had a communications monitor I wouldn't need to measure the freq of the generator. Or some other stable generator source. Also, I need to try to determine just how accurate my counter is.

On Wed, Mar 7, 2018 at 10:12 PM, Jerry Gaffke via Groups.Io wrote:
So did you measure the crystal directly?
If so, your probe likely modified the frequency a bit.

My calculation of 24.9991375 may be wrong for a number of reasons:

tuning through 10.0mhz in 50hz steps.  But we have since seen that there
is a bug in the code such that it would not make the LSB to USB transition while
tuning in 50hz steps.  So not clear exactly what was going on there.

It assumes your rig was either uncalibrated (and thus si5351_vco==875.0mhz)
and that your probe on the crystal is not disturbing the crystal frequency.
Or that you are doing an si5351_setfreq() to one of the clock outputs of 25.0mhz and measuring that.

Jerry

On Wed, Mar 7, 2018 at 09:59 pm, Michael Shreeve wrote:
24.99800 MHz clock

. . .

--
Michael Shreeve N6GRG

uBITX Mic Wireup

Shaun

Does anybody have a diagram or description of the mic wire up for the uBITX? I am looking for the mic itself, not the mic jack on the transceiver. Most of the mic's I have dealt with have the MIC+ going to one side of the electret and MIC- or ground routing through the PTT switch when it is closed, completing the circuit. Looking at the uBITX schematic and a mic wireup for an older version of BITX from several years ago on the forum, what I think I am seeing is that the sleeve is providing a constant ground to both the MIC- side of the electret and one side of the PTT switch. The tip connects a constant output to the other side of the PTT switch and the ring is providing a constant output to the MIC+ side of the electret. It almost looks like the electret is an "always on" state but the output is not utilized until the separate PTT circuit is completed. Any help would be appreciated.

Shaun
KEØNLN

Re: RD16HHF1 power curve flattening...some

Kelly Jack

Thanks John.

I used the same board and similarly power from the regulated 5v line on the raduino. It also offboard and just inline with the mic line.

75k for compression and 1k for gating and 100k pot on output. At full output my audio was readable but distored based on the one audio check qso I had before I turned it down a bit.

I put a larger heatsink on the irf510 too to cater for the higher average output as the stock one was getting warm where previously it didnt.

A sideeffect of the mic being on all the time is that there is leakage through to the speaker and it causes some feedback if the mic is within 2 inches or so of the speaker. Not a big problem.

Sorry all for the off topic content!

Regards

Simon VK3ELH

Re: RD16HHF1 power curve flattening...some

John <passionfruit88@...>

Hello Simon,

I used the small circuit board as found on eBay. A search of "SSM2167 Microphone Preamplifier Board Preamp COMP Compression Module DC 3V-5V" will show you the module I used.

I simply connected the input to the mic, added a 4.7Kohms resistor between the mic input and the 5VDC (taken from the Raduino) for biasing the electret and put a 10Kohms potentiometer in the output to adjust the power level to the mic preamp stage.

So I didn't modify the uBitx board, simply inserted in the circuit. There is most likely too much gain which is reduced back with the output potentiometer , but I haven't received any negative feedback about the compressor except when I pushed the output potentiometer too high.

I have since removed the "R1" resistor and replaced it with a 51K Ohms resistor to get a 4/1 compression factor, up from the 2/1 as delivered. I haven't tested that on air yet.

On your Bitx40 what values resistors do you have for compression and noise gating?

Picture attached.

All the best,

73, John (VK2ETA)

Re: uBITX - U1 Getting Fried - possible cause

Robert Ogburn

DUH!  I failed to read the datasheet!
Much obliged, sir.

Re: uBITX - U1 Getting Fried - possible cause

Robert Ogburn

Good analysis. Since the current surge is of short duration, the 1.2W series resistor may be overkill.
I propose scaling the resistor to 2R2 (2.2 ohms) and the capacitor to 220uf...  I will enjpy your analysis.  At my age, arithmetic is advanced math!

Re: How to order a Raduino

Tim Gorman

Thanks, Mike.

I just sent you some money for one of your assembled ubitx boards. I
could assemble it myself but I just don't know where to get the time!

tim ab0wr

On Thu, 8 Mar 2018 14:07:47 -0800
"Michael Hagen" <motdog@...> wrote:

I did it on an old Allard version. Use the library that is available,
and edit the prints to the LCDs.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Set up LCD and its I2C address.

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

My boards got a dedicated 4 Pin Molex for I2C at 5V.

Find the library and run some examples to get started.

73's Mike

On 3/8/2018 1:09 PM, Tim Gorman wrote:
Mike,

Is there code out there for utilizing your RaduinoUMax with an I2C
lcd?

I'm running a bunch of jumpers from the Raduino to the lcd and it's
a mess. Running four jumpers would be a lot cleaner installation.

tim ab0wr

On Thu, 8 Mar 2018 10:31:48 -0800
"Michael Hagen" <motdog@...> wrote:

I have the "Better" Rauinos for BitX and uBit.

I have sold over 50 to folks on this list.

Shipping to foreign countries is usually \$15-20. I can give you a
shipping price from the US Post.

Take a look at attached documents.

73's Mike, WA6ISP

On 3/8/2018 9:40 AM, kir@... wrote:
Hi guys,

As I have an old Bitx40 with analog VFO, I would order a Raduino.
How can I do that ? found no info.
I do not have the correct email.

Can you help ?
Tnx and 73's from Felix/ON4KIR

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

Ian Lee

Carlos

Thanks for trying test.

1.First, test with a communication program such as Ham radio deluxe or Wsjt-x to check the communication status.
2.Occasionally, such a problem can occur if the thickness of the USB cable is thin.
3.uBITX Firmware CEC Version may not be able to CAT  communicate when WSPR are used.
4.This is when you entered the WSPR menu.

Ian KD8CEC

2018-03-09 3:21 GMT+09:00 Carlos E. Wenzel :

Hello Ian..
I have the same problem....

2018-03-08 17:21 GMT+01:00 Ian Lee :
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.

Firmware is based on Cat Support uBITX Firmware CEC Version 1.04.)
http://www.hamskey.com

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

--
Carlos Wenzel
ik2yra@...
+39-3284684518
Skype: IK2YRA

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

Re: Pulling Arduino data apart

Jerry Gaffke

Agreed, we've wasted too much time on something not at the top of our priorities here.
Anyone wishing to continue this discussion is welcome to send me a private message.

In parting, I believe that once the data is in the CPU, in this case stored as a 32 bit integer
in a register, endian-ness is not a factor.  This code looks correct to me:

Here's C code for machine A to send a 32 bit integer as a sequence of four bytes in little endian order::
sendbyte(data32);  sendbyte(data32>>8);  sendbyte(data32>>16);  sendbyte(data32>>24);
And code for machine B to receive that 32 bit integer (assumes getbyte() returnes an unsigned 8 bit integer):
data32=getbyte();  data32|=getbyte()<<8;  data32|=getbyte()<<16; data32|=getbyte<<24;
This C code doesn't care if the machine it is on is big endian or little endian.

An as I understand it, Jack disagrees, here's his argument:

the byte order, otherwise why are you interested only in the high byte. Your code:
sendbyte((data32>>24)&0xff);
to send a byte works great if the data is big endian:
01010101 00000000 00000000 00000000.         // Yellow is the byte of interest
However, if you don't know the byte order and it is:
00000000 00000000 00000000 01010101
Your code would throw the relevant data on the floor. Your code is only safe if you know
the order. A union is a simple way to determine that order.

Jerry, KE7ER

On Thu, Mar 8, 2018 at 12:53 pm, Jack Purdum wrote:
We've wasted enough bandwidth on this. I think unions are a great way to learn how data are organized for a given compiler and are well-worth knowing about. Anyone who doesn't think so can easily ignore them.

Re: Pulling Arduino data apart

pat griffin

Guys, I for one have enjoyed reading this exchange.  Good stuff even though I had to brush away some cobwebs from the synapses.  Bits on the floor, assemblers, disassemblers. Those were the days.

Three years ago we bought IBM Power8 running Red Hat and, IBM being IBM, it is big endian unlike the rest of Red Hat world.  We had to scramble with a few pieces of code and I hadn't though those thoughts in years.

Thanks

Pat  AA4PG
http://www.cahabatechnology.com

From: BITX20@groups.io <BITX20@groups.io> on behalf of Jack Purdum via Groups.Io <jjpurdum@...>
Sent: Thursday, March 8, 2018 2:53:37 PM
To: BITX20@groups.io
Subject: Re: [BITX20] Pulling Arduino data apart

They are agnostic on the host machine. That's correct. I was talking about a binary transfer between machines where the two may have different sized integers or ordering or both. The example I showed was from a big endian to a little endian machine. When binary data comes into a program from some other source, the receiving machine doesn't necessarily know the order. So I could send a binary long from the arduino that looks like this:

01010101 00000000 00000000 00000000
but the host machine must figure out what those 4bytes mean. If it uses a little endian long, it would need to reverse the byte order for the long to be properly represented on the receiving end.

The code that Allard wrote or your Si5351 code don't need to worry about it because all of the code is processed by the same GCC compiler using the same code generator. However, send an Arduino long in binary format to a Desmet 8080 MSDOS compiler and I can guarantee you the data won't work.

We've wasted enough bandwidth on this. I think unions are a great way to learn how data are organized for a given compiler and are well-worth knowing about. Anyone who doesn't think so can easily ignore them.

Jack, W8TEE

From: Jerry Gaffke via Groups.Io <jgaffke@...>
To: BITX20@groups.io
Sent: Thursday, March 8, 2018 3:27 PM
Subject: Re: [BITX20] Pulling Arduino data apart

On Thu, Mar 8, 2018 at 12:13 pm, Jack Purdum wrote:
Absolutely agree, which was what I was saying from the very start. Allard's code can be endian agnostic because it runs in a single known environment. I haven't looked at his code for some time, but I don't know if there is anyplace in the code where he needs to break apart a basic data type.
If we are talking about the si5351bx routines I previously referenced that are in Allard's Bitx40 code,
they bust up some large integers and write them to specific bitfields of arbitrary size
in the i2c register set of the Si5351.  That's worse then just big/little endian, as those
fields are often not an even 8 bits.  I know, as I wrote the code.
https://groups.io/g/BITX20/message/28977

Your statements below regarding how bit shifts work on a 32 bit integer
look wrong to me.  Integer operations like that are endian agnostic,
they don't care how that 32 bit register might get stored in main memory.

My comment about putting bits on the floor meant that you had to know something about the byte order, otherwise why are you interested only in the high byte. Your code:

sendbyte((data32>>24)&0xff);

to send a byte works great if the data is big endian:

01010101 00000000 00000000 00000000.         // Yellow is the byte of interest

However, if you don't know the byte order and it is:

00000000 00000000 00000000 01010101

Your code would throw the relevant data on the floor. Your code is only safe if you know the order. A union is a simple way to determine that order.

Jack, W8TEE

Re: How to order a Raduino

Michael Hagen

I did it on an old Allard version.  Use the library that is available, and edit the prints to the LCDs.

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

Set up LCD and its I2C address.

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

My boards got a dedicated 4 Pin Molex for I2C at 5V.

Find the library and run some examples to get started.

73's Mike

On 3/8/2018 1:09 PM, Tim Gorman wrote:
```Mike,

Is there code out there for utilizing your RaduinoUMax with an I2C lcd?

I'm running a bunch of jumpers from the Raduino to the lcd and it's a
mess. Running four jumpers would be a lot cleaner installation.

tim ab0wr

On Thu, 8 Mar 2018 10:31:48 -0800
"Michael Hagen" <motdog@...> wrote:

```
```I have the "Better" Rauinos for BitX and uBit.

I have sold over 50 to folks on this list.

Shipping to foreign countries is usually \$15-20. I can give you a
shipping price from the US Post.

Take a look at attached documents.

73's Mike, WA6ISP

On 3/8/2018 9:40 AM, kir@... wrote:
```
```Hi guys,

As I have an old Bitx40 with analog VFO, I would order a Raduino.
How can I do that ? found no info.
I do not have the correct email.

Can you help ?
Tnx and 73's from Felix/ON4KIR

```

```

```

```--
Mike Hagen, WA6ISP
10917 Bryant Street
Yucaipa, Ca. 92399
(909) 918-0058
PayPal ID  "MotDog@..."
Mike@...```

Re: Wiring of the CW jack

Kelly Jack

See post 42526.

Re: Wiring of the CW jack

Tim Gorman

Found the answer in the archives.

Picture is wrong.

tim ab0wr

On Thu, 8 Mar 2018 15:13:16 -0600
"Tim Gorman" <tgorman2@...> wrote:

All,

I am finally getting to finally wiring up my ubitx (takes a while
getting everything done with about 15 min per day!).

In looking at the wiring instructions as compared to the pictures the
instructions say to wire the blue wire from the digital connector to
the tip lead of the jack. But in looking at the picture in the
instructions I swear the wiring is going to the ring tab.

Am I blind?

tim ab0wr