Date   

Re: #V6 code ref #v6

Reed N
 

Andy,

Can you tell us what specific binaries you are interested in comparing the source from?

Also let me know if you need any more information about reading commit history than my earlier post in this thread included.


Reed


Re: #V6 code ref #v6

Reed N
 

This is somewhat tangental, but tools like Ghidra do a pretty decent job at generating C from binaries, especially if the debugging symbols are left in. That said, learning decompiling techniques and tools is much harder than just reading the original open source code that's available in this case.


Reed


Re: #V6 code ref #v6

Jim Sheldon
 

Actually, there is no way I know of to backtrack a hex file and get the source file from it.  All the comments and other useful information is NOT in the hex file which is pure machine code.  I know of no available software that could even come close to creating proper "C" or "C++" source code from a hex file.  There may be such a program but there is no way it could give you all the useful info that is contained in the programmers comments in the original source file.  The other Jim is absolutely right.  The source code for everything that's been done for the uBITX, BITX20, BITX40 and others is "open source" and freely available somewhere anyway.

Jim Sheldon, W0EB



------ Original Message ------
From: "Jim" <n0oct@...>
Sent: 2/5/2020 1:11:20 PM
Subject: Re: [BITX20] #V6 code ref

On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well and bring it into the Arduino IDE via a download so that one can create a full exported .ino and hex file sets as backup or to be able to read code processes to understand how the improvements work to solve problems?
I'm not sure I understand -- why not just download the latest factory firmware (6.3.1 as of today) -- or whomever's firmware -- and compile it in the Arduino IDE?  It seems to me you're adding an extra step of getting a hex file, converting it to an .ino file, then compiling.


Re: #V6 code ref #v6

Arv Evans
 

AndyH

De-compilers are available but frowned upon, because they can be used to
convert proprietary code back to source files that can be modified.  This could
make the original code author responsible for code modifications that he/she
did not write. 

De-compilers usually convert raw processor code to machine language images.
These files do not contain any of the original writer comments of any other hints
as to what the code is actually doing.  Machine-language coders may understand
what it is saying, but for the rest of us it is almost impossible to follow or
understand. 

Arv
_._


Re: #V6 code ref #v6

Arv Evans
 

Andy_501

First part of the learning process might be to install the Arduino IDE on your own PC.
There are additional references and instructions located at:
The IDE has built-in examples for writing C-language code and references  are located at:
This is pretty basic (no pun intended) and will get you started at writing, compiling, debugging,
and installing your own code on an Arduino.  If your Arduino is one that has a built-in USB
connector you do not need anything else to install your own programs.  If you do not have an
LCD attached to your Arduino board you can just use the IDE's built-in dumb-terminal for
visible output.  The IDE has everything you need to get started.

If your Arduino does not have a built-in USB port and a boot-loader installed, you will need
one of the USB-to-TTL adapters to install a .hex file to your AVR/Arduino micro-processor. 
There are many free programs available that can be used to install a .hex file into your
Arduino flash memory. 

When working with a .ino file from github or from someone else you can compile it using
the Arduino IDE.  The output from a successfull compile will be a .hex file.  You can use this
and the installer that is built into the IDE to copy that .hex file into your Arduino. 

When compiling a .ino file you may see error messages at the bottom if the compile notes.
They are usually in red text.  The first error message is where you start debugging your
code.  Later error messages may be a compounded result of the first error.  Ignore them until
you get the first error fixed. 

Include files are helper code that has been designed by others.  Some functions may not
be available unless you include these #include <filename> directives in your own code. 
The include files contain functions that are hidden, but sometimes needed for certain
function-calls. 

If writing code for some other board that is similar to an Arduino you can still use the Arduino
IDE, as long as you add support for that micro-processor and its PCB layout. 

It is possible to use other IDE's or even just a text editor to write code for Arduino and for
Arduino look-alike boards.  Geany, Ecipse, and many other IDE systems can be used for
this purpose.  For beginners it is probably best to start with one of the simpler IDE systems.

If using something other than the Arduino IDE to write Arduino code, you may need to do
#include <arduino.h> to get the Arduino-specific function calls. 
If using functions that require additional include files you may also have to locate, download
and install them.  #include files have a standard location where the compiler can find them.
This is indicated by the "<" and ">" bounding the file name.  If you put them some place else
all is not lost.  Just include the full path to those files in the #include "path_name" to give the
compiler a way to find that file, or files. 

During a code compile there are several interim files that are generated and retained in
specific places.  These include the pre-processed code, linked code, and loader code.
Looking at those files are usually not necessary unless you really want to delve into how
the compiler works from initial C-language to final .h code.    They can provide some hints
toward problems in cases where the compiler is throwing an error that is not correct or
not pointing to the real problem. 

