¿ªÔÆÌåÓý

CW Mistakes


 

Evan

TSW is an interesting place to go for ideas and for some interesting boards.
Their Teensy daughter card for the Arduino may be a solution for retrofitting
existing uBITX systems, but I need to look a bit closer to see if it solves the
problem regarding not enough digital ports and the related problem of CW
dits using an analog port.

One potential software method to solve the dit problem without new hardware
is to use existing digital ports for multiple purposes.? For instance, if we have
a data and clock port for I2C, these ports could possibly be redefined at
appropriate times as inputs for CW dit and dot keying and then redefined for
I2C when needed to talk to a peripheral.? There are other digital ports that
might be used in a similar manner.? I have not yet thought this through very
well, so that may change when I have a better idea what I'm doing.? 8-)

Going off in a different direction......
The use of analog voltages for CW inputs has curious voltage windows
(thresholds) for dit versus dah.? Maybe just modifying the voltage thresholds
for each window, or inserting a dead-zone between dit and dah windows,
could be arranged to minimize misinterpretation of CW inputs?? This
involves determining whether the voltage detection or timing for when the
voltages are being read is related to the actual problem.

Arv
_._


On Sun, May 16, 2021 at 8:33 AM Evan Hand <elhandjr@...> wrote:

Arv,
Here is a link to a company that produces the hardware and software to replace the v6 Raduino with one that is designed for the Teensy 4.1.?



They sold an adapter board for the pre v6 Raduino, however that has been discontinued. ??

The cost seems reasonable, considering it is not in high demand and the low volume of boards sold (assumed).? A good choice for someone who wants to experiment with things like DSP or other SW based additions to the uBITX.? The supplied code is open source and can be worked with the Arduino IDE.


73
Evan
AC9TU


 

On 2021-05-15 20:30, Jerry Gaffke via groups.io wrote:
Yes, using various voltage levels into an ADC was done
because of no remaining pins on the Nano.
No longer an issue for me, because I just got the TSW Teensy4.1
card working. It uses a separate dedicated 3-pin header for CW input.

- Jerry


 

Jack and Jerry

Please excuse my renaming Jack to John.? I cannot even blame the
spell checker for that error.? It was just my fat fingers that did it.?

Jack helped me with scaffolding which allowed my DEBUG
routines to become "if DEBUG" so that a compile could include
or not include the DEBUG parts.?
Thanks Jack.? That was a big help.

Like Jack said, when the hourglass of life is almost out of sand, things do
get interesting! ??

Arv
_._


On Sun, May 16, 2021 at 9:33 AM Arv Evans via <arvid.evans=[email protected]> wrote:
Jerry

I strongly agree with you.? Code organization and functions that contain blocking
code are important and a PITA.? At present I am working on code for some test equipment (Arduino based) which involves a main loop that has some serious timing
constraints.? Slow operation in my initial code was fixed when I converted blocking routines to non-blocking and then spaced the slower sections equally around the
loop, taking care to duplicate critical routines so that they appear multiple times in
a single pass around the loop.

When I added timing discovery points it revealed what was slowing things down
and indicated just where things needed to be moved, deleted, or changed.? In the
process of timing discovery I almost made a real-time version of my code, but
not quite.? John helped me with scaffolding which allowed my DEBUG routines
to become "if DEBUG" so that a compile could include or not include the DEBUG
parts.? Thanks John.? That was a big help.

Some of the C++ based library calls in the Arduino IDE appear to be poorly
constructed for my particular needs.? This caused me to rewrite a few of these
calls.? I think the lesson here is that the Arduino libraries in the IDE should not
be taken as the sacred last word in how to do things.? If you need a special
function call, do not be afraid to write it yourself.? These type things can then
be included in your code and do not need to be formalized and stored as
a library.

Arv
_._


On Sun, May 16, 2021 at 8:23 AM Jerry Gaffke via <jgaffke=[email protected]> wrote:
I had that wrong.??
PARIS is 50 "dot elements", the spaces between the dots count as separate dot elements.
So 20wpm is a rising or falling edge every 1/16.66 = 60 milliseconds, not 30.

With properly organized code, a Nano should have no trouble keeping up.
However, reliably catching that first dot when the processor might be busy doing other stuff
probably does require an interrupt driven digital pin for the key.

Jerry, KE7ER


