Searching \ for '[PIC]:ICSP and downloadable firmware...' in subject line. ()
Make payments with PayPal - it's fast, free and secure! Help us get a faster server
FAQ page: www.piclist.com/techref/microchip/devprogs.htm?key=icsp
Search entire site for: 'ICSP and downloadable firmware...'.

Exact match. Not showing close matches.
PICList Thread
'[PIC]:ICSP and downloadable firmware...'
2003\07\31@162211 by Ted Larson

flavicon
face
I have been working on a motor control board with a PIC18F252 as its brains,
and I have been recently thinking if there is a way to make firmware updates
easy to distribute.  Ideally, it would be great if a person needing a
firmware update could just download a new hex file from a website, and ICSP
it right into the board.  I don't want them to have any additional
programming hardware or technically complicated software.  It should be just
a download, plug the motor control board into a PC using USB or serial or
something, and then loading the new hex file onto the board using ICSP.

Does anyone have any pointers to an example of doing something simple like
this?  Obviously, I could just send them a new PIC everytime there is a
firmware update...but this seems like overkill.

There has got to be a cheap and simple way to do this.  Ideas?

Thanks,

- Ted

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\07\31@165332 by Tom

flavicon
face
At 01:11 PM 7/31/03 -0700, you wrote about downloadable firmware:
>There has got to be a cheap and simple way to do this.  Ideas?
>
>Thanks,
>
>- Ted

Go to M'chips site and search bootloader for 18f parts.  They have a
bootloader that takes Intel hex format files for which users need only have
a terminal program and a serial port.  I tried it and it seemed to work well.

Tom

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\07\31@170328 by Mauricio Jancic

flavicon
face
Mmmmm, just loud thinking, but what about doing a little bootloader(?),
I mean. When you plug the driver on the PC, you connect, lets say,
trough the Hyperterminal and a short menu apears. There you'll have the
required options.

       In the case that the user whant's to upgrade the firmware, the
boot program (the one with the menues) downloads the files from the PC
and directly write it to the PIC's program memory. Then, you can ask the
user to send it one more time for verification purposes... Or do all
this trough a simple Visual Basic App.

       this has to work... I think

       Oh, the board interface, will be a simple MAX232 attached to the
usart pins on the PIC.

Mauricio Jancic
Janso Desarrollos
(54) 11 4542 3519
Republica Argentina
Microchip Consultant Program Member


{Original Message removed}

2003\07\31@171645 by Brent Brown

picon face
On 31 Jul 2003 at 13:11, Ted Larson wrote:

> I have been working on a motor control board with a PIC18F252 as its
> brains, and I have been recently thinking if there is a way to make
> firmware updates easy to distribute.  Ideally, it would be great if a
> person needing a firmware update could just download a new hex file
> from a website, and ICSP it right into the board.  I don't want them
> to have any additional programming hardware or technically complicated
> software.  It should be just a download, plug the motor control board
> into a PC using USB or serial or something, and then loading the new
> hex file onto the board using ICSP.

This is what a "bootloader" is used for. Slightly different to ICSP.
A small bootloader program is first programmed into the chip using
any old programmer (ICSP or whatever). To get the "application" code
into the chip you run the downloader program on your PC, import the
.hex file and download it to your target system. The bootloader in
the target chip then programs itself with the new code. Obviously it
is important that the bootloader program in the chip is unable to
overwrite the address range where the bootloader program itself
resides.

There are plenty of bootloaders around, checking the archives will
bring up many links.

Personally I have experience this one which is for the PIC16F87x
chips and uses the serial port:-

http://www.microchipc.com/PIC16bootload/

The PC downloader program is simple to use and is freeware so may be
distributed to your customers. Then, like you say, you can just email
new .hex files when they become available.

Remember that the .hex file could be disassembled and your project
reverse engineered from this. It's almost the same as giving your
client the source code. You have to decide how important this is for
any given project. I beleive there are some bootloader/downloader
systems that use encryption.

--
Brent Brown, Electronic Design Solutions
16 English Street, Hamilton, New Zealand
Ph/fax: +64 7 849 0069
Mobile/txt: 025 334 069
eMail:  spam_OUTbrent.brownTakeThisOuTspamclear.net.nz

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\07\31@172054 by Ted Larson

flavicon
face
Tom,

I checked it out.
This is exactly what I was looking for!
I knew there had to be some easy solution.

Thanks,

- Ted


{Original Message removed}

2003\07\31@180703 by Olin Lathrop

face picon face
> I have been working on a motor control board with a PIC18F252 as its
> brains, and I have been recently thinking if there is a way to make
> firmware updates easy to distribute.
>
> ...
>
> There has got to be a cheap and simple way to do this.  Ideas?