If you are using something other than the Arduino IDE you may need to use a .hex loader
to install your .hex files into an Arduino (or STM or etc.) micro-processor flash memory. 
There are many of these code installers available on-line.  Some are good, and some are
not so good. 
Writing your own C-code for the Arduino is not difficult, but is not simple either if you do not
already write C-code programs.  For the Arduino the amount of C-language (and C++ language)
you need is minimal and pedestrian.  Most function calls are easily understood and easy to
integrate into your code.  The Arduino Reference pages show you all you will probably need to
write and compile your own software.

This has been a rather long email, but maybe it will help someone who is under the impression
that this is difficult stuff.  It is no more difficult than other protocol systems that we use every day.
Work on it a little bit at a time and soon you too will be an "expert". 

Arv  K7HKL
_._


On Wed, Feb 5, 2020 at 11:26 AM Andy_501 <andrew.webb.501.ve4per@...> wrote:
Is there a way to take an uploaded new modified hex file that works well
and bring it into the Arduino IDE via a download so that one can create
a full exported .ino and hex file sets as backup or to be able to read
code processes to understand how the improvements work to solve problems?

There so many problems solved by others more experienced in coding but
the myriad of changes are not really included in Ashhar's releases on
GitHub as kind of a reliable current ref point to work from.

This is starting to be irritating enough that I am close to putting both
my V6 and antuino on the local flea market sale table for half off.
HFsignals has been cooperative in ensuring hardware is serviceable but
if I am living in a rural area here with minimal internet services not
have ref's that are up to date is a big pain to me.






Re: #V6 code ref #v6

Andy_501 <andrew.webb.501.ve4per@...>
 

The only files I have received as att answers with fixes/solutions have been hex files. I downloaded the latest main file from Ashhar's github site but he is so busy many of the improvements or enhancements coded in by others are not embedded in his files as updates. So the only ino file one gets is the original one which is a good start but if I get three or four diffent hex versions from others I can't compare source code changes on my own since I only have hex files.

On 2020-02-05 1:11 p.m., Jim wrote:
On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well and bring it into the Arduino IDE via a download so that one can create a full exported .ino and hex file sets as backup or to be able to read code processes to understand how the improvements work to solve problems?
I'm not sure I understand -- why not just download the latest factory firmware (6.3.1 as of today) -- or whomever's firmware -- and compile it in the Arduino IDE?  It seems to me you're adding an extra step of getting a hex file, converting it to an .ino file, then compiling.


Re: #V6 code ref #v6

Andy_501 <andrew.webb.501.ve4per@...>
 

Yes I agree with all you say Andy but my focus in the short term is to find something that will kind of work almost out of the box as a kit so that maybe 10 or 15 students in an advanced course can have it included as part of their advanced license course lessons (as practical hands on project) that can be used also to teach the individual circuit section lessons covered in the theory material.

When students have to lay out $50-$125 for course fees and manuals; then $5 for exam fee and maybe $100 in gasoline/day for course lectures for 5 -8 Saturdays in a row and pay $200 or more for the kit it is a bit much to add in all the frustrations of learning coding for internet of things development as well as all the facts they need to find out by trial error and  extra time wading through GB's of archived groups.io posts to get the kit initially working in the first place.

The initial idea was to come up with a $100 multi mode, multi band HF QRP transceiver kit to be included as part of course materials so it should be expected to be easily working almost right out of the box as it were so they can get right into discussing theory using it as a practical demo as it were.

I have been working kind of piecemeal here to get a half baked lesson plan built and the amount of time I have had to spend online just to get to the point of deciding whether the uBITx kit is a good option has been very high and that is even getting some really great help and assistance in the forum here. In order for this V6 kit to fit the bill a whole extra day of lecture time would likely be needed to explain all the extra hidden and buried info on the unit before everyone could even begin using it.

I get your point it's the way the system works here and it is the prime interest of the participants in the forum to carry on this way and appreciate the help I have received up to now.

On 2020-02-05 1:15 p.m., AndyH wrote:
First dibs if the price is right.

This forum/group IS the body of knowledge and support forum.  For the mods and software aspect, this is an arm of HF Sigs for all practical purposes. The nature of open source projects is that if one wants to modify something it's up to them to learn.  I get that the initial learning curve can be steep - I started with a BITX and am still learning from my V3 µBITX and Sweeperino.  And yes - I had frustrating days where I came to this group for help and got it in spades. Folks here will meet you and help as long as you do your part.

73, Andy, KG5RKP

On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well
and bring it into the Arduino IDE via a download so that one can create
a full exported .ino and hex file sets as backup or to be able to read
code processes to understand how the improvements work to solve problems?

