Standalone Arduino Programmer

From lechacal
Jump to navigation Jump to search

Overview

The standalone Arduino Programmer can program many atmel chip in stand alone mode which means it does not need a computer to operate. This is very useful for automating the programming of large number of chips.

This product is a shield for the Arduino Mega.

You will need to program the Arduino Mega only once with a computer then the programmer will be stand-alone and only need connection with a power source.

The principle is:

  • Program the Arduino Mega with the sketch provided below.
  • Flash the target sketch on a SD card
  • Insert the SD card / Connect the mega to the power supply.
  • Connect the shield to the target device with the 6 pin cable.
  • Press OK on the shield.
  • Target is now programmed.

Features

  • Onboard Micro SD card.
  • 3 operation LED (work / ok / error).
  • 3 operation button.
  • 6 pin SPI connection to target.
  • Additional GPIO pins available for expansion.
  • Provision for use of a small LCD screen.

Usage

Preparing the programmer

  • Compile the target sketch on Arduino IDE.
  • Locate the produced hex file.
  • Copy it to the SD card.
  • Rename the file as 'firmware.hex'.
  • Insert the SD card in the programmer.

Production Usage

  • Connect the 6 pin ribbon cable to the target device.
  • Press the OK button.
  • Sucessful flash will be indicated with the green led 'ok'

Firmware

Several firmwares that can be used on the programmer.

Atmega_Hex_Uploader_Fixed_Filename firmware

This is the basic firmware. It allows programming with the buttons and confirmation is indicated with leds.

Download the firmware from this github repo:.

https://github.com/nickgammon/arduino_sketches

Choose the sketch named Atmega_Hex_Uploader_Fixed_Filename

A special version of SDFat library is needed. Download it from here below. Do not use the latest version of this library or compilation will fail.

https://github.com/greiman/SdFat/releases/tag/1.1.4

  • Install the above library.
  • Open the Atmega_Hex_Uploader_Fixed_Filename sketch in the Arduino IDE.
  • Select Tools -> Board: -> Arduino AVR Boards -> Arduino Mega or Mega 2560
  • Connect the Mega to the usb port.
  • Click on Upload to write the programming sketch.

Usage

Only the OK button is functional. Press OK to start flashing the target. A sucessful flash will be indicated by the green LED blinking. Errors will be reported using the patterns below

Problems with SD card or programming target chip

   Red x 1 = Cannot open SD card
   Red x 2 = Cannot read file 'firmware.hex'
   Red x 3 = Cannot enter programming mode in target chip
   Red x 4 = This chip does not have a bootloader fuse
   Red x 5 = Cannot read chip signature
   Red x 6 = Unrecognised signature
   Red x 7 = Bad start address in hex file for code
   Red x 8 = Verification error

Problems with firmware.hex file

   Red+yellow x 1 = Line in file is too long
   Red+yellow x 2 = Line in file is too short
   Red+yellow x 3 = Line does not start with a colon (:)
   Red+yellow x 4 = Invalid hex digits (should be 0-9, A-F)
   Red+yellow x 5 = Bad sumcheck at end of line
   Red+yellow x 6 = Line not expected length
   Red+yellow x 7 = Unknown record type
   Red+yellow x 8 = No 'end of file' record in file
   Red+yellow x 9 = File will not fit into flash of target

Credits to the author of this firmware who documented the usage here.