Re: Fuse settings question

Arv Evans


On Sun, May 24, 2020 at 8:26 AM jjpurdum via <> wrote:

How do you know the QCX is not programmed in C? Actually, there could be a Serial.begin(9600) in it for debugging purposes. I use scaffolding code all the time:

#define DEBUG
// ...a bunch of statements, then in setup()...

   #ifdef DEBUG
// ...the rest of the sketch

When I'm debugging the code, I leave the #define for DEBUG active. When I'm done and ready for distribution, I comment out DEBUG , which means all of my calls to the Serial object are not compiled into the sketch. If I later find I missed a bug, I remove the comment characters for the DEBUG symbolic constant, recompile, and all my debug code is back in the executable without typing a single new line.

I'm pretty sure the QCX does use C and likely some assembler as well.

Jack, W8TEE

On Sunday, May 24, 2020, 9:54:29 AM EDT, James Daldry W4JED <jim@...> wrote:

Hi, Arv

The QCX is not an Arduino. The QCX is not an Arduino. The QCX is not an Arduino. Should I write it a few more times?

The QCX is not programmed in C. There has been no Serial.begin(9600) code written into it. Your "simple" string has to be written a half-byte at a time to the LCD. The code to make the comparison and goto a do-nothing loop will be probably 20 bytes. _THERE_  _ISN'T_  _20_  _BYTES_  _TO_  _SPARE_.


On 5/23/20 8:28 PM, Arv Evans wrote:


if (a != b) { Serial.println ("security code violated");
exit(1);  // product validation is simple!

Possibly was in the code from the time when an Ebay vendor tried to sell U3 
boards and expected QRP-Labs to support their marginal products.


On Sat, May 23, 2020 at 6:02 PM Larry Howell <larry.howell.47@...> wrote:
Any non-trivial decryption would require additional flash resources that do not exist.  I'm sure Hans is down to counting bits at this point.
Larry AC8YE

On Sat, May 23, 2020 at 7:54 PM Arv Evans <arvid.evans@...> wrote:
If I were trying to protect my proprietary software from being plagiarized
I would probably copy a key (maybe the CPU serial number) into the .eep 
file and then include code in flash memory to test for a match between 
CPU serial number and that key in the .eep space.  There are several other 
ways to do this.  Multiple tests could be done, or even encrypt the 
embedded key and test for proper decryption.  


On Sat, May 23, 2020 at 5:07 PM Ham Radio <bernard.murphy@...> wrote:
The documentation on the QRP-LABS site should be updated regarding checking the HI fuse for X’D1’ for the first re-flash of the firmware.

If the HI  fuse is not correct, is the micro totally bricked or can the problem  be fixed using the  .eep file?
73, Bernie, VE3FWF

Join to automatically receive all group messages.