Custom Range

Month

Year

Month

Year

The first release will not have the CAT, but we'd guess it will take someone about an afternoon to move the existing CATs code over. There is plenty of free memory and pins to do it. We're just making sure all of the other features work first. Trust me, we want to release it as badly as you do, but we had a noise issue and it took us a while to figure it out. It will be worth the wait.

Hi Jack,Patiently waiting for the JACKAL board to be released, have the space, display, teensy, and audio board, but just wondering if you have included CAT in your new software. Seems I've gotten hooked a bit on FT8 and the use of CAT for switching between bands and initiating transmit at the proper time. I did not see it or missed it in the list of features you released. MSG#53233 JackAL V01 Features.doc

The String class for an Arduino environment is a crutch and there's no reason to use it. It also can lead to memory fragmentation. The sprintf() function is extremely powerful, but usually is an H-bomb to kill an ant. Rarely is there an Arduino program that uses more than a very small portion of its power. My experience is that using the standard str*() and mem*() functions instead will typically save 1.5K of memory.

Virtually everything done with the Arduino is C++. Every installable Arduino library is built as a C++ class.

Many of the C++ standard libraries are not included or have been replaced by trimmed down versions. There is no official STL implementation for the Arduino. So, Arduino users are using C++ without issue.

Interestingly the String object library increases the size of a program very little. Pull in the standard C stdio library so one can use sprintf and the compiled code instantly bloats by several K bytes.

Compared to the 8748 processors I used to use in the type of application the Nano is now used in, it is like having a super computer. I did everything in assembly code back then, because even with processors that could be programmed in C, the overhead of C was just too much.

I can vouch for the size increase with C++. When I was teaching
C and just getting my feet wet with C++, we did a direct
comparison. The results showed a 1.5K executable for C and 80K
for C++ with the exact same code, simply renaming it .C++ instead
of .C. It is due to the libraries being pulled in. Speed is a
different issue since it is highly dependent on coding style.

Ron W7HD

On 07/03/2018 01:15 PM, Jack Purdum via
Groups.Io wrote:

Hi Jerry:

I've seen statements like this:

It's always been straight C (K&R or
ANSII) if I want to code for speed or size

many times before, but I've never seen any a
priori proof of this or articles that discuss it. It
seems that it would make sense to be so, but I don't know
if that's pushed into the generated code or if it's an
increased load on the parser given the semantics of C++
versus C. Some even say that, because C++ uses templates
in the libraries, the code generator can perform more
optimizations on the code because it "knows" what you are
doing (What
are the fundamental differences between C and C++?).

What
are the fundamental
differences between C and C++?

Many
tend to write "C/C++", as if
they were the same thing.
Although they share many
similarities, they are clea...

I don't have an answer, but I do try to follow the
goals of C++ where it makes sense, especially
encapsulation. If anyone has a definitive answer, I'd
really like to know about it.

>> "their" is possessional, "there" is
positional, required in this context.

My gripes are mostly about a good technical
discussions diverging into multiple threads.
If you do start a new thread on an old subject then
post links to both showing where the other thread can
be found.

Those posting without any history for context
generally get ignored.
If it's not worth your while to spend 5 seconds
including context,
it's certainly not worth it for thousands of forum
readers to go find it.

If anybody want's to pick apart my use of USAish or my
C indentation style (or lack thereof), have at it.
I'm quite capable of skipping over those posts too.

And while I'm at it, I've never seen any reason to get
comfortable with C++.
It's always been straight C (K&R or ANSII) if I
want to code for speed or size,
and for the last couple decades I've been resorting to
Python for easy coding.
This violates my primary beef above, I do try not to
be overly pendantic.

Jerry, KE7ER

On Tue, Jul 3, 2018 at 09:49 am, Allen Merrell wrote:

On Tue, Jul 3, 2018 at 08:46 am, Dexter N
Muir wrote:

Sorry to be a pedant, but that's me
Allen: "their" is possessional, "there" is
positional, required in this context.
73
Dex, ZL2DEX

Sorry Dexter, I'm not an english major but I fail to
see the their and there you are pointing out.

I see them in Harbor Freight and Home Depot stores. I think they might be 5 or 6 bucks at H .D. Once you get them set they are great. The one in the other picture post can be found on ebay and are smaller than HF strippers but actually work better with a metal bottom lip to grip the insulation. Those a about 2 bucks too. Alright back quiet again.

Seems like you should have left the 2.2 K resistor. Here is the
analysis:
10 watts into 50 ohms requires 22.3 Vrms. You have to diode drops
in series, so we could say that you have roughly 20V rms across
the resistor. 20/2.2K is 9 ma, which is a nice diode current. The
actual current will be less, we need to calculate the droop on the
capacitor for the 1/2 cycle that current is not flowing, which is
small for this load and capacitance, dV=.009 275 x 10**-9/.01 x
10**-6 = .25 Vm which we can ignore. Most LEDs can go up to 15 ma
at least, so depending on your LED, you may want a smaller
resistor.