On Sun, May 16, 2021 at 06:25 AM, Jerry Gaffke wrote:
So 20wpm is 20*50/60 = 16.66 dots/sec, a rising or falling edge every 1/(2*16.66) = 30 milliseconds.


 

Hi Evan,

I was sending at 18WPM.

- Jerry

On 2021-05-16 00:10, Evan Hand wrote:
On Sat, May 15, 2021 at 12:40 PM, jerry@... wrote:

It seems that - just occasionally - when you hit the "dit" paddle,
the thing will go
"dit dah", instead of just "dit".
Jerry KF6VB,
What is your WPM setting when doing the tests? Does the error rate
change with the WPM speed setting?
The reason I am asking is to see if it is related to the increased
load on the Nano to deal with the v6 display. I have not noticed the
problem on any of the pre v6 that I have. I will test my v6 to see if
it has the issue if I set it higher than 12 WPM (I do not know the
code well enough to copy or send at any rate higher than that).
73
Evan
AC9TU
Links:
------
[1] /g/BITX20/message/88381
[2] /mt/82850528/243852
[3] /g/BITX20/post
[4] /g/BITX20/editsub/243852
[5] /g/BITX20/leave/10189903/243852/952924773/xyzzy


 

Jack (I got the name right this time!)

Yes, I did not describe it very well.? Thanks for the clarification.?

Arv
_._


On Sun, May 16, 2021 at 9:46 AM Jack, W8TEE via <jjpurdum=[email protected]> wrote:
Arv:

An if (DEBUG statement block will not cause scaffolding code to be excluded from a compile. I think what you mean is something like:

#define DEBUG????????????????????????// Place near the start of the code...
// ...a bunch of program code...

#ifdef DEBUG
Serial.print("val = ");
Serial.println(val);
#endif
// ...more program code...

Now, when you comment out the #define preprocessor directive, that scaffolding code block no longer appears in the compiled code. Uncomment the directive and it returns back into the compiled code. This makes for a great way to "toggle" debugging code into and out of a program with a single edit line, saving a lot of retyping.

Jack, W8TEE

On Sunday, May 16, 2021, 11:33:09 AM EDT, Arv Evans <arvid.evans@...> wrote:


Jerry

I strongly agree with you.? Code organization and functions that contain blocking
code are important and a PITA.? At present I am working on code for some test equipment (Arduino based) which involves a main loop that has some serious timing
constraints.? Slow operation in my initial code was fixed when I converted blocking routines to non-blocking and then spaced the slower sections equally around the
loop, taking care to duplicate critical routines so that they appear multiple times in
a single pass around the loop.

When I added timing discovery points it revealed what was slowing things down
and indicated just where things needed to be moved, deleted, or changed.? In the
process of timing discovery I almost made a real-time version of my code, but
not quite.? John helped me with scaffolding which allowed my DEBUG routines
to become "if DEBUG" so that a compile could include or not include the DEBUG
parts.? Thanks John.? That was a big help.

Some of the C++ based library calls in the Arduino IDE appear to be poorly
constructed for my particular needs.? This caused me to rewrite a few of these
calls.? I think the lesson here is that the Arduino libraries in the IDE should not
be taken as the sacred last word in how to do things.? If you need a special
function call, do not be afraid to write it yourself.? These type things can then
be included in your code and do not need to be formalized and stored as
a library.

Arv
_._


On Sun, May 16, 2021 at 8:23 AM Jerry Gaffke via <jgaffke=[email protected]> wrote:
I had that wrong.??
PARIS is 50 "dot elements", the spaces between the dots count as separate dot elements.
So 20wpm is a rising or falling edge every 1/16.66 = 60 milliseconds, not 30.

With properly organized code, a Nano should have no trouble keeping up.
However, reliably catching that first dot when the processor might be busy doing other stuff
probably does require an interrupt driven digital pin for the key.

Jerry, KE7ER


On Sun, May 16, 2021 at 06:25 AM, Jerry Gaffke wrote:
So 20wpm is 20*50/60 = 16.66 dots/sec, a rising or falling edge every 1/(2*16.66) = 30 milliseconds.


--
Jack, W8TEE


Jack, W8TEE
 

No problem. I just didn't want readers to try and use a simple if block for the scaffolding.

As to the name, my Dad was named John and I was named Jack (not John). He was a tall man for the times (6'5") and his friends called him Jack. Things changed when I got old enough to use the phone. The names morphed to "Big Jack" and "Little Jack".

Jack, W8TEE

On Sunday, May 16, 2021, 12:09:06 PM EDT, Arv Evans <arvid.evans@...> wrote:


Jack (I got the name right this time!)

Yes, I did not describe it very well.? Thanks for the clarification.?

Arv
_._


On Sun, May 16, 2021 at 9:46 AM Jack, W8TEE via <jjpurdum=[email protected]> wrote:
Arv:

An if (DEBUG statement block will not cause scaffolding code to be excluded from a compile. I think what you mean is something like:

#define DEBUG????????????????????????// Place near the start of the code...
// ...a bunch of program code...

#ifdef DEBUG
Serial.print("val = ");
Serial.println(val);
#endif
// ...more program code...

Now, when you comment out the #define preprocessor directive, that scaffolding code block no longer appears in the compiled code. Uncomment the directive and it returns back into the compiled code. This makes for a great way to "toggle" debugging code into and out of a program with a single edit line, saving a lot of retyping.

Jack, W8TEE

On Sunday, May 16, 2021, 11:33:09 AM EDT, Arv Evans <arvid.evans@...> wrote:


Jerry

I strongly agree with you.? Code organization and functions that contain blocking
code are important and a PITA.? At present I am working on code for some test equipment (Arduino based) which involves a main loop that has some serious timing
constraints.? Slow operation in my initial code was fixed when I converted blocking routines to non-blocking and then spaced the slower sections equally around the
loop, taking care to duplicate critical routines so that they appear multiple times in
a single pass around the loop.

When I added timing discovery points it revealed what was slowing things down
and indicated just where things needed to be moved, deleted, or changed.? In the
process of timing discovery I almost made a real-time version of my code, but
not quite.? John helped me with scaffolding which allowed my DEBUG routines
to become "if DEBUG" so that a compile could include or not include the DEBUG
parts.? Thanks John.? That was a big help.

Some of the C++ based library calls in the Arduino IDE appear to be poorly
constructed for my particular needs.? This caused me to rewrite a few of these
calls.? I think the lesson here is that the Arduino libraries in the IDE should not
be taken as the sacred last word in how to do things.? If you need a special
function call, do not be afraid to write it yourself.? These type things can then
be included in your code and do not need to be formalized and stored as
a library.

Arv
_._


On Sun, May 16, 2021 at 8:23 AM Jerry Gaffke via <jgaffke=[email protected]> wrote:
I had that wrong.??
PARIS is 50 "dot elements", the spaces between the dots count as separate dot elements.
So 20wpm is a rising or falling edge every 1/16.66 = 60 milliseconds, not 30.

With properly organized code, a Nano should have no trouble keeping up.
However, reliably catching that first dot when the processor might be busy doing other stuff
probably does require an interrupt driven digital pin for the key.

Jerry, KE7ER


On Sun, May 16, 2021 at 06:25 AM, Jerry Gaffke wrote:
So 20wpm is 20*50/60 = 16.66 dots/sec, a rising or falling edge every 1/(2*16.66) = 30 milliseconds.


--
Jack, W8TEE


--
Jack, W8TEE


 

On 2021-05-16 07:33, Evan Hand wrote:
Arv,
Here is a link to a company that produces the hardware and software to
replace the v6 Raduino with one that is designed for the Teensy 4.1.
*** I have it! Running right now. The Teensy is orders of magnitude more powerful than the Nano: 600MHz clock, a floating point unit( could do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets & barrels of I/O, and built in Ethernet!

I did have to get a new display. With the original one, the clone Raduino made unacceptable tuning ticks. Replacement with a "Hiletgo" display from
Amazon cured that problem. So now I have a spare display... More about that later.

Only thing is... the Teensy is a $30 processor - as opposed to the nano which costs IIRC $3.

- Jerry KF6VB


 

Yes, indeed! When you undefine DEBUG, that code disappears, and no longer
takes up any space.

The technique is useful for other things too. When I was messing with the
tuning, I enclosed each of my changes in
#ifdef JERRY_TRYIT
#endif

That way I could search for my changes, & turn them on & off.

- jerry KF6VB


Jack, W8TEE
 

The Teensy is orders of magnitude more powerful than the Nano:

Absolutely correct! Al and I are using it for an SDT were working on and as you can see here:

Inline image

we're doing a lot of stuff, but only using 13.3% of the processor's power. Not shown is that we're only using 2% of its flash. It is a beast in sheep's clothing!

For those who might be interested, the Teensy LC sell for $12 and has 27 I/O pins, 62K of flash, 8K SRAM and is clock at 48mHz (3x the Nano). Still, for $20 you can buy the 4.0 which is several orders of magnitude better than the Nano or the LC. ().


Jack, W8TEE


On Sunday, May 16, 2021, 12:18:15 PM EDT, jerry@... <jerry@...> wrote:


On 2021-05-16 07:33, Evan Hand wrote:
> Arv,
> Here is a link to a company that produces the hardware and software to
> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>
>

*** I have it!? Running right now.? The Teensy is orders of magnitude
more powerful than the Nano:? 600MHz clock, a floating point unit( could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!

? I did have to get a new display.? With the original one, the clone
Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
display from
Amazon cured that problem.? So now I have a spare display... More about
that later.

? Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.

? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB






--
Jack, W8TEE


 

After reviewing the CW mode selection and looking at the circuitry,
it might be worthwhile for someone to replace the 10K and 4.7K
resistors with a 15K potentiometer so that the threshold voltage ratio?
between DIT and DAH could be adjusted.? This would be a very simple
way to determine if the voltage windows for DIT and DAH are related
to the occasional DIT coming out as DIT..DAH instead of just a DIT.

From the assembly manual:
The keyer line is an analog line with a 10K drop
resistor from 5 volts. Adding a 10K and a 4.7K resistor
in series with the left and right paddle will allow us to
sense dot and dash as different voltages on the analog
pins.

Arv
_._


On Sun, May 16, 2021 at 9:52 AM Arv Evans via <arvid.evans=[email protected]> wrote:
Evan

TSW is an interesting place to go for ideas and for some interesting boards.
Their Teensy daughter card for the Arduino may be a solution for retrofitting
existing uBITX systems, but I need to look a bit closer to see if it solves the
problem regarding not enough digital ports and the related problem of CW
dits using an analog port.

One potential software method to solve the dit problem without new hardware
is to use existing digital ports for multiple purposes.? For instance, if we have
a data and clock port for I2C, these ports could possibly be redefined at
appropriate times as inputs for CW dit and dot keying and then redefined for
I2C when needed to talk to a peripheral.? There are other digital ports that
might be used in a similar manner.? I have not yet thought this through very
well, so that may change when I have a better idea what I'm doing.? 8-)

Going off in a different direction......
The use of analog voltages for CW inputs has curious voltage windows
(thresholds) for dit versus dah.? Maybe just modifying the voltage thresholds
for each window, or inserting a dead-zone between dit and dah windows,
could be arranged to minimize misinterpretation of CW inputs?? This
involves determining whether the voltage detection or timing for when the
voltages are being read is related to the actual problem.

Arv
_._


On Sun, May 16, 2021 at 8:33 AM Evan Hand <elhandjr@...> wrote:

Arv,
Here is a link to a company that produces the hardware and software to replace the v6 Raduino with one that is designed for the Teensy 4.1.?



They sold an adapter board for the pre v6 Raduino, however that has been discontinued. ??

The cost seems reasonable, considering it is not in high demand and the low volume of boards sold (assumed).? A good choice for someone who wants to experiment with things like DSP or other SW based additions to the uBITX.? The supplied code is open source and can be worked with the Arduino IDE.


73
Evan
AC9TU


 

Each analog read takes 0.1 ms, and we have 60ms between transitions when
sending at 20wpm.? Arv's notion of eading that analog input till two readings agree
seems a reasonable software solution for existing rigs.

For new builds on a budget, I like the looks of the RPi-Pico.
Not as powerful as a Teensy, but I don't think I need a Teensy on my uBitx.

Using #ifdef's is a great way to create one body of code
that works on the various uBitx versions.
That's a good part of how something like the linux kernel runs efficiently
on such a huge variety of machines.

Jerry, KE7ER


On Sun, May 16, 2021 at 08:51 AM, Arv Evans wrote:
Going off in a different direction......
The use of analog voltages for CW inputs has curious voltage windows
(thresholds) for dit versus dah.? Maybe just modifying the voltage thresholds
for each window, or inserting a dead-zone between dit and dah windows,
could be arranged to minimize misinterpretation of CW inputs?? This
involves determining whether the voltage detection or timing for when the
voltages are being read is related to the actual problem.
?


 

Wow! Does this run in the uBITX? Are you using the floating point unit
for the DSP?

- Jerry KF6VB

On 2021-05-16 09:33, Jack, W8TEE via groups.io wrote:
_The Teensy is orders of magnitude more powerful than the Nano: _
Absolutely correct! Al and I are using it for an SDT were working on
and as you can see here:
we're doing a lot of stuff, but only using 13.3% of the processor's
power. Not shown is that we're only using 2% of its flash. It is a
beast in sheep's clothing!
For those who might be interested, the Teensy LC sell for $12 and has
27 I/O pins, 62K of flash, 8K SRAM and is clock at 48mHz (3x the
Nano). Still, for $20 you can buy the 4.0 which is several orders of
magnitude better than the Nano or the LC.
().
Jack, W8TEE
On Sunday, May 16, 2021, 12:18:15 PM EDT, jerry@...
<jerry@...> wrote:
On 2021-05-16 07:33, Evan Hand wrote:
Arv,
Here is a link to a company that produces the hardware and software
to
replace the v6 Raduino with one that is designed for the Teensy 4.1.
*** I have it! Running right now. The Teensy is orders of magnitude
more powerful than the Nano: 600MHz clock, a floating point unit(
could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!
I did have to get a new display. With the original one, the clone
Raduino made unacceptable tuning ticks. Replacement with a "Hiletgo"
display from
Amazon cured that problem. So now I have a spare display... More
about
that later.
Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.
- Jerry KF6VB
--
Jack, W8TEE
Links:
------
[1] /g/BITX20/message/88407
[2] /mt/82850528/243852
[3] /g/BITX20/post
[4] /g/BITX20/editsub/243852
[5] /g/BITX20/leave/10189903/243852/952924773/xyzzy


 

Jerry

Does the new Teensy daughter board for the Raduino still use
the resistive voltage divider to detect whether the CW paddle
closure is DIT or DAH?? If that is true, then it might seem that
the problem may be more related to timing than to voltage
thresholds.?

If that is true, then moving the routine that reads the ADC
might be something to look into.? Just repositioning the ADC
read call in original Arduino code might be all that is needed
for those who are stuck with version 3, 4, 5, or 6 Arduino and
the original Raduino.?

Since the original goal of BITX designs was to make a rig
that those with limited funds could use to get on the air, it
would be great if this DIT versus DIT..DAH problem could
be fixed with just a simple change in software.

Arv
_._




On Sun, May 16, 2021 at 10:20 AM jerry@... <jerry@...> wrote:
On 2021-05-16 07:33, Evan Hand wrote:
> Arv,
> Here is a link to a company that produces the hardware and software to
> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>
>

*** I have it!? Running right now.? The Teensy is orders of magnitude
more powerful than the Nano:? 600MHz clock, a floating point unit( could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!

? ?I did have to get a new display.? With the original one, the clone
Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
display from
Amazon cured that problem.? So now I have a spare display... More about
that later.

? ?Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.

? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB






 

¿ªÔÆÌåÓý

Arv,
I¡¯ll answer this. ?TSW has never used an analog voltage divider for our CW routines. ?The dot and dash paddle inputs are on two of the teensy¡¯s digital inputs. ?There is no timing problem with the keyer whatsoever and it performs nicely from a few WPM to well over 50 WPM. ?

Way back on the V3 uBITX we used the A6 and A7 NANO inputs for separate dot and dash connections, throwing out the voltage divider completely. ?We were chastised by many people early on because they claimed A7 was supposed to be a ¡°spare¡±. ?We ignored them and used A7 for the dash input anyway. ?Our keyer worked right from the beginning.

Jim, W0EB


On May 16, 2021, at 11:54 AM, Arv Evans <arvid.evans@...> wrote:

?
Jerry

Does the new Teensy daughter board for the Raduino still use
the resistive voltage divider to detect whether the CW paddle
closure is DIT or DAH?? If that is true, then it might seem that
the problem may be more related to timing than to voltage
thresholds.?

If that is true, then moving the routine that reads the ADC
might be something to look into.? Just repositioning the ADC
read call in original Arduino code might be all that is needed
for those who are stuck with version 3, 4, 5, or 6 Arduino and
the original Raduino.?

Since the original goal of BITX designs was to make a rig
that those with limited funds could use to get on the air, it
would be great if this DIT versus DIT..DAH problem could
be fixed with just a simple change in software.

Arv
_._




On Sun, May 16, 2021 at 10:20 AM jerry@... <jerry@...> wrote:
On 2021-05-16 07:33, Evan Hand wrote:
> Arv,
> Here is a link to a company that produces the hardware and software to
> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>
>

*** I have it!? Running right now.? The Teensy is orders of magnitude
more powerful than the Nano:? 600MHz clock, a floating point unit( could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!

? ?I did have to get a new display.? With the original one, the clone
Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
display from
Amazon cured that problem.? So now I have a spare display... More about
that later.

? ?Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.

? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB






 

¿ªÔÆÌåÓý

Arv, Jerry was complaining about the CW on the original factory Raduino, not TSW¡¯s Teensy 4.1 card which he now has running.

Jim


On May 16, 2021, at 11:54 AM, Arv Evans <arvid.evans@...> wrote:

?
Jerry

Does the new Teensy daughter board for the Raduino still use
the resistive voltage divider to detect whether the CW paddle
closure is DIT or DAH?? If that is true, then it might seem that
the problem may be more related to timing than to voltage
thresholds.?

If that is true, then moving the routine that reads the ADC
might be something to look into.? Just repositioning the ADC
read call in original Arduino code might be all that is needed
for those who are stuck with version 3, 4, 5, or 6 Arduino and
the original Raduino.?

Since the original goal of BITX designs was to make a rig
that those with limited funds could use to get on the air, it
would be great if this DIT versus DIT..DAH problem could
be fixed with just a simple change in software.

Arv
_._




On Sun, May 16, 2021 at 10:20 AM jerry@... <jerry@...> wrote:
On 2021-05-16 07:33, Evan Hand wrote:
> Arv,
> Here is a link to a company that produces the hardware and software to
> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>
>

*** I have it!? Running right now.? The Teensy is orders of magnitude
more powerful than the Nano:? 600MHz clock, a floating point unit( could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!

? ?I did have to get a new display.? With the original one, the clone
Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
display from
Amazon cured that problem.? So now I have a spare display... More about
that later.

? ?Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.

? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB






 

All,
So with the TSW card working on my uBITXv6, I now have a spare Raduino & display. And a new project to work on.

Got a little tiny 100W linear on Ebay, and also a switchable LPF card.
I'd like to build these into a cabinet the same size as the uBITX, so I'd
have a pair of twins.

I think I'll use the spare Raduino card to control the linear. Truly, it
doesn't need much "controlling", just a select for the bandpass filter, and TX/RX. But having two matching boxes, each with a display, will look really cool :).

I found out that if I plug the bare Raduino into usb, it runs! The display lights up, all the buttons appear. And I can modify that code with the Arduino IDE.

So I copied the code base to a new directory, and started going through it & changing stuff. To start with, I deleted everything related to "frequency", VFOs and the SI5351. Also deleted the CW keyer, but not the morse output routines. Maybe my linear will have a little speaker, and it will annunciate band changes with audible CW. I left the CAT stuff in for now, just deleted unused variables so it would compile.

Also, since this is my project now, I'm going through the code and reformatting to my own standards. Specifically, I deTest CamelCase! Also "K&R" style indenting. I grew up in the age of Pascal, and long ago settled on that style. My dislike for camel case is because it is not "audible" in my head. It's hard to remember whether it was tryUsbConnection() or tryUSBConnection(). And this remembering is important. When variable names are very regular, one can code away without constantly bopping back & forth to look at them. So for me - try_usb_connection().

So I got my stripped code to compile, and it's running on the Raduino sitting on my desk, just plugged into the USB. Will probably also delete
all the encoder stuff. My tiny linear doesn't need an encoder. So far, my Nano is using 55% of the program memory and 36% of the RAM.

- Jerry KF6VB


Jack, W8TEE
 

Yes, we do use floating point in some of the DSP routines. We also lowered the clock to 500mHz to see the impact on core temperature. It does make a difference on core temp, but the speed change is not even noticeable to performance. Whatever you're using now you'll likely throw rocks at it if you switch to a Teensy. Also, the libraries Paul has done for the Teensy family are virtually bulletproof.

Jack, W8TEE

On Sunday, May 16, 2021, 12:48:03 PM EDT, jerry@... <jerry@...> wrote:


Wow!? Does this run in the uBITX?? Are you using the floating point unit
for the DSP?

? ? ? ? ? ? ? ? - Jerry KF6VB


On 2021-05-16 09:33, Jack, W8TEE via groups.io wrote:
> _The Teensy is orders of magnitude more powerful than the Nano: _
>
> Absolutely correct! Al and I are using it for an SDT were working on
> and as you can see here:
>
> we're doing a lot of stuff, but only using 13.3% of the processor's
> power. Not shown is that we're only using 2% of its flash. It is a
> beast in sheep's clothing!
>
> For those who might be interested, the Teensy LC sell for $12 and has
> 27 I/O pins, 62K of flash, 8K SRAM and is clock at 48mHz (3x the
> Nano). Still, for $20 you can buy the 4.0 which is several orders of
> magnitude better than the Nano or the LC.
> ().
>
> Jack, W8TEE
>
>? On Sunday, May 16, 2021, 12:18:15 PM EDT, jerry@...
> <jerry@...> wrote:
>
> On 2021-05-16 07:33, Evan Hand wrote:
>> Arv,
>> Here is a link to a company that produces the hardware and software
> to
>> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>>
>>
>
> *** I have it!? Running right now.? The Teensy is orders of magnitude
> more powerful than the Nano:? 600MHz clock, a floating point unit(
> could
> do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
> barrels of I/O, and built in Ethernet!
>
>? I did have to get a new display.? With the original one, the clone
> Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
> display from
> Amazon cured that problem.? So now I have a spare display... More
> about
> that later.
>
>? Only thing is... the Teensy is a $30 processor - as opposed to the
> nano which costs IIRC $3.
>
>? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB
>
> --
> Jack, W8TEE
>
>
> Links:
> ------
> [1] /g/BITX20/message/88407
> [2] /mt/82850528/243852
> [3] /g/BITX20/post
> [4] /g/BITX20/editsub/243852
> [5] /g/BITX20/leave/10189903/243852/952924773/xyzzy






--
Jack, W8TEE


Jack, W8TEE
 

Aw, Jerry:

You're gonna hate my code! I do use camel notation and most of the K&R style conventions. Al (AC8GY) has convinced me on using underscores, but I only do this for symbolic constants because I cap them (e.g., DITPORT is now DIT_PORT). I find camel notation good for everything else.

Another convention I use (and wish everyone did) is to place a comment for all library #includes that use a non-standard library which contains the download URL:

#include <TFT_eSPI.h>??????????????? //

That would make life easier for a lot of us.

Another convention I find useful is to cap the first letter of any function I write and is part of the project's source code. Because almost all libraries use lowercase for the first letter of their class methods, I can tell from looking at the first letter if the function is something I wrote outside of a class.

We could go on for hours about style and which is better. The answer, however, is simple: The best style is what you use! End of story...

Jack, W8TEE

On Sunday, May 16, 2021, 1:28:29 PM EDT, jerry@... <jerry@...> wrote:


All,
? ? So with the TSW card working on my uBITXv6, I now have a spare
Raduino & display.? And a new project to work on.

? ? Got a little tiny 100W linear on Ebay, and also a switchable LPF
card.
I'd like to build these into a cabinet the same size as the uBITX, so
I'd
have a pair of twins.

? ? I think I'll use the spare Raduino card to control the linear.?
Truly, it
doesn't need much "controlling", just a select for the bandpass filter,
and TX/RX.? But having two matching boxes, each with a display, will
look really cool :).

? I found out that if I plug the bare Raduino into usb, it runs!? The
display lights up, all the buttons appear.? And I can modify that code
with the Arduino IDE.

? So I copied the code base to a new directory, and started going
through it & changing stuff.? To start with, I deleted everything
related to "frequency", VFOs and the SI5351.? Also deleted the CW keyer,
but not the morse output routines.? Maybe my linear will have a little
speaker, and it will annunciate band changes with audible CW.? I left
the CAT stuff in for now, just deleted unused variables so it would
compile.

? Also, since this is my project now, I'm going through the code and
reformatting to my own standards.? Specifically, I deTest CamelCase!?
Also "K&R" style indenting.? I grew up in the age of Pascal, and long
ago settled on that style.? My dislike for camel case is because it is
not "audible" in my head.? It's hard to remember whether it was
tryUsbConnection() or tryUSBConnection().? And this remembering is
important.? When variable names are very regular, one can code away
without constantly bopping back & forth to look at them.? So for me -
try_usb_connection().

? So I got my stripped code to compile, and it's running on the Raduino
sitting on my desk, just plugged into the USB.? Will probably also
delete
all the encoder stuff.? My tiny linear doesn't need an encoder.? So far,
my Nano is using 55% of the program memory and 36% of the RAM.

? ? ? ? ? ? ? - Jerry KF6VB















--
Jack, W8TEE


 

On 2021-05-16 10:47, Jack, W8TEE via groups.io wrote:
Aw, Jerry:
You're gonna hate my code!
Au Contraire, Jack. I *love* your code. You did all the hard work for me!
I don't even have to know how the display works :).

- Jerry KF6VB


 

Jim

Good.? That is why I asked the question.?

We are in a bit of a quandary here.? The uBITX is supposed to be minimal
enough to be an inexpensive entry to Ham Radio, yet at the same time it
is supposed to be fully operational for all the modes that it supports.? One
could claim that because it is entry level, it does not need to support fast
CW, but that sort of defeats its purpose.?

Jerry's use of a faster Teensy CPU seems to indicate that the CW stutter
problem may be fixable in several ways, including software, hardware, and
using a faster CPU.? I think we made some progress this morning.? Now to
do some testing and then decide which of the possibilities might be best,
least expensive, most reliable, and so on.

Eventually I would like to see a Teensy as the basis for a new Raduino.
With its speed, memory, and ports it should be possible for a Teensy based?
Raduino to do some very impressive things.? Fast software can replace a lot
of hardware.

Thanks for the information.

Arv
_._


On Sun, May 16, 2021 at 11:21 AM Jim Sheldon <w0eb@...> wrote:
Arv,
I¡¯ll answer this.? TSW has never used an analog voltage divider for our CW routines.? The dot and dash paddle inputs are on two of the teensy¡¯s digital inputs.? There is no timing problem with the keyer whatsoever and it performs nicely from a few WPM to well over 50 WPM. ?

Way back on the V3 uBITX we used the A6 and A7 NANO inputs for separate dot and dash connections, throwing out the voltage divider completely.? We were chastised by many people early on because they claimed A7 was supposed to be a ¡°spare¡±.? We ignored them and used A7 for the dash input anyway.? Our keyer worked right from the beginning.

Jim, W0EB


On May 16, 2021, at 11:54 AM, Arv Evans <arvid.evans@...> wrote:

?
Jerry

Does the new Teensy daughter board for the Raduino still use
the resistive voltage divider to detect whether the CW paddle
closure is DIT or DAH?? If that is true, then it might seem that
the problem may be more related to timing than to voltage
thresholds.?

If that is true, then moving the routine that reads the ADC
might be something to look into.? Just repositioning the ADC
read call in original Arduino code might be all that is needed
for those who are stuck with version 3, 4, 5, or 6 Arduino and
the original Raduino.?

Since the original goal of BITX designs was to make a rig
that those with limited funds could use to get on the air, it
would be great if this DIT versus DIT..DAH problem could
be fixed with just a simple change in software.

Arv
_._




On Sun, May 16, 2021 at 10:20 AM jerry@... <jerry@...> wrote:
On 2021-05-16 07:33, Evan Hand wrote:
> Arv,
> Here is a link to a company that produces the hardware and software to
> replace the v6 Raduino with one that is designed for the Teensy 4.1.
>
>

*** I have it!? Running right now.? The Teensy is orders of magnitude
more powerful than the Nano:? 600MHz clock, a floating point unit( could
do DSP stuff! ) , 8 megabytes of flash, 1 megabyte of RAM, buckets &
barrels of I/O, and built in Ethernet!

? ?I did have to get a new display.? With the original one, the clone
Raduino made unacceptable tuning ticks.? Replacement with a "Hiletgo"
display from
Amazon cured that problem.? So now I have a spare display... More about
that later.

? ?Only thing is... the Teensy is a $30 processor - as opposed to the
nano which costs IIRC $3.

? ? ? ? ? ? ? ? ? ? ? - Jerry KF6VB