On Sat, 14 Jul 2001 at 10:20:57 +0100, Mike Harrison wrote: > On Fri, 13 Jul 2001 09:10:04 -0700, you wrote: > > >>I would like to hear what other PIClisters use to protect their = > designs. > > > >Though I wouldn't recommend it for the home hobbyist, we patent just = > about > >everything we can. > > >A well written patent can protect you from somebody developing a = > functional > >equivalent. That's something that concealing components can't do. > Patents are a waste of time unless you have the deep pockets to defend > them.=20 > The flipside is that nowadays patents seem to be less about protecting > truly innovative work, and more about big companies patenting anything > they can get away with, however trivial - often non-innovative things > that any half-sensible engineer would have come up with given the > same brief. All this does is stifle competition and feed the lawyers. > > On the subject of what you CAN do... > One useful, and very cheap & easy, thing you can do is add some > 'hidden' functionality, which can be used to easily prove if someone > has done a direct copy of your code - this is covered by copyright and > should be much easier to take to court. > There are plenty of possibilities, which depend on what interfaces are > on the product - things like obscure button sequences to display a > message or squirt a serial data stream out of a pin.=20 Like Apple Computer's Macintosh firmware - if an unused chunk of code is called it displays the message "Stolen from Apple Computer" on the screen. Very effective. If someone rips off your code and sells a device that uses it, then you just walk up to the device, push a few buttons in some weird combination and the message "STOLEN FROM " flashes up on the LCD (if any). Instant open-and-shut case. A rather effective message hiding trick is to make the message look like a lookup table - like this somemessageorother: RETLW (("S" ^ 0xBA) & 0x0F) RETLW (("T" ^ 0xBA) & 0x0F) ... RETLW (("S" ^ 0xBA) & 0xF0) >> 4 RETLW (("T" ^ 0xBA) & 0xF0) >> 4 Basically, the letter before the ^ is your data, and the hex number after it is the encryption key. All you do to decrypt it is: MOVLW counter CALL somemessageorother MOVWF temp0 MOVLW counter ADDLW message_length CALL somemessageorother MOVWF temp1 RLF temp1, F RLF temp1, F RLF temp1, F RLF temp1, F MOVF temp0, W ADDWF temp1, W CALL put_char_in_w_on_display There. Easy. Later. -- Phil. philpem@bigfoot.com http://www.philpem.f9.co.uk/ -- http://www.piclist.com#nomail Going offline? Don't AutoReply us! email listserv@mitvma.mit.edu with SET PICList DIGEST in the body