Guys, I was asked to recommend a standalone programmer for '328 based boards. This one looks pretty good to me - does bootloader, does fuses, does a sketch. The application only needs Uno compatible fuse settings and sketch download. Any thoughts? Thanks Robert http://www.kanda.com/products/kanda/HH0120.html
if I am going to spend that much it better do debugging and beakpoints, otherwise it seems like a 3$ asp with a rom FS
I just need it to do the parts programming - be able to give it and an assembled board (or several hundred) to a technical neophyte and have them be able to program the processor by following a minimal set of directions, then install the board and connect the power and IO cables. Looking for very easy to use with no PC involvement needed.
Are you thinking of selling a board that would do easy one-touch boot-loading? Have something with a sketch like Nick Gammon's bootloader, connect a EASY header to a blank chip, and hit button to program?
I use Atmel's AVRISP MkII, it will everything you ask and works well with AVRDude so all you would have to do is write a short batch file and the users could very easily do what you need. If you need a GUI to do the tasks you could download AVR Studio, Atmel's free IDE.
Here is a link to the MkII http://www.mouser.com/ProductDetail/Atmel/ATAVRISP2/?qs=sGAEpiMZZMuk%252b7HJuOzfqFcX98cO1Rkac1lDVM1BSh4%3d
At that price, it better comes gold-plated.
I use Atmel's AVRISP MkII
I second that recommendation.
You guys are missing the point - I’m looking for feedback on this commercialy available item that I can program and turn over for someone with minimal experience to be able to program newly built cards before they get assembled into a product. No PC involvement, no thinking, no chance to screw up a sketch.
No PC. Not looking to reinvent the wheel. Not looking to put a bunch of time into productizing Nick Gammon’s hex uploader (tho that would be cool).
I’d just like some feedback on this item and its suitability for programming fuses to be like an Uno and upload a sketch, all via the ICSP header.
You could take my bootloader uploader:
Just put it into a plastic box, provide power, and run the ICSP cable out a hole. That uploads a single bootloader kept in its memory, and does the fuses.
In its current form you command it to write the bootloader with serial comms, but you could have it test a button and do it. And have an LED or two to show when it is programming and when it is done.
What you posted looks OK though. Note that the thing you posted needs a "PC uploader" to put the sketch onto it in the first place.
So, not too bad for $189.
CrossRoads: You guys are missing the point - I'm looking for feedback on this commercialy available item that I can program and turn over for someone with minimal experience to be able to program newly built cards before they get assembled into a product. No PC involvement, no thinking, no chance to screw up a sketch. No PC. Not looking to reinvent the wheel. Not looking to put a bunch of time into productizing Nick Gammon's hex uploader (tho that would be cool). I'd just like some feedback on this item and its suitability for programming fuses to be like an Uno and upload a sketch, all via the ICSP header. Thanks.
Something to think about, you could use the Little Leo board (minus the SD) with a 7805 regulator and a barrel jack. You could keep the USB on the board if you want. However, the bootloader sketch from Nick might need changed to work.
P.S. I have had great success using Nick Gammon's bootloader with an Uno.
Nick, would your bootloader uploader also be suitable for uploading alternative 8U2 code to a USB controoler chip via it’s ICSP header? Or does the Arduino used as a programmer need to be the same architecture and running the same program as will be uploaded to the target device?
Yes it is. I have been programming an Atmega32U4 with it repeatedly.
And plugging it into the ICSP header on a Uno for the ATmega8U2 shows it is ready to upload/download stuff:
Atmega hex file uploader. Written by Nick Gammon. Version 1.12 Reading SD card ... HEX files in root directory: BLINK1.HEX : 4603 bytes. BLINKC~1.HEX : 4616 bytes. Created: 2012-08-05 09:28:00. Modified: 2012-08-05 09:28:00 BLINK_~1.HEX : 14528 bytes. Created: 2012-10-05 12:38:28. Modified: 2012-10-05 12:51:36 SKETCH~1.HEX : 14618 bytes. Created: 2012-10-05 13:01:36. Modified: 2012-10-05 13:11:34 LED_BL~1.HEX : 14618 bytes. Created: 2012-10-05 13:11:58. Modified: 2012-10-05 14:32:36 LED_TE~1.HEX : 12041 bytes. Created: 2012-10-05 13:47:20. Modified: 2012-10-05 14:25:18 --------- Starting --------- Attempting to enter programming mode ... Entered programming mode OK. Signature = 0x1E 0x93 0x89 Processor = ATmega8U2 Flash memory size = 8192 bytes. LFuse = 0xEF HFuse = 0xD9 EFuse = 0xF4 Lock byte = 0xCF Clock calibration = 0x94 Actions: [E] erase flash [F] modify fuses [L] list directory [R] read from flash (save to disk) [V] verify flash (compare to disk) [W] write to flash (read from disk) Enter action: Programming mode off.
CrossRoads: You guys are missing the point - I'm looking for feedback on this commercialy available item that I can program and turn over for someone with minimal experience to be able to program newly built cards before they get assembled into a product. No PC involvement, no thinking, no chance to screw up a sketch.
From reading the product description, that looks to be exactly the purpose this product was designed for. Connect the header, push the button, wait, done. The fact it is also battery powered so you can send a minimally trained person to do a field upgrade is pretty cool too.
You will have to make sure the operator knows which way around to attach the 3x2 ICSP header connecter though. Or substitute with a goof-proof but non-standard polarised plug of some description.
Okay, the programmer is in.
Here’s the screen shots that come up for programming the fuses.
What do I want selected for Uno-like 16 MHz operations?
My Uno had:
Atmega chip detector. Entered programming mode OK. Signature = 1E 95 0F Processor = ATmega328P Flash memory size = 32768 LFuse = FF HFuse = DE EFuse = FD Lock byte = CF
Also broken out as:
External Reset Disable.................. [ ] Debug Wire Enable....................... [ ] Enable Serial (ICSP) Programming........ [X] Watchdog Timer Always On................ [ ] Preserve EEPROM through chip erase...... [ ] Boot into bootloader.................... [X] Divide clock by 8....................... [ ] Clock output............................ [ ] Bootloader size: 512 bytes. Start-up time: SUT0: [ ] SUT1: [ ] (see datasheet) Clock source: low-power crystal. Brownout detection at: 2.7V.
However you might not want "boot into bootloader" as you are just uploading a sketch, right?
You could use http://www.engbedded.com/fusecalc to work out the bits.
Yes, just uploading a sketch. Thanks Nick, I'll do some more browsing. There's 4 SUT choices. Clock source is very confusing. There are 2 choices of Low Power Crstal Oscillator 8-16 MHz.
Success! Took a bunch of flipping back & forth within screens and to the fuse calc page, was finally able to get the fuses displayed LFuse = FF HFuse = DE EFuse = FD Lock byte = CF
No JTAG ATMega328 Fuse Enable HEX file as selected Lock Bits - No protection Application Boot Block Lock Bits - No Restrictions Boot Loader Boot Block Lock Bits - Mode 3 = Mode 2 + 4 Enable Boot Block Reset Vector Clock - 1111 Low Power Crystal Oscillator 8-16 MHz Startup Time - SUT 11 Boot Block Size - 256 Words Selected Medium Fast for programming speed Vcc - 5V
Connected ICSP header - pushed the button - bunch of flashing occurred, then a Green LED. Connected the board to its circuit (ribbom cable to LEDs, power) - powered up & it seems to work!
Sounds like a fun product. :)
Yes, end company using it will have no problem using it. Plug header onto ICSP connector of standalone board, push the button, 8 seconds later its all done.
Found out after we ordered the programmer that uCs will be pre-programmed before being installed onto boards in India. Programmer will be a backup I guess in case programming needs to change after boards are provided to be assembled into end product.