开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

W8TEE Software Release 1.05


Jack Purdum
 

All:

This release fixes a bunch of bugs, presents a smoother frequency tuning, and more even scrolling through the menu options. The code requires an mcufriend TFT display (2.4" to 3.95" should work) and a Mega 25760 Arduino board as it uses external interrupts not available on the Nano or Uno. (If you're not using any other interrupts, you could move my interrupts to INT0 and INT1.)

Please let me know if you find any bugs.

Jack, W8TEE


John P
 

On Sun, Jul 30, 2017 at 07:37 pm, Jack Purdum wrote:

Please let me know if you find any bugs.
Didn't find any bugs! As a matter of fact, I'm not sure where to find the?software!
?
--
John - WA2FZW


Jack Purdum
 

In the Files section of the group. I find the fastest way to locate a recent post is to click on the Uploaded column heading which sorts the posts. The first click starts with the oldest post, a second click reverse the list, showing the latest posts. My post is under "B40SoftwareRel0105.ino". The MorseCode.h header file is unchanged from the July 10 post.?

Jack, W8TEE


From: John P <j.m.price@...>
To: [email protected]
Sent: Monday, July 31, 2017 12:43 AM
Subject: Re: [BITX20] W8TEE Software Release 1.05

On Sun, Jul 30, 2017 at 07:37 pm, Jack Purdum wrote:

Please let me know if you find any bugs.
Didn't find any bugs! As a matter of fact, I'm not sure where to find the?software!
?
--
John - WA2FZW



Virus-free.


 

Hi,

with the new version my rotary encoder+switch did not work
and "WPM" did not fit right. (see photo)

73, Matt


George Baumann
 

On Sun, Jul 30, 2017 at 07:37 pm, Jack Purdum wrote:
Jack where do you get your mcufriend TFT displays?
I just received one from popmall on eBay and the glass is cracked. It was shipped in a little plastic bag with a couple layers of thin foam packing! ;-(

George, ?n0ngq


Jack Purdum
 

All:

I switched the interrupt pins for the encoder because some Mega 2560 clones do not properly implement the INT05 interrupt vector. The new pins are defined with the following symbolic constants:

#define ENCODERPINA ? ? ? ? ?19 ? ? ? // Encoder pin A, interrupt 4
#define ENCODERPINB ? ? ? ? ?20 ? ? ? // Encoder pin B, interrupt 3
#define ENCODERSWITCH ? ? ? ?22 ? ? ? // Encoder switch pin

If your encoder worked fine under Rel 103, you could set the pins back to their original values. The switch pin also was changed. because of the move.

I don't know why the WPM field prompt would have moved. Look in the ShowWPM() function and dink around with the localY offset.

Jack, W8TEE



From: DH2LAB <dh2lab@...>
To: [email protected]
Sent: Monday, July 31, 2017 2:31 PM
Subject: Re: [BITX20] W8TEE Software Release 1.05

Hi,

with the new version my rotary encoder+switch did not work
and "WPM" did not fit right. (see photo)

73, Matt




Virus-free.


Jack Purdum
 

First, I've had the same problem from a number of different suppliers. Two things: First, even though it's cracked, most of them will still work. On some of my cracked displays, you can't even tell it when they run. Second, write the seller IMMEDIATELY and tell them they arrived cracked and that you either want a refund or a replacement. My experience is that they will work quickly to fix the problem. If the display works, you can use that until the replacement arrives. (I always tell them I will return the old one at their expense once you have the replacement display. Usually, they just send a new one and don't worry about sending payment to mail the display back.)?

The dealer almost doesn't matter, PROVIDED it is an mcufriend display with a back that looks like this:



Note how all on the pins come out on the "long" edges of the board. Our PCB expects this kind of layout. Personally, I would use the "Ask the vendor" feature on eBay to inquire how they are packed, explaining that you've had to return displays that arrived cracked. Doing that seems to have the vendor package them in a box.

Jack, W8TEE


From: George Baumann <georgehbaumann@...>
To: [email protected]
Sent: Monday, July 31, 2017 3:28 PM
Subject: Re: [BITX20] W8TEE Software Release 1.05

On Sun, Jul 30, 2017 at 07:37 pm, Jack Purdum wrote:
Jack where do you get your mcufriend TFT displays?
I just received one from popmall on eBay and the glass is cracked. It was shipped in a little plastic bag with a couple layers of thin foam packing! ;-(

George, ?n0ngq



Virus-free.


Adrian
 

Ordered 2 off eBay. They arrived in a box 2x6x8 inches with nothing more than a plastic bag to protect them. Both were broken.

Adrian


Vince Vielhaber
 

Who is the seller so the rest of us can avoid them.

Vince.

On 07/31/2017 06:17 PM, Adrian wrote:
Ordered 2 off eBay. They arrived in a box 2x6x8 inches with nothing more than a plastic bag to protect them. Both were broken.

Adrian
--
Michigan VHF Corp.


 

On Sun, Jul 30, 2017 at 07:37 pm, Jack Purdum wrote:
Please let me know if you find any bugs.


Jack,

I miss one encoder switch level.

At my display the text from "SW3" always is the last text that was shown at the bottom.

73 de Matt


 

Hi Jack

An "Anomaly" report. ?Code version 1.05, I see you made some big changes in the screen size selection. ?I've got 2 3.5" displays ,from the same vendor about 3 weeks apart, that have different ID's. ?I've added extra case statements for each that correctly increase the displayed size and the colours are correct. ?There's a small difference in the relative positioning if the WPM text between "small" and "large" screen selections. ?With the "small" screen the WPM is correctly positioned within the box whereas with the "Large" screen the WPM is low and left of it's correct position. ?See the photo's.

On version 1.03 I tried to see how the smeter functioned, when I altered the needle position I found it changed it's alignment and "cut into" the meter scale when at the higher levels.

Thanks Jack

&3's David G8DJM


Jack Purdum
 

Thanks, David. Can you send me the ID numbers and the code that properly repositions them. My guess is that you did that in setup(). If so, just send me the setup() code and I'll work it into the code and return it to you just to make sure I did it correctly.

Jack, W8TEE



From: David S via Groups.Io <dcsuk10@...>
To: [email protected]
Sent: Thursday, August 3, 2017 11:26 AM
Subject: Re: [BITX20] W8TEE Software Release 1.05

Hi Jack

An "Anomaly" report. ?Code version 1.05, I see you made some big changes in the screen size selection. ?I've got 2 3.5" displays ,from the same vendor about 3 weeks apart, that have different ID's. ?I've added extra case statements for each that correctly increase the displayed size and the colours are correct. ?There's a small difference in the relative positioning if the WPM text between "small" and "large" screen selections. ?With the "small" screen the WPM is correctly positioned within the box whereas with the "Large" screen the WPM is low and left of it's correct position. ?See the photo's.

On version 1.03 I tried to see how the smeter functioned, when I altered the needle position I found it changed it's alignment and "cut into" the meter scale when at the higher levels.

Thanks Jack

&3's David G8DJM



Virus-free.


 

Hi Jack

Thanks for the quick reply, here's the section from Setup I modified.

? g_identifier = tft.readID(); ? ?// Get TFT ID ?3.95" = 0x9486, 3.6" = 0x9488
? Serial.println(g_identifier, HEX);
? switch (g_identifier) {
? ? default:
? ? case 0x154:
? ? case 0x9341:
? ? case 0x5408:
? ? ? displaySize = SMALL;
? ? ? defaultTextSize = 2;
? ? ? switchBoxWidth = 102;
? ? ? switchBoxHeight = 30;
? ? ? frequencyCorner = switchBoxHeight + 5;
? ? ? frequencyBoxWidth = 312;
? ? ? frequencyBoxHeight = switchBoxHeight + 10;
? ? ? locationY = switchBoxHeight + frequencyBoxHeight + 10;
? ? ? break;
? ? case 0x1581:
? ? case 0x7796: ?// added line
? ? case 0x9487: ?// added line
? ? case 0x9488:
? ? case 0xD3D3:
? ? ? displaySize = LARGE;
? ? ? defaultTextSize = 3;
? ? ? switchBoxWidth = 150;
? ? ? switchBoxHeight = 70;
? ? ? frequencyCorner = switchBoxHeight + 5;
? ? ? frequencyBoxWidth = 457;
? ? ? frequencyBoxHeight = switchBoxHeight;
? ? ? locationY = switchBoxHeight * 2 + 10;
? ? ? break;
? }

Both displays look the same, act the same after added the lines above, one arrived damaged with a broken touch screen hence the replacement. No rush,??the board is up and running but I'm still waiting for a few bits to finish. ?I can't see any reason why this board shouldn't be used as an AA, it's just requires the building of the RF bridge and detection circuit.

Regards

David G8DJM
?


 

Hi Jack

I've looked again at your message and realised that I had misunderstood what you asked.

I had added the display id's in the setup but that was the only change, in the code I could not see where you altered the "WPM:" text position. ?I have a fresh look at the code this morning and found what I think is the correct place. Around line 420 in the?void UpdateFields( section I cdded the following

? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Only for WPM
? ? tft.setCursor(x + 5, y + (switchBoxHeight / 4));
?
? ? tft.setCursor(x, y + (switchBoxHeight / 4));
? ? if (g_identifier == 0x7796 || g_identifier == 0x9487) { // added line
? ? ? tft.setCursor(x + 10, y + (switchBoxHeight / 4) - 10); // added line
? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // added line
? ? tft.setTextColor(WHITE, bc);

Now I get the text correctly positioned, see the photo. ?You've said that you use a 3.96" display, I thought my 3.5" had the same screen resolution of 320 x 480 so I'm not sure why the WPM was not positioned correctly. ?Perhaps you could enlighten me, another learning curve.

I've coded mainly PIC's and 8051's and had very little "C" experience until starting on the Arduino last year.

Best regards

David G8DJM
?


Jack Purdum
 

Thanks David: I did change it to this:

? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Only for WPM
? ? if (g_identifier == 0x7796 || g_identifier == 0x9487) { ?// added line
? ? ? tft.setCursor(x + 10, y + (switchBoxHeight / 4) - 10); // added line
? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // added line
? ? ? tft.setCursor(x + 5, y + (switchBoxHeight / 4));
? ? }
? ? tft.setTextColor(WHITE, bc);
? ? tft.print(str);
? ? tft.setTextColor(YELLOW, bc);
? ? tft.print(wordsPerMinute);
? }

See if that works on your display and let me know.

Jack, W8TEE



From: David S via Groups.Io <dcsuk10@...>
To: [email protected]
Sent: Friday, August 4, 2017 7:59 AM
Subject: Re: [BITX20] W8TEE Software Release 1.05

Hi Jack

I've looked again at your message and realised that I had misunderstood what you asked.

I had added the display id's in the setup but that was the only change, in the code I could not see where you altered the "WPM:" text position. ?I have a fresh look at the code this morning and found what I think is the correct place. Around line 420 in the?void UpdateFields( section I cdded the following

? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Only for WPM
? ? tft.setCursor(x + 5, y + (switchBoxHeight / 4));
?
? ? tft.setCursor(x, y + (switchBoxHeight / 4));
? ? if (g_identifier == 0x7796 || g_identifier == 0x9487) { // added line
? ? ? tft.setCursor(x + 10, y + (switchBoxHeight / 4) - 10); // added line
? ? } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // added line
? ? tft.setTextColor(WHITE, bc);

Now I get the text correctly positioned, see the photo. ?You've said that you use a 3.96" display, I thought my 3.5" had the same screen resolution of 320 x 480 so I'm not sure why the WPM was not positioned correctly. ?Perhaps you could enlighten me, another learning curve.

I've coded mainly PIC's and 8051's and had very little "C" experience until starting on the Arduino last year.

Best regards

David G8DJM
?



Virus-free.


 

TNX Jack,

for me it worked.

I changed it for my displays (0x9481 and 0x9488)

Matt


 

On Fri, Aug 4, 2017 at 06:38 am, Jack Purdum wrote:
? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Only for WPM
? ? if (g_identifier == 0x7796 || g_identifier == 0x9487) { ?// added line
? ? ? tft.setCursor(x + 10, y + (switchBoxHeight / 4) - 10); // added line
? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // added line
? ? ? tft.setCursor(x + 5, y + (switchBoxHeight / 4));
? ? }
? ? tft.setTextColor(WHITE, bc);
? ? tft.print(str);
? ? tft.setTextColor(YELLOW, bc);
? ? tft.print(wordsPerMinute);
?
? }
Hi Jack

Works fine, thanks. ?looking at Matts message?0x9488, is one of the id's in your original code, given that there's so many different display id's out there if may be better to use a case: switch like in your setup, it would be much easier to add additional displays with the code that way.

Best Regards

David G8DJM


Jack Purdum
 

Actually, rel 1.05 has a variable named displaySize that can be either LARGE or SMALL, as set in setup(). I think a simple if-else using displaySize will take care of it.

Jack, W8TEE



From: David S via Groups.Io <dcsuk10@...>
To: [email protected]
Sent: Friday, August 4, 2017 11:46 AM
Subject: Re: [BITX20] W8TEE Software Release 1.05

On Fri, Aug 4, 2017 at 06:38 am, Jack Purdum wrote:
? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // Only for WPM
? ? if (g_identifier == 0x7796 || g_identifier == 0x9487) { ?// added line
? ? ? tft.setCursor(x + 10, y + (switchBoxHeight / 4) - 10); // added line
? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? // added line
? ? ? tft.setCursor(x + 5, y + (switchBoxHeight / 4));
? ? }
? ? tft.setTextColor(WHITE, bc);
? ? tft.print(str);
? ? tft.setTextColor(YELLOW, bc);
? ? tft.print(wordsPerMinute);
?
? }
Hi Jack

Works fine, thanks. ?looking at Matts message?0x9488, is one of the id's in your original code, given that there's so many different display id's out there if may be better to use a case: switch like in your setup, it would be much easier to add additional displays with the code that way.

Best Regards

David G8DJM



 

HI Jack

That works can't test on your display size though, it is ok on the 3.5" and when I switch it to the small display size.

73's
David G8DJM


 

Were/How does one obtain a "mcufriend TFT display"?? I've been looking like crazy and can not find one to ship to the US.? What supplier are you guys using??? A link to some example displays would much be appreciated.? I managed to google translate the mcufriend website and found what I wanted, but at check out there was no US shipping options.

thanks guys....

On Sun, Jul 30, 2017 at 9:37 PM, Jack Purdum via Groups.Io <econjack@...> wrote:
All:

This release fixes a bunch of bugs, presents a smoother frequency tuning, and more even scrolling through the menu options. The code requires an mcufriend TFT display (2.4" to 3.95" should work) and a Mega 25760 Arduino board as it uses external interrupts not available on the Nano or Uno. (If you're not using any other interrupts, you could move my interrupts to INT0 and INT1.)

Please let me know if you find any bugs.

Jack, W8TEE




--
Paul Mateer, AA9GG
Elan Engineering Corp.

NAQCC 3123, SKCC 4628