There so many problems solved by others more experienced in coding but
the myriad of changes are not really included in Ashhar's releases on
GitHub as kind of a reliable current ref point to work from.

This is starting to be irritating enough that I am close to putting both
my V6 and antuino on the local flea market sale table for half off.
HFsignals has been cooperative in ensuring hardware is serviceable but
if I am living in a rural area here with minimal internet services not
have ref's that are up to date is a big pain to me.


Re: #V6 code ref #v6

Reed N
 

Andy,

What hex files do you want the source code for? All of Ashhar's, KD8CEC's, and my code are available on our respective GitHub accounts. TSW's teensy source is on W0EB.com. All of these software versions are based on Ashhar's code, so if you look far enough back in the git history (where available), you'll find that the code eventually becomes identical.

If you're looking for answers to how specific issues are solved, for all of the git repositories, there are "commits" that have the incremental changes from one version of the code to the next, and you can also choose to view differences across multiple versions or commits. It won't necessarily tell you exactly what the changes do, but the commit messages hopefully can provide some insight.

For instance, if you look at my pull request merges here: https://github.com/reedbn/ubitxv6/commit/87cf184fe6c5cadb0366f35678c2d60a7622edeb you'll see that the commit message says "Fixed width freqs and replace MNU with gear symbol", which gives context for what the changes are supposed to achieve, and then there's a bunch of green additions to the code, and red removals to show exactly how the code was changed to accomplish this.

For even more detail, you can look at individual commits from this merge, like https://github.com/reedbn/ubitxv6/commit/1115441a57c94b803a5b8f957ccc3a3e88044bd9 where there is just one small change, and a comment of "Use gear icon for menu button" explaining the intended consequence of the change.

If you are still unsure how a change was made, ask whoever it was who made the change you're trying to understand. It's quite likely they'd be happy to explain it.


Reed


Re: #V6 code ref #v6

AndyH
 

On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well
and bring it into the Arduino IDE via a download so that one can create
a full exported .ino and hex file sets as backup or to be able to read
code processes to understand how the improvements work to solve problems?
That process isn't possible with any compiled language that I'm aware of.  If you want to explore code to see how folks solved problems, you have to get copies of their files.


Re: #V6 code ref #v6

AndyH
 

First dibs if the price is right.

This forum/group IS the body of knowledge and support forum.  For the mods and software aspect, this is an arm of HF Sigs for all practical purposes. The nature of open source projects is that if one wants to modify something it's up to them to learn.  I get that the initial learning curve can be steep - I started with a BITX and am still learning from my V3 µBITX and Sweeperino.  And yes - I had frustrating days where I came to this group for help and got it in spades. Folks here will meet you and help as long as you do your part.

73, Andy, KG5RKP


On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well
and bring it into the Arduino IDE via a download so that one can create
a full exported .ino and hex file sets as backup or to be able to read
code processes to understand how the improvements work to solve problems?

There so many problems solved by others more experienced in coding but
the myriad of changes are not really included in Ashhar's releases on
GitHub as kind of a reliable current ref point to work from.

This is starting to be irritating enough that I am close to putting both
my V6 and antuino on the local flea market sale table for half off.
HFsignals has been cooperative in ensuring hardware is serviceable but
if I am living in a rural area here with minimal internet services not
have ref's that are up to date is a big pain to me.


Re: #V6 code ref #v6

Jim
 

On Wed, Feb 5, 2020 at 12:26 PM, Andy_501 wrote:
Is there a way to take an uploaded new modified hex file that works well and bring it into the Arduino IDE via a download so that one can create a full exported .ino and hex file sets as backup or to be able to read code processes to understand how the improvements work to solve problems?
I'm not sure I understand -- why not just download the latest factory firmware (6.3.1 as of today) -- or whomever's firmware -- and compile it in the Arduino IDE?  It seems to me you're adding an extra step of getting a hex file, converting it to an .ino file, then compiling.


Re: HF Signals BFO Tuning Page #calibration #bfo #bitx20

Neil Goldstein
 

Working fine here on Windows 10 with latest version of Chrome, and MacOS Mojave with latest Chrome.

--Neil, W2NDG  


#V6 code ref #v6

Andy_501 <andrew.webb.501.ve4per@...>
 

Is there a way to take an uploaded new modified hex file that works well and bring it into the Arduino IDE via a download so that one can create a full exported .ino and hex file sets as backup or to be able to read code processes to understand how the improvements work to solve problems?

There so many problems solved by others more experienced in coding but the myriad of changes are not really included in Ashhar's releases on GitHub as kind of a reliable current ref point to work from.

