¿ªÔÆÌåÓý

ubitx code version 4.3 for review, testing


 

peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f


 

Ashhar Farhan
First of all, congratulations on recent things.
You did a hard job in a busy schedule.
I have confirmed that you have maintained the existing code and have at least a few modifications.
It will satisfy users who want to keep existing code. (usage 57%)
I accept whatever you decide.? and I will test your new firmware.

Ian KD8CEC



2018-05-22 17:24 GMT+09:00 Ashhar Farhan <farhanbox@...>:

peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f



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


 

I've been running it for a while today.? I had to turn off the cwKeyer code as the nano
developed a bad A6 port/pin. I have a few on the way.? Cat will not be tested as I'm not using it.

The code works better, havent hit any bugs and the tuning and menu system behaves better.?

I'll speak up if it shows any bugs.? Right now it makes doing the power amp chain easier.


Allison



 

Farhan

I just now downloaded the zip file and will try compiling and testing late this evening or tomorrow morning.?

Noted your comment about keeping usage of English words to a minimum.....?? Does this mean that I
have to learn to code in Pastun or one of India's 22 official languages???? ?

I like the idea of leaving out much of the add-ons that have been suggested and implemented by others.?
Minimal functionality will suffice to get the rig up and running, and it then becomes an invitation for
builders to learn C-language, the Arduino IDE, and about the Si5351a.? This should keep old geezers
like me busy for weeks, if not months.??? ?

Looking forward to playing with new code.?

Thanks,

Arv? K7HKL
_._




On Tue, May 22, 2018 at 2:24 AM, Ashhar Farhan <farhanbox@...> wrote:
peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f



 

Arv,
The idea is to keep it usable for people who don't understand English very well. For instance instead of 'Change VFO from A to B?' The string just suggests "VFO A > B?" :-D

- f

On Tue, May 22, 2018 at 11:35 PM, Arv Evans <arvid.evans@...> wrote:
Farhan

I just now downloaded the zip file and will try compiling and testing late this evening or tomorrow morning.?

Noted your comment about keeping usage of English words to a minimum.....?? Does this mean that I
have to learn to code in Pastun or one of India's 22 official languages???? ?

I like the idea of leaving out much of the add-ons that have been suggested and implemented by others.?
Minimal functionality will suffice to get the rig up and running, and it then becomes an invitation for
builders to learn C-language, the Arduino IDE, and about the Si5351a.? This should keep old geezers
like me busy for weeks, if not months.??? ?

Looking forward to playing with new code.?

Thanks,

Arv? K7HKL
_._




On Tue, May 22, 2018 at 2:24 AM, Ashhar Farhan <farhanbox@...> wrote:
peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f




 

Farhan

I knew what you meant.? Just had to add a bit of humor or confusion for those
who may not understand.?? ?

Arv
_._


On Tue, May 22, 2018 at 12:08 PM, Ashhar Farhan <farhanbox@...> wrote:
Arv,
The idea is to keep it usable for people who don't understand English very well. For instance instead of 'Change VFO from A to B?' The string just suggests "VFO A > B?" :-D

- f

On Tue, May 22, 2018 at 11:35 PM, Arv Evans <arvid.evans@...> wrote:
Farhan

I just now downloaded the zip file and will try compiling and testing late this evening or tomorrow morning.?

Noted your comment about keeping usage of English words to a minimum.....?? Does this mean that I
have to learn to code in Pastun or one of India's 22 official languages???? ?

I like the idea of leaving out much of the add-ons that have been suggested and implemented by others.?
Minimal functionality will suffice to get the rig up and running, and it then becomes an invitation for
builders to learn C-language, the Arduino IDE, and about the Si5351a.? This should keep old geezers
like me busy for weeks, if not months.??? ?

Looking forward to playing with new code.?

Thanks,

Arv? K7HKL
_._




On Tue, May 22, 2018 at 2:24 AM, Ashhar Farhan <farhanbox@...> wrote:
peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f





 

hehe,?

btw, Ian has been busy. We patched some UI stuff as well as sorted out a very tricky buffer overflow in the lcd routines. Those testing should download the latest from again. this one is far more stable.

- f

