Date   
Re: Compiler warnings

Steven Read
 

Nice explanation Jack! People who write standards need to realize there are are many programs they break with changes like this. Myself, I go "tweak" the source when I get something like this but I am a bit obsessive about getting a clean compile. Inflicting things like this on the average Joe is a lousy way to run a railroad!

On Thu, Jun 28, 2018 at 10:53 PM, Jack Purdum via Groups.Io <jjpurdum@...> wrote:
All:

Several people have asked about compiler warnings they are getting, like:

        warning: ISO C++ forbids converting a string constant to 'char*'

A variation on this are the "deprecated" warnings issued by the compiler. Even more confusing is the fact that the warnings they now see were not there before. Usually, this is because of a compiler update. As a general rule, compiler warnings do not prevent the compile from finishing or performing an upload. However, warnings mean something is bending the rules. For anyone who might be interested, this was my answer to one of those people.
 
--
Steven Read - ab9ol - Dublin, Indiana (em79jt)

Re: Nextion 3.2 Display

Jeff Kendrick
 

Allen,

Nice work, looks great. I'll continue to experiment and let you know if I find anything out of the ordinary.

Jeff KC5UFS

Re: RFI from uBitx TX after AGC and other mods installed

Don, ND6T
 

I spent most of the last two days experimenting. My oscillation when using that bypass capacitor was due to attaching the ground return from the pot to the audio input of the AGC board. With the bypass capacitor in place (10 nF on my test, 470 pF on Kees' board) the resistance of that return wire afforded enough of a voltage drop to create a feedback path.
If I were to encounter RFI or audio feedback I would heartily recommend a 10 nF capacitor across the audio input of the AGC. If you encounter a squeal, then open the ground return from the volume control pot right near the board and do all that is possible to make a low resistance ground for the 5 volt power return (as well as the RF).
My sincere thanks for all of the work that you folks invested and please accept my apologies for failing to anticipate the problem. 73, Don

Re: Nextion 3.2 Display

Allen Merrell
 

thanks Jeff, appreciate  it.
Kn4ud  
--
Allen  Merrell

Re: Microscope - - new thread

 

Terry, i will try to boot up to Mint and try it, I'll  let you know.

Joel
N6ALT

Re: RFI from uBitx TX after AGC and other mods installed

John KC9OJV
 

Don,
Aside from this small RFI blip I think it's safe to say we're all so pleased with the performance of your AGC design that it was even more compelling to squash this small bug. A big THANK YOU for a wonderful contribution to our hobby!

John
KC9OJV

Re: RFI from uBitx TX after AGC and other mods installed

Mark M
 

What he said...

And to Kees too, for kitting it up & making it available to everybody.

73... Mark AA7TA

On 7/2/18 5:24 PM, John KC9OJV wrote:
Don,
Aside from this small RFI blip I think it's safe to say we're all so pleased with the performance of your AGC design that it was even more compelling to squash this small bug. A big THANK YOU for a wonderful contribution to our hobby!
John
KC9OJV

Re: Nextion 3.2 Display

Lowell Haney NE4EB
 

I've been looking for this to show up. I'll pull the files tomorrow and have a look.

Thank you for this Allen!

Re: Nextion 3.2 Display

John
 

I agree... looks good and it works.  I will also continue to test.  Thanks a lot for this, it will be used for my club demo of the uBITX on sunday.

73s W5JXN

Re: Homebrew from scratch #ubitx

AC9NM - Jerry Ponko
 

Peter,

Have you tried the example programs that come with the Arduino IDE Etherkit Si5351 library to see what happens to the clock 2 output when they are set to a frequency above 14MHz?

BTW, is that half of a matched pair of 45MHz monolithic crystal filters I see on the board?

Regards,

Jerry, AC9NM

Re: Compiler warnings

ajparent1/KB1GMX <kb1gmx@...>
 

I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison

Re: Compiler warnings

Howard Fidel
 

Allison:
PDP11, wow that goes back quite a while. We used one in the first commercial product I was involved in designing from the ground up, way back in 1975.

Howard

On 7/2/2018 10:46 PM, ajparent1/KB1GMX wrote:
I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison


Re: Compiler warnings

Jack, W8TEE
 

Yep, I think we think alike on this. I think Ron Cain was the inventor of Small C and I remember using that on my 8080/CP/M machine. Then I found Zeor Zollman's BDS C and I tried to get him to add floating point and structs to it...even met with him in Boston while he was at MIT...but couldn't convince him to do it. My company ended up writing our own C compiler, Eco C-88: the first with a complete IDE...even before Turbo C. (We needed the floating point because we developed and sold an advanced statistics package.)

You're right, there's a lot of what I call RDC (Really Dumb Code), and not all of it's by beginning programmers. I was hired as a consultant by a company that wrote banking software. One piece of commercial code had a 31 level if-else block, where one routine ran each day and all the others were ignored. Some banks using the code had over two million customers. Given that, on average there would be 15 failed comparisons for millions customers each day, we figured some banks were throwing away over 30 minutes of CPU time each day versus using a switch statement. I pointed this out in a code walk through stating it was a really stupid piece of code. I was fired that afternoon. Turns out, the person who hired me wrote the code and everyone in the room knew it!

As far as the Arduino environment, I do like it and think it's a great way to a lot of people to experience what programming's all about, yet have some fun at the same time. I do wish, however, that people who write libraries for the IDE would stay on top of their libraries and fix the warnings that keep popping up as the compiler checks get tighter.

It seems like most knowledgeable EE types, like yourself, are also accomplished programmers. Alas, I'm living proof that it doesn't go the other way. I enjoy reading your comments and I know all of us have benefited from them.

Jack, W8TEE

On Monday, July 2, 2018, 10:46:16 PM EDT, ajparent1/KB1GMX <kb1gmx@...> wrote:


I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison

Re: Compiler warnings

w7hd.rh <w7hd.rh@...>
 

How this brings back memories.  I learned C on a Unix V7 machine (PDP-11/45) using the original Bell Labs code.  I was working for Pacific Northwest Bell at the time and wrote most of the automated data-gathering code in C for remote sites all over Oregon, Washington and Idaho.  Since the code ran in the wee hours of the morning, it had to be fast to gather and compile all the data for all those sites, so brevity was key there.
Then I went on to learn Pascal at Oregon Heath & Sciences center.  When I finally got my own personal computer in 1977, I used Whitesmiths C compiler on a Z80 based MP/M system.  Wrote a satellite-tracking program for our ham club and had great fun re-learning Solid Geometry.

Ron W7HD


On 07/02/2018 07:46 PM, ajparent1/KB1GMX wrote:
I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison


-- 
Ron W7HD - NAQCC#7587 OMISS#9898 KX3#6966 LinuxUser#415320
Editor OVARC newsletter

Re: Compiler warnings

Jack, W8TEE
 

Ron:

We tried the Whitesmith's C compiler, and tested its floating point with:

   for (int i = 0; i < 10000; i++) {
      printf("%f", (double) i);
   }

it literally took about a second to print out each number! It was a port from a PDP-11 and it was a dog.

Jack, W8TEE

On Monday, July 2, 2018, 11:27:06 PM EDT, w7hd.rh <w7hd.rh@...> wrote:


How this brings back memories.  I learned C on a Unix V7 machine (PDP-11/45) using the original Bell Labs code.  I was working for Pacific Northwest Bell at the time and wrote most of the automated data-gathering code in C for remote sites all over Oregon, Washington and Idaho.  Since the code ran in the wee hours of the morning, it had to be fast to gather and compile all the data for all those sites, so brevity was key there.
Then I went on to learn Pascal at Oregon Heath & Sciences center.  When I finally got my own personal computer in 1977, I used Whitesmiths C compiler on a Z80 based MP/M system.  Wrote a satellite-tracking program for our ham club and had great fun re-learning Solid Geometry.

Ron W7HD


On 07/02/2018 07:46 PM, ajparent1/KB1GMX wrote:
I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison


-- 
Ron W7HD - NAQCC#7587 OMISS#9898 KX3#6966 LinuxUser#415320
Editor OVARC newsletter

Re: Nextion 3.2 Display

Allen Merrell
 

All of the programming for the screen was taken from Dr. Ian Lee's 2.4 display. I did the Graphics to fit the 3.2 display. I am currently working on a version for the 3.5 display. Joe B has a very nice 7 inch version that I am sure he will post soon.His also is based on Ian's 2.4 program.
For those using the enhanced version their will be a clock very soon added to the display . I am testing it now .
kn4ud
--
Allen  Merrell

Re: Compiler warnings

Brian Bowling
 

Turns out, the person who hired me wrote the code and everyone in the room knew it!

Well, almost everyone anyway. :)