This is starting to be irritating enough that I am close to putting both my V6 and antuino on the local flea market sale table for half off. HFsignals has been cooperative in ensuring hardware is serviceable but if I am living in a rural area here with minimal internet services not have ref's that are up to date is a big pain to me.


Re: New V5 build results and calibration issues. #ubitx-help #nextion #ubitx #calibration

Evan Hand
 

Short answer is yes, I update as soon as the new updates are ready.  Loner answer is I cannot find a setting that should disable the mic/app to run.

If anyone comes up with a solution, or can verify that they have it working on an Apple device, please share how that was done.

73
Evan
AC9TU


HF Signals BFO Tuning Page #calibration #bfo #bitx20

Evan Hand
 

In following multiple requests for instructions on how to tune the BFO properly, I have noted that the best way (in my opinion) is to use an audio spectrum analyzer and tune to static on the uBitx receiver.  The combination gives a measured response to the BFO tuning that should be able to give the best results.

There are a number of free PC based software, however there is also a web page hosted by HFSignals with the analyzer and "goal posts" already to access.  This would be GREAT if the page would work with a smart device like an iPhone or iPad.  To date only chrome on a Chromebook, Silk on a FIre tablet and Chrome on an Android phone have been verified to work.
https://www.hfsignals.com/index.php/bfo-tuning-aid/

This poses two questions:
1 - Are there any other devices that support the web page tuning method
2 - What is the reason for the Apple device issues.

I do have a couple of Linux based devices that I will try.  The issue with them will be the audio/mic input.  I have a USB mic that I will try and report back.

Any input would be appreciated, looking to lean more about the issue.
73
Evan
AC9TU


Re: New V5 build results and calibration issues. #ubitx-help #nextion #ubitx #calibration

Evan Hand
 

Noted that the original thread is from last July (2019).  Will open another topic to look for answers on the HF Signals BFO tuning page.

73
Evan
AC9TU


Re: low output only on 40m

Curt
 

Fortunately its only a small fraction of the v4 population that have this issue.  I carefully counted turns in the LPF - no issue there.  Also I bypassed the LPF with a wire - still stay issue that 40m power output is a bit low.  I remember my ubitx may have been 4-5 watts on 40m as delivered.  Any attempts to insert added 40m filtering into the 45 MHz transmit path further reduces power.  When 40m CW is used the transmit path seems to experience whatever is attached in the (unused) 45 MHz transmit signal path - I verified this with too much experimenting!  Could it be a faulty core material in those mixer transformers, I don't know I can't think of why it may vary otherwise between rigs. 

Since then I have decided on an added xtal filter of this configuration - retaining the 47 ohm resistor onto the mixer side, then a 0.1 uF blocking cap, a binocular transformer that feeds one side of the xtal filter.  the other side is going straight to the transistor emitter, which should be adequate given its higher impedance there.  Now my 40m CW signal is 'only' dipping to about 3 watts.  I don't possess a spectrum analyzer, but I may get to evaluate later this month.  In summary I am using Gordon's relay board for addressing harmonics (it is fully compliant now here) along with this added filtering - which I hope will improve my 17-10m band mixer spurious (I tried the v5 style LC filter it did not help much).  I do have shielded SMT inductors installed at L5 and L7 - they weren't enough by themselves to remedy this 40m challenge. 

In other news - I have the NESCAF variable bandwidth audio filter integrated inside now - wow nice to have a bandwidth control - it works nicely tuning in signals from the massive CW pileups - as well as providing appropriate selectivity for SSB. I just need to disassemble  front panel and provide the hole for the bandwidth pot. 

73 Curt


Re: New V5 build results and calibration issues. #ubitx-help #nextion #ubitx #calibration

Skip Davis
 

Evan did you recently update your IOS? I found that after the latest update some settings were changed. I just spent two days trying to get CarPlay to work and found that the balance control was all the way to right output channel on the phone. 

Skip Davis, NC9O

On Feb 5, 2020, at 11:59, Evan Hand <elhandjr@...> wrote:

I am still trying to find out why the Apple devices no longer work with the HF Signals BFO tuning page.  To date I have verified that it works with a Chromebook and a Fire Tablet.  Both required giving access to the mic, then worked as expected.

Anyone any ideas on difference with the Apple environment?  iPhone and iPad are the only devices that I have.

73
Evan
AC9TU


Re: New V5 build results and calibration issues. #ubitx-help #nextion #ubitx #calibration

Reed N
 

Oh, that was Firefox. Still works in Chrome on android.


Reed


Re: New V5 build results and calibration issues. #ubitx-help #nextion #ubitx #calibration

Reed N
 

Just tried it on my android phone and no luck. I did update chrome not too long ago, so it could be a change in how the browser works. I haven't investigated beyond the analyzer not loading.


Reed