On Tue, May 22, 2018 at 11:42 PM, Arv Evans <arvid.evans@...> wrote:
Farhan

I knew what you meant.? Just had to add a bit of humor or confusion for those
who may not understand.?? ?

Arv
_._


On Tue, May 22, 2018 at 12:08 PM, Ashhar Farhan <farhanbox@...> wrote:
Arv,
The idea is to keep it usable for people who don't understand English very well. For instance instead of 'Change VFO from A to B?' The string just suggests "VFO A > B?" :-D

- f

On Tue, May 22, 2018 at 11:35 PM, Arv Evans <arvid.evans@...> wrote:
Farhan

I just now downloaded the zip file and will try compiling and testing late this evening or tomorrow morning.?

Noted your comment about keeping usage of English words to a minimum.....?? Does this mean that I
have to learn to code in Pastun or one of India's 22 official languages???? ?

I like the idea of leaving out much of the add-ons that have been suggested and implemented by others.?
Minimal functionality will suffice to get the rig up and running, and it then becomes an invitation for
builders to learn C-language, the Arduino IDE, and about the Si5351a.? This should keep old geezers
like me busy for weeks, if not months.??? ?

Looking forward to playing with new code.?

Thanks,

Arv? K7HKL
_._




On Tue, May 22, 2018 at 2:24 AM, Ashhar Farhan <farhanbox@...> wrote:
peeps, jack, ian, allard, arv

i have created a next version of the base software after thinking hard about it. you can download it from?. I invite you all to test it. if you are not familiar with C code or Arduino programming, I suggest you wait for a few days until we get all the bugs sorted out. This is only for the Arduino regulars.

Sending bugs:
Send me the bug reports directly to my email farhanbox@.... In the subject line use the word "#ubitx40". I will try to answer all emails but I can't promise responses to all.?

Before you start reviewing the code, let me give you a heads up of what to expect. Going by the general mood, I have taken the call to substantially borrow from Ian, KD8CEC's code and back port it to the original ubitx code. I guess that the new code has about 10% more lines but it is substantially more robust and useful.? The main features that I cherry picked from Ian's code are:

1. Keyer. You have to choose which keyer to use, but the keying is much better and robust now. This code is a total copy/paste of Ian's keyer. The auto-keyer (that sends out preset phrases in cw) is left out. The Iamabic A, Iambic B and the handkey sending works very well.
2. CAT control. Given the popularity of FT8, I rewrote the cat by following Ian's code but rewrote it to follow the ubitx coding conventions. It is a miminal set.
3. Split operations: My own interest of working with satellites have prompted me to add split operation.?
4. Rationalized menus: The menu system is now more consistent.
5. Tuning mechanism. The accelerated tuning works, though it doesn't jump randomly like before nor does it work at that speed. For very long band changes, it is recommended to do that through the menu option to change the band.

Among the things left out was support for different other types of displays, wspr beacon and many other goodies. The eeprom memory map is kept consistent with the KD8CEC's plan. You can switch between both the codes easily.

I have kept usage of english words at a minimum.??

- f






 

I did an initial quick test of CAT with WSJT-X.? Changed frequency fine, but TUNE was not working correctly.? The first TUNE try would key the relay and produce output power, but subsequent tries were non-responsive.? ?Change frequency and repeat test with behavior.? Reload Ian's firmware and all is well.? ?I'll try to do more testing when I can break free (I just got home from work and literally had 10 minutes to test).? I may be missing something basic in my setup and testing.
Tom
AB7WT


 

Ooops!? I totally overlooked the previous:

Sending bugs:
Send me the bug reports directly to my email?farhanbox@.... In the subject line use the word "#ubitx40".

Sorry for the spam....
Tom
AB7WT


 

Tom,
The cat protocol was unstable until Ian fixed an overflow problem. Try with the latest sources on the .?
- f

On Wed, 23 May 2018, 07:10 Tom Christian, <tmchristian@...> wrote:
Ooops!? I totally overlooked the previous:

Sending bugs:
Send me the bug reports directly to my email?farhanbox@.... In the subject line use the word "#ubitx40".

Sorry for the spam....
Tom
AB7WT


 

Tom and others,
I discovered another subtle bug in the catReadEEprom function that was causing latch up in the second transmit sequence of wsjtx. I have fixed it. I had a full QSO just now on the FT8. You can try with the latest files from the repository.? I have used the 1.9.0 release candidate rc 4. This was fixed with support for ubitx, though it doesn't list it in the drop-down menu, you still have to choose FT-817 as the rig.
-f?

On Wed, May 23, 2018 at 7:51 AM, Ashhar Farhan <farhanbox@...> wrote:
Tom,
The cat protocol was unstable until Ian fixed an overflow problem. Try with the latest sources on the .?
- f

On Wed, 23 May 2018, 07:10 Tom Christian, <tmchristian@...> wrote:
Ooops!? I totally overlooked the previous:

Sending bugs:
Send me the bug reports directly to my email?farhanbox@.... In the subject line use the word "#ubitx40".

Sorry for the spam....
Tom
AB7WT



 

Works great now, Ashhar!?
I had 2 FT8 QSos and tested CAT on multiple bands.?
I'll do more testing over the next few days but looks good so far.?
Much thanks!
Tom
AB7WT


 

Hi Farhan,

?

I did some testing with the latest software from ?(today's version of the master branch) and made a few observations :

?

  • WSJTX/FT8 rc4 works well, as long as I put the uBITX in Split Off. I configure WSJTX as "Fake it".
  • When I put WSJTX rc4 in Split mode, as well as the uBITX, the Test CAT and Test PTT functions work in WSJTX. When I return to WSJTX, the comm fails and I cannot Tune nor Enable TX.
    So basically, "Split mode" does not seem to work.
  • And a minor observation, when I change Split from On to Off, the LCD displays briefly "On" ..? which looks like a cosmetic error.

?

Thanks for bringing your project to the ham community, and 73's !

Erik?

ON4PB.


 

Neophyte question: The code is in several files. May different files be merged into the Arduino IDE as desired?


Jack Purdum
 

Any files that appear in the sketch directory are assumed to be part of the sketch and are included by the IDE. Each file will have its own tab in the Source Code Window.

Jack, W8TEE


On Sunday, June 24, 2018, 7:14:09 PM EDT, Craig Wadsworth <cwadsworth@...> wrote:


Neophyte question: The code is in several files.? May different files be merged into the Arduino IDE as desired?



 

Thanks for answering Craig Jack - I've been wondering about that for a few days :)? You learn something new every day.

Martin - G4FKK


 

Jack:
Many thanks! I have a few days off work this week and plan to spend some time on your Beginning C for Arduino 2nd ed.
Regards,
Craig
w9ctw


Jack Purdum
 

Hi Martin:

Not a problem. One other thing: If your project includes a header file (which it should for multiple files), it should be included as:

?? #include "myHeaderFile.h"

and not

? #include <myHeaderFile.h>

If you use angle brackets (<>), the compiler only looks in the IDE's libraries subdirectory and default include path for the IDE. By using double quotes, the compiler first looks in the sketch directory for the header file and then on the default include path. You will need to have data declarations in the header file for any globals that are used in multiple source files. To get the most help from the compiler in terms of debugging, there should only be one *.ino file in a project--the file that contains setup() and loop(). All the rest should be *.cpp and a header file (*.h). The globals are defined in the *.ino file, but declared in the *.h file. (Define and declare are NOT the same thing, even though programmers are incredibly sloppy when using these terms.) If you use all *.ino files, you lose type checking across source files...bugs love to hide there!

Jack, W8TEE



On Monday, June 25, 2018, 5:58:00 AM EDT, Martin FKK <g4fkk@...> wrote:


Thanks for answering Craig Jack - I've been wondering about that for a few days :)? You learn something new every day.

Martin - G4FKK


 

Thanks Jack - some top tips there :-)? Up until a couple of years ago all my programming was PIC chips and assembler so I'm a bit of a novice with the Arduino and have learned on-the-job as it were.? Having struggled through Fortran and Pascal forty years ago, I've carefully avoided anything to do with C since then HI.? Time I bought a book I think.

Thanks again and 73, Martin - G4FKK


 

Just discovered you've written one Jack LOL :)