On Mon, Jul 2, 2018 at 11:14 PM, Jack Purdum via Groups.Io <jjpurdum@...> wrote:
Yep, I think we think alike on this. I think Ron Cain was the inventor of Small C and I remember using that on my 8080/CP/M machine. Then I found Zeor Zollman's BDS C and I tried to get him to add floating point and structs to it...even met with him in Boston while he was at MIT...but couldn't convince him to do it. My company ended up writing our own C compiler, Eco C-88: the first with a complete IDE...even before Turbo C. (We needed the floating point because we developed and sold an advanced statistics package.)

You're right, there's a lot of what I call RDC (Really Dumb Code), and not all of it's by beginning programmers. I was hired as a consultant by a company that wrote banking software. One piece of commercial code had a 31 level if-else block, where one routine ran each day and all the others were ignored. Some banks using the code had over two million customers. Given that, on average there would be 15 failed comparisons for millions customers each day, we figured some banks were throwing away over 30 minutes of CPU time each day versus using a switch statement. I pointed this out in a code walk through stating it was a really stupid piece of code. I was fired that afternoon. Turns out, the person who hired me wrote the code and everyone in the room knew it!

As far as the Arduino environment, I do like it and think it's a great way to a lot of people to experience what programming's all about, yet have some fun at the same time. I do wish, however, that people who write libraries for the IDE would stay on top of their libraries and fix the warnings that keep popping up as the compiler checks get tighter.

It seems like most knowledgeable EE types, like yourself, are also accomplished programmers. Alas, I'm living proof that it doesn't go the other way. I enjoy reading your comments and I know all of us have benefited from them.

Jack, W8TEE

On Monday, July 2, 2018, 10:46:16 PM EDT, ajparent1/KB1GMX <kb1gmx@...> wrote:


I like your rules Jack.

My standard for a function or any subroutine is simple do one thing.
I guess that matches your no swiss knives.  I call them overloaded functions.

I think the best example of that is the SD library as it drags in FAT.  Its huge 
and if all you want to do is read or write blocks FAT is not needed or even
a file system.  Or you can just do tag and bag directory and teach the PC 
to use a simpler system to talk to a block device.  That is only one example.
Took me a while to tear the whole thing down to block_Write(blockNum, Buffer)
and block_read(blockNum, Buffer)  Where buffer is a 512 byte area, and
blockNum is a 32bit int.  The difference is more than 10K of code!

Global variables are ok if used for that only.  Not be cause the tuning math
needed a variable to store and intermediate result.

The offense i've seen is long ints when the counter never exceeds maybe 10
and floats when the value is going to be an integer.   Its remarkable that
people forget the iron they are programing is basically a 8 bit byte machine.

C and for that fact C++ is a small language, the libraries are where people
get their shorts eaten.  You don't need a full string library for a little 8bitter.

C seems to be there when others have come and gone.  Just about all the
others are easy (Ruby, Python, Java) if you know C.

A a long time PDP11 user (I have Unix V2.11 and Ultrix V6(BSD flavor).
ITs funny to thing the 11 is a near native C machine (very CISIC) and
the origin point for C and typically 128K bytes was a big machine. 
It teaches one brevity, modularity, and with care clarity.  

I still use Small-c on many micros because it is C (more K&R than ansi but hey
it was the 70s and ANSI was over a decade later) and small.    I like it because
it allows me to get as close to the irn as I care to and yet hide the iron when I
need to. 

Allison




--
“si vis pacem, para bellum”

Re: TX frequency? of uBitx at CWL and CWU mode #ubitxcw

Andy V. Borisenko
 

I also do not have a difference. I did all the changes in uBitx manager. 
+600Hz CWU, -600Hz CWL from the desired frequency.
v 1.08

Re: RFI from uBitx TX after AGC and other mods installed

Kees T
 

Thanks guys, Don and I appreciate it. 

Glad to see so much "building enthusiasm". As of today we're up to 676 AGC kits and/or Click kits ordered and shipped.

73 Kees K5BCQ

----------------------------------------------------------------------------------------------------------
New Topic.............
I'm just about ready to make a pass on an OLED display, Nano microcontroller, and 2x AD8307s mWattmeter/SWR device.  So far, it's all mounted on a 50mm x 50mm board
(2x2 or qty 4 on a 100mm panel) including the Stockton bridge, BNC/SMA connectors, Nano, and header attached OLED. Still looking for firmware to run.
 
 

Re: TX frequency? of uBitx at CWL and CWU mode #ubitxcw

Ian Lee
 

Glenn

The latest version is not supported, but can be downloaded from the link below.

It is also briefly described below.

After this Version 1.1, I will post a description of the uBITX Manager program.

Ian KD8CEC

2018-07-02 11:48 GMT+09:00 Glenn Anderson <ve3jau@...>:

Sorry if I'm missing something but is there a "user manual" for the Memory Manager? I've never used it before...

Thanks

On Sun, Jul 1, 2018 at 9:04 PM, Ian Lee <kd8cec@...> wrote:
Michael

I agree with you opinion, yes There is not enough explanation for them :)
I liked it the first time I implemented this feature. 
So I adopted it as a basic specification. That is, if no setting is made, 'TX' frequency is displayed unconditionally.
However, it is inconvenient for users who are familiar with the existing method.
So I decided to let the user choose by uBITX Manager.

Ian KD8CEC

2018-07-02 9:41 GMT+09:00 Michael Babineau <mbabineau.ve3wmb@...>:
Ian :

Thanks for the reply. I noticed that option in the uBITX Manager but I couldn't find any documentation on what I meant.
Now I know, so I will give it a try.  I am not sure that this will "fix" the issue in switching back and forth between CWU and CWL,
but I will recheck after I try with this option enabled. 

What I have observed is  that the RX Frequency stays the same when you switch from CWU to CWL, but the TX frequency is changed, which should not
be the case.

Thanks for the clarification.

Cheers

Michael VE3WMB 



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




--
73 de Glenn VE3JAU
Thunder Bay, Ontario



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