View previous topic :: View next topic |
Author |
Message |
tinley
Joined: 09 May 2006 Posts: 67
|
Distributing protected code 12f683 |
Posted: Wed Nov 24, 2010 9:53 am |
|
|
I wish to make available a f/w update for a client, but don't want them being able to program more than a small number of units. I have not delivered any yet, although I have no room left to implement code to 'unlock' anyway.
I think the only way to do this would be to write a PC application to interface to the in circuit programmer directly so that it can decode a coded hex file provided 'security' criteria are met.
Does anyone have a better idea, or have experience driving ICP devices directly please? |
|
|
temtronic
Joined: 01 Jul 2010 Posts: 9225 Location: Greensville,Ontario
|
|
Posted: Wed Nov 24, 2010 12:08 pm |
|
|
One way is to design and build a 'hand held' programmer for the client. It would contain the new firmware for the upgrades. The handheld's program would be limited to x number of data transfers, maybe read the target device IDs and verify from a master list. Newer firmware updates could be downloaded from a PC connected to the WEB for FTP transfers from your office.
Hardware cost is minimal,might take a week or two fro design of handheld program(longer as you'll want to add more 'features' once you get started!)
The 'trick' is to have a secure masterlist of legal targets to reprogram that way illegal copies cannot be made by the client. |
|
|
tinley
Joined: 09 May 2006 Posts: 67
|
|
Posted: Wed Nov 24, 2010 3:42 pm |
|
|
Thanks temtronic. That's not a bad idea, although it would be quicker to use an existing piece of hardware with a PC application to control it. I seem to recall seeing example code for one of the ICP devices a few years back, but maybe I'm thinking of a different processor family???
I was hoping that there was one part of memory that could be excluded from the bulk erase on this device, but the only three locations that are, are the id, which is very readily read and changed, or two locations for the calibration. |
|
|
dbotkin
Joined: 08 Sep 2003 Posts: 197 Location: Omaha NE USA
|
|
Posted: Wed Nov 24, 2010 8:07 pm |
|
|
Take a look at the 12F1822. It's an upgrade to the 12F683 with some additional features that may prove useful to you - including the ability to write to its own program memory, and you can write-protect a boot block. It's also *cheaper* than the 12F683, and there's a WPU on A3 - meaning one less resistor in many designs (like mine) that currently use the '683.
If they ever get around to releasing it, the 12F1840 looks like an absolute killer 8-pin device. Cap sense, XLP, 4K words of program memory, internal 32 MHz oscillator... I'm waiting for it! My current '683 based product uses 1020 words of 1024. I need more space! |
|
|
pdl
Joined: 01 Jun 2005 Posts: 45 Location: UK
|
|
Posted: Tue Dec 07, 2010 7:55 pm |
|
|
Hi, take a look at the this item: TEAclipper by flexipanel.com
Does what you want.
Pete |
|
|
tinley
Joined: 09 May 2006 Posts: 67
|
|
Posted: Wed Dec 08, 2010 4:34 am |
|
|
Thanks dbotkin and pdl,
I see the TEAclipper is a great device, but doesn't let me email the code securely. If I had the USB protocol to drive one of the Microchip or CCS ICD's I could quickly write a VB application to decrypt code and program. My thought now is to purchase a CCS ICD-S40 and watch the serial port to get the protocol.
I had looked at the 12F1822... and I must have not looked well enough, as I thought I couldn't program internally... must double check now! Besides, getting these devices is not easy in the UK, but I have just ordered the last few, (until Feb), from Microchip Direct. It still has a lack of memory though, and my application is already compromised because of lack of space... mind you the UART will save some space. I have been watching the 12F1840 with interest... and yes, that would solve my problem… but when!?!
! Oh… I have just noticed the serial port on the ICD2… I forgot it had one of those!
Thanks for your input. |
|
|
|