This sounds like a great fit for a bootloader, especially if you can spare
the UART pins.  I did a fairly fancy one on a 16F877 that took a bit over
300 instructions to give you some idea of size.  It should be a little
smaller on an 18F.  I sortof remember someone talked of a stripped down
bootloader here that fit within a 256 instruction block.


*****************************************************************
Embed Inc, embedded system specialists in Littleton Massachusetts
(978) 742-9014, http://www.embedinc.com

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads

2003\07\31@181712 by Harold Hallikainen

picon face
Microchip has an application note on a boot loader. A zip file that comes with it has the source code and a Windoze program to download into the PIC. They also provide DLLs to write your own loader. They use the last byte of eeprom to indicate whether to run the ap or bootloader. I changed this to watching an I/O line. The user holds down a switch and hits reset to start the bootloader. Otherwise, the ap runs. This is on a 16f877.

Harold


FCC Rules Online at http://www.hallikainen.com



________________________________________________________________
The best thing to hit the internet in years - Juno SpeedBand!
Surf the web up to FIVE TIMES FASTER!
Only $14.95/ month - visit http://www.juno.com to sign up today!

--
http://www.piclist.com hint: PICList Posts must start with ONE topic:
[PIC]:,[SX]:,[AVR]: ->uP ONLY! [EE]:,[OT]: ->Other [BUY]:,[AD]: ->Ads


'[PIC]:ICSP and downloadable firmware...'
2003\08\01@033837 by Wouter van Ooijen
face picon face
> I don't want them to have any additional
> programming hardware or technically complicated software.

With those constraints I would recommend magic. Contact the unseen
university at Ank Morpork.

You don't get something for nothing. Your options are:
- HVP, either with the support circuit within your application, or with
an external programming dongle
- LVP, idem, but the required support circuit can be very small (but it
costs you a pin, and some fuses bits can not be changed - only the LVP
bit?)
- self-programming / bootloader: the circuit can be very simple and/or
re-use existing communication hardware (or check my zero-pin
bootloader!), but now you need supporting software in your PIC.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics

2003\08\01@085058 by Handrich, Edward

flavicon
face
I used a similar bootloader in an 18F design, and put the
bootloader at the end of the flash ( 0x7F00 ).  I wrote
my own serial comm program so that I could put the serial
port in the "break" state.  This simply means that the
transmit line is held low.  When the PIC comes out of
reset, the first instruction checks the RX line and if
it is low, it jumps to the bootloader and sets it's TX
line low.  The PC software detects the "break" and releases
the TX line ...

; Power Up Reset Vector
       btfss           PORTC, RX               ; check the RX line for
break
       goto            0x7F00          ; run the boot loader
       bra             R18F_Start

       .
       .
       .

BootLoader              org             0x7F00

       bcf             PORTC, TX               ; output low, match the
break
       bcf             TRISC, TX               ; Make RC6(Tx) an output
HostAck
       btfss           PORTC, RX               ; wait until the host
releases
       bra             HostAck         ; the break condition.
       bsf             PORTC, TX               ; release break, setup RS232

       .
       .
       .

--
http://www.piclist.com hint: The list server can filter out subtopics
(like ads or off topics) for you. See http://www.piclist.com/#topics

2003\08\02@132425 by Ted Larson

flavicon
face
>> I don't want them to have any additional
>> programming hardware or technically complicated software.

>With those constraints I would recommend magic. Contact the unseen
>university at Ank Morpork.

Um....I downloaded the bootloader paper, and had the whole thing working in
about 3 hours of effort.  It wan't magic.  It didn't require programming
hardware or technically complicated software....

so...why did you find it necessary to try to make my question sound like a
stupid one?

- Ted


{Original Message removed}

2003\08\02@133429 by Wouter van Ooijen

face picon face
> so...why did you find it necessary to try to make my question
> sound like a stupid one?

I did not.

You did not want any 'additional complicated software'. A bootloader
*is* additional software, and you obviously had not taken that idea
yourself, so I assumed you would regard it as complicated, so it would
be against your own requirements. And then only magic would do the
trick.

Sorry for misjudging your sense of humour and not including a smiley :)

Note that I did point out your options, including using a bootloader.

Wouter van Ooijen

-- -------------------------------------------
Van Ooijen Technische Informatica: http://www.voti.nl
consultancy, development, PICmicro products

--
http://www.piclist.com hint: The PICList is archived three different
ways.  See http://www.piclist.com/#archives for details.

More... (looser matching)
- Last day of these posts
- In 2003 , 2004 only
- Today
- New search...