I ran across this
when looking for an transmit indicator for my Small Wonder Lab
PSK31. The original resistor was 2.2K but our radios put out more
than double so I changed the resistor to 5.6K. Maybe someone
with more electronic knowledge than me has better suggestions.
It lights up bright and solid for CW and you an watch your
modulation on SSB. I can really see the difference when I switch
in my SSM2167 module.
--
Lee - N9LO "I Void Warranties"

About 16 years ago I worked on security systems and one of the things we did was replace the standard screen in windows with screen that has a wire spaced a few inches apart to set off the alarm if the screen is cut. I bought a Craftsman 73574 wire stripper that went down to 32 gage for those jobs. I don't know if Sears still has them but you might find them on ebay, etc.

I ordered a case as well which took quite a while to arrive. It's definitely longer than a couple of weeks. It is good quality though. I'm not sure if he is having problems filling orders, with suppliers or what. As I said though, good quality.

My young son got an Elenco FM radio kit for Christmas. We built it together and now he is hooked. He is studying for his technician license.He has a birthday coming up so a few weeks back, I ordered a uBitX and one of Sunil Lakhani's cases.The uBitX came in about a week. Despite my credit card being charged immediately, I never received any acknowledgment of the case order. I have tried to contact Sunil through several different channels but have gotten no response. There were 12 of the cases in stock at the time of the order. I am wondering if I should dispute the credit card charge or keep waiting. What has been the experience of people in this group who have ordered cases from Sunil? Has he come through? What was time from order to delivery (in the US)? Did you have trouble with communication about your order?

The Arduino design recommendations are to hide as much of the nitty gritty details from the users as possible. They even recommend not exposing the user to the horror of "char *" and use "char whatever[]" instead.

I use the string class when it makes it easier for a user to understand what is going on or simply makes my programming effort go faster. The Arduino is not like a Unix machine at a company. it is usually running the same small set of tasks over and over again, so many of the memory allocations that would lead to memory fragmentation will settle out as the routines will find a home for their memory allotments in the memory blocks they the previously abandoned. So if the percentage of holes stabilize and is not a fantastically large percentage it seems a fair tradeoff.

If I was short on memory and had to shoehorn yet another feature into the fixed resources of one processor, I'd regret using the String class. And I'd probably move to the chip manufacture's leaner tool chain. But, in a $3.50 Nano with only half the resources being used, the convenience of the String class is worth it. String provides a nice encapsulation of the things people do with strings. So, depending on the situation I'll use convenience classes at one moment and do direct point manipulation in another.

I use a small set of dykes (diagonal cutting pliers). An old
pair, new ones are too sharp. Once you get a feel for it, you can
pinch the insulation without cutting into the copper, and then
just pull the insulation off.

Dull/used cutters will break the insulation enough to cause it to
separate when you pull it off without damaging the wire.

Turbo C and Turbo C++ at first, then gcc and g++ later. Without
a lot of compiler switches added in.
It certainly turned me off C++ coding. I still program in C and
shell scripts whenever possible.
I've written a LOT of programs over the last 30 years and can
crank out a working C program in a few hours.

I can vouch for the size increase with C++.
When I was teaching C and just getting my feet wet
with C++, we did a direct comparison. The results
showed a 1.5K executable for C and 80K for C++ with
the exact same code, simply renaming it .C++ instead
of .C. It is due to the libraries being pulled in.
Speed is a different issue since it is highly
dependent on coding style.

Ron W7HD

On
07/03/2018 01:15 PM, Jack Purdum via Groups.Io
wrote:

Hi Jerry:

I've seen statements like this:

It's always been straight C
(K&R or ANSII) if I want to code for
speed or size

many times before, but I've never
seen any a priori proof of this or
articles that discuss it. It seems that it
would make sense to be so, but I don't know
if that's pushed into the generated code or
if it's an increased load on the parser
given the semantics of C++ versus C. Some
even say that, because C++ uses templates in
the libraries, the code generator can
perform more optimizations on the code
because it "knows" what you are doing (What are the
fundamental differences between C and C++?).

What are the
fundamental
differences
between C and
C++?

Many
tend to write
"C/C++", as if
they were the
same thing.
Although they
share many
similarities,
they are clea...

I don't have an answer, but I do try to
follow the goals of C++ where it makes
sense, especially encapsulation. If anyone
has a definitive answer, I'd really like to
know about it.

>> "their" is possessional,
"there" is positional, required in this
context.

My gripes are mostly about a good
technical discussions diverging into
multiple threads.
If you do start a new thread on an old
subject then post links to both showing
where the other thread can be found.

Those posting without any history for
context generally get ignored.
If it's not worth your while to spend 5
seconds including context,
it's certainly not worth it
for thousands of forum readers to go
find it.

If anybody want's to pick apart my use
of USAish or my C indentation style (or
lack thereof), have at it.
I'm quite capable of skipping over those
posts too.

And while I'm at it, I've never seen any
reason to get comfortable with C++.
It's always been straight C (K&R or
ANSII) if I want to code for speed or
size,
and for the last couple decades I've
been resorting to Python for easy
coding.
This violates my primary beef above, I
do try not to be overly pendantic.

Jerry, KE7ER

On Tue, Jul 3, 2018 at 09:49 am, Allen
Merrell wrote:

On Tue, Jul 3, 2018 at 08:46
am, Dexter N Muir wrote:

Sorry to be a pedant, but
that's me Allen: "their" is
possessional, "there" is positional,
required in this context.
73
Dex, ZL2DEX

Sorry Dexter, I'm not an english major
but I fail to see the their and there
you are pointing out.

Who is making these "Arduino design recommendations"? I don't see why a "user" would ever need to know if I was using char * versus char x[]. The difference is syntactic sugar. As to fragmentation, if the programmer knows this is going to happen and is willing to run that risk, that says something. Memory fragmentation never "settles out" and I doubt that you should rely on "if the percentage of holes stabilize". Simply knowing that it does, in fact, create holes is good enough reason not to use the String class.

To say that makes your programming effort go faster seems a bit odd to me, as the time savings between:

I, too, would regret using the String class...always, if for no other reason than fragmentation. The fact that you're willing to fritter away unused memory resources simply because they exist seems like burning all the firewood around your Alaskan cabin in the middle of summer...not a good reason to be wasteful. It also teaches bad/lazy programming habits.

The Arduino design recommendations are to hide as much of the nitty gritty details from the users as possible. They even recommend not exposing the user to the horror of "char *" and use "char whatever[]" instead.

I use the string class when it makes it easier for a user to understand what is going on or simply makes my programming effort go faster. The Arduino is not like a Unix machine at a company. it is usually running the same small set of tasks over and over again, so many of the memory allocations that would lead to memory fragmentation will settle out as the routines will find a home for their memory allotments in the memory blocks they the previously abandoned. So if the percentage of holes stabilize and is not a fantastically large percentage it seems a fair tradeoff.

If I was short on memory and had to shoehorn yet another feature into the fixed resources of one processor, I'd regret using the String class. And I'd probably move to the chip manufacture's leaner tool chain. But, in a $3.50 Nano with only half the resources being used, the convenience of the String class is worth it. String provides a nice encapsulation of the things people do with strings. So, depending on the situation I'll use convenience classes at one moment and do direct point manipulation in another.

I'd recommend placing it before the transmit LPF, not at the antenna port.The diodes will create a bit of harmonic content that the LPF's can remove for us.

I think you could remove the lower 1n4148 and get the same performance.Then it's just a diode detector, like found in some AM radios.The LED should start turning on (in a dark room) at 3.0+0.6 = 3.6v peak.That's 3.6*0.707 * 3.6*0.707 / 50ohms = 3.6*3.6/100 = 130mW

I don't think the lower left 1n4148 adds anything except perhaps clipping the low going tip of the RF more or less the same as the high going tips get clipped by the other diode.This might reduce some of the harmonic content, but the LPF would do a much better job.

If the 5.6k series resistor also had a 0.01uF cap in series with it, then you should get double the DC voltage to the LED making this usable with lower power rigs. The LED would start turning on at around 3+0.6+0.6 = 4.2 volts pk-pk, or 2.1v peak, or 2.1*2.1/100=44mW.A low going RF tip will cause the lower-left 1n4148 to conduct, charging up thatnew series cap. So the voltage into the second 1n4148 will be an AC waveformthat rides up on top of ground instead of being centered on ground.

Jerry

That lower left 1n4148 doesn't really do anything except maybe clipthe low going peaks in a manner almost symmetrical with the high going peaks that get clipped by the other 1n4148.

I ran across this when looking for an transmit indicator for my Small Wonder Lab PSK31. The original resistor was 2.2K but our radios put out more than double so I changed the resistor to 5.6K. Maybe someone with more electronic knowledge than me has better suggestions. It lights up bright and solid for CW and you an watch your modulation on SSB. I can really see the difference when I switch in my SSM2167 module.

Wow, I would never expect a 50:1 difference. True, C++ does drag in more overhead, but it shouldn't be that much. The gcc compiler is behind the Arduino IDE. Try using it to write a C versus C++ program and see if that difference holds. Some compilers bring in the entire I/O library if you use printf(). That shouldn't happen in the Arduino world. Take the code you used to come to those conclusions, but do it with the Arduino IDE. I'd love to hear the results. I'd be happy to run the test if you care to send the source code.

Turbo C and Turbo C++ at first, then gcc and g++ later. Without
a lot of compiler switches added in.
It certainly turned me off C++ coding. I still program in C and
shell scripts whenever possible.
I've written a LOT of programs over the last 30 years and can
crank out a working C program in a few hours.

I can vouch for the size increase with C++.
When I was teaching C and just getting my feet wet
with C++, we did a direct comparison. The results
showed a 1.5K executable for C and 80K for C++ with
the exact same code, simply renaming it .C++ instead
of .C. It is due to the libraries being pulled in.
Speed is a different issue since it is highly
dependent on coding style.

Ron W7HD

On
07/03/2018 01:15 PM, Jack Purdum via Groups.Io
wrote:

Hi Jerry:

I've seen statements like this:

It's always been straight C
(K&R or ANSII) if I want to code for
speed or size

many times before, but I've never
seen any a priori proof of this or
articles that discuss it. It seems that it
would make sense to be so, but I don't know
if that's pushed into the generated code or
if it's an increased load on the parser
given the semantics of C++ versus C. Some
even say that, because C++ uses templates in
the libraries, the code generator can
perform more optimizations on the code
because it "knows" what you are doing (What are the
fundamental differences between C and C++?).

What are the
fundamental
differences
between C and
C++?

Many
tend to write
"C/C++", as if
they were the
same thing.
Although they
share many
similarities,
they are clea...

I don't have an answer, but I do try to
follow the goals of C++ where it makes
sense, especially encapsulation. If anyone
has a definitive answer, I'd really like to
know about it.

>> "their" is possessional,
"there" is positional, required in this
context.

My gripes are mostly about a good
technical discussions diverging into
multiple threads.
If you do start a new thread on an old
subject then post links to both showing
where the other thread can be found.

Those posting without any history for
context generally get ignored.
If it's not worth your while to spend 5
seconds including context,
it's certainly not worth it
for thousands of forum readers to go
find it.

If anybody want's to pick apart my use
of USAish or my C indentation style (or
lack thereof), have at it.
I'm quite capable of skipping over those
posts too.

And while I'm at it, I've never seen any
reason to get comfortable with C++.
It's always been straight C (K&R or
ANSII) if I want to code for speed or
size,
and for the last couple decades I've
been resorting to Python for easy
coding.
This violates my primary beef above, I
do try not to be overly pendantic.

Jerry, KE7ER

On Tue, Jul 3, 2018 at 09:49 am, Allen
Merrell wrote:

On Tue, Jul 3, 2018 at 08:46
am, Dexter N Muir wrote:

Sorry to be a pedant, but
that's me Allen: "their" is
possessional, "there" is positional,
required in this context.
73
Dex, ZL2DEX

Sorry Dexter, I'm not an english major
but I fail to see the their and there
you are pointing out.

Simple as it is, could be I don't fully understand the circuit.But I don't think you get a voltage doubler unless you add the extra cap in series with the 5.6k resistoras suggested in the last paragraph of my previous post (ignore the garbage after my signature).

In my calculations, I'm assuming an LED forward voltage of 3.0 volts.That's typical of the very bright white light LED's, 2 volts is more typical of a little red LED.But the extra volt is probably needed to see anything at all anyway, given the 5.6k resistorand that diode conduction occurs only on RF tips. Even in a very dark room.But should be reasonably bright with 5 or 10 watts.

Probably a wiring issue on the mic jack. You may need to examine inf your moc uses tip and sleeve or ring and sleeve for the electret. If you made your own with supplied condenser element,you need to check your wiring. Make sure you used the correct pin for ground.

I like the one I received from Sunil. Just like the uBITX, it allows one to use the parts that came with it, or buy other parts. Mod it the way you want. I was pleased that I got the parts to get up and running, now I can customize it to suit me, and I have started. I have knobs from a Heathkit, I've moved the board since I want to use a Nextion display, and I have plans to use the supplied parts as I wish, to create a connector for using the Signalink. Or I may wire up the EasyRig and put an onboard usb hub.

Now I'm at work, I'll definitely try in the evening.p.s. I measured the value of the DDS frequency and changed it in a file ubtx_si5351.ino v1.08. I found a way to do it without using devices.now with the calibration I have no problems!

Verify Delete

Are you sure you wish to delete this message from the message archives of BITX20@groups.io? This cannot be undone.

Verify Repost

Are you sure you wish to repost this message?

Report Message

Reason

Report to Moderators
I think this message isn't appropriate for our Group. The Group moderators are responsible for maintaining their community and can address these issues.
Report to Groups.io Support
I think this violates the Terms of Service. This includes: harm to minors, violence or threats, harassment or privacy invasion, impersonation or misrepresentation, fraud or phishing.