Introduction

If you’re completely new to burning chips, you may want to take a look at the Beginners’ Guide before reading the rest of this article. You will probably still need to read this guide in order to choose the correct programming parameters unless you’re in the situation where you’re programming a chip that is the exact same size as the chip you are replacing. Programming chips with offsets comes into play in two situations:

If the chip you are programming is of a larger capacity than the binary file you are putting on it, you need to use an offset to ensure the tune ends up in the right spot on the chip.

Switching adapters which hold multiple programs require the use of offsets to fit multiple programs on a single chip for a switching adapter.

Both of these cases will be covered in this article.

Chip Offsets With a Single Tune:

We’re going to assume you have either TunerPro or Flash n Burn open at this point and the chip physically oriented correctly. If you need help with this, look at the Beginners’ Guide before continuing. We will be selecting the correct buffer and chip addressing to ensure the chip is burned properly and can be used.

When in the software:

Select the type of chip you’ll be programming from the drop-down menu. This will likely be either the AT29C256, 27SF512, AT90F040 or Moates J3 adapter (F3/F3v2).

Pick the ‘Load file to buffer’ option, and navigate to the file you want programmed on the chip. Select it, and it will be loaded to memory on the PC. Take note of the file size indicated in the message window. (You can typically “hover” over the filename before opening it and Windows will pop up an information box iwth the file size) It will likely be one of five sizes: 4k, 16k, 32k, 56k or 64k bytes.

The file you have loaded will determine your buffer addressing (start/end)

4k byte = 0000/0FFF

16k byte = 0000/3FFF

32k byte = 0000/7FFF

56k byte = 0000/DFFF

64k byte = 0000/FFFF

In the top right part of the window you will see the Chip Addressing offset values that need to be changed. The buffer addressing along with the chip size will determine what offsets you need to use. (Flash n Burn usually automatically selects sane offsets based on your chip type and file size in order to place your buffer at the end of the chip, where it usually belongs.)
The following table summarizes what offsets you need to use depending on chip used and file size:

File Size

Chip

Buffer Start -> End

Chip Start -> End

4k (4096)

AT29C256

000000 -> 000FFF

007000 -> 007FFF

16k (16384)

AT29C256

000000 -> 003FFF

004000 -> 007FFF

32k (32768)

AT29C256

000000 -> 007FFF

000000 -> 007FFF

4k (4096)

27SF512

000000 -> 000FFF

00F000 -> 00FFFF

16k (16384)

27SF512

000000 -> 003FFF

00C000 -> 00FFFF

32k (32768)

27SF512

000000 -> 007FFF

008000 -> 00FFFF

56k (57344)

27SF512

000000 -> 00DFFF

002000 -> 00FFFF

64k (65536)

27SF512

000000 -> 00FFFF

000000 -> 00FFFF

32k (32768 EECIV)

F3/F3v2

000000 -> 007FFF

032000 -> 039FFF

56k (57344 EECIV)

F3/F3v2

000000 -> 00DFFF

032000 -> 03FFFF

64k (65536 EECIV)

F3/F3v2

000000 -> 00FFFF

032000 -> 03FFFF

216k or 224k (EECV)

F3/F3v2

“bank” format: non-linear!

convert to 256k!

256k (EECV)

F3/F3v2

000000 -> 03FFFF

000000 -> 03FFFF

While the correct values are often selected, you can manually enter them. For a single-tune single-chip scenario, you generally want the buffer (or file content) to be placed at the ‘end’ of the chip. The notable exceptions to this rule are 32k EECIV Ford tunes (which need to start at 0x32000 and end before the end of the chip) and 216k/224k Ford EECV bins (which are not in linear memory format and need converted to 256k before programming).

To do this manually:

Ensure Buffer Addresses are correct for the file size you have loaded.

Adjust the Chip Addressing start value and end value until the end value is the maximum value for the chip AND buffer address values are correct.

A short list of common chip addressing settings:

64k bin: 000000 start 00FFFF end ( SST27SF512 chip )

32k bin: 008000 start 00FFFF end ( SST27SF512 chip )

16k bin: 00C000 start 00FFFF end ( SST27SF512 chip )

4k bin: 00F000 start 00FFFF end ( SST27SF512 chip )

56k Ford EECIV bin: 032000 start 03FFFF end ( Ford F3 chip )

256k Ford EECV bin: 000000 start 03FFFF end ( Ford F3 chip )

112k Ford EECV bin: SPECIAL need other software ( Ford F3 chip )

216k Ford EECV bin: SPECIAL need other software ( Ford F3 chip )

BEB files CANNOT be programmed with FnB / TP. Must program using Binary Editor

eBIN file CANNOT be programmed

Once you are satisfied with the offsets, perform a normal Erase/Blank/Program/Verify cycle! Consult the Beginners’ Guide for more information.

Using Switching Adapters:

Using our switching adapters (G2X, G3, GX, TwoTimer, F3, F3v2,F8) requires programming chips using offsets of making “stacked” bin files. Switching adapters use chips that are larger than an ECU requires, allowing the extra space to be used for multiple programs. The “extra” space gets divided up into chunks, each of which can store an individual tune. There are two approaches to creating proper chips for use with switching adapters, both equally valid:

Lump all tune files together on your PC into one bin file “stacked” which is the same size as the chip, program chip at once.

The “Bin Stacker/splitter” function in TunerPro can be used to prepare a single file from a group of tunes. (You can also use a hex editor or other tool)

This “stacked” file contains all the tunes and can then be programmed like a “normal” file using TunerPro, Flash n Burn, etc.

Entire chip gets programmed at once, all tunes for the ECU get programmed on the chip in one operation as part of the “stacked” file.

Requires preparation of new “stacked” file and reprogramming of entire chip if any individual tune changes.

Program the chip multiple times, once for each tune, different small selected area of chip Program/Verify cycle instead of whole chip.

Instead of relying on a program to create a “stacked” file, knowledge of chip addressing is used to place tunes at correct places within a chip.

Programming cycle changes slightly: Erase, Blank check happens at very beginning of cycle ONLY ONCE. Does NOT happen before every Program/Verify operation, like normal.

Erase/Blank is followed by multiple Program, Verify operations. Each operation is for one tune. Each operation will have different start/end addresses which are a portion of the chip.

Does NOT require preparing any special files in advance – uses the same bin files which would be used for single-tune programming.

If you want to chance a tune which is already programmed, the entire chip must be erased and all tunes individually reprogrammed.

As a rule of thumb, tunes start at the end of the chip and count down. i.e. “Tune 0” is in the highest addresses on the chip, or the top slot in a stacked bin. “Tune 1” will be the next lower slot. Some adapters have chips which can hold more tunes than there are address lines for switching.

Each switching adapter we sell has different numbers of available slots, slot sizes and corresponding chip addresses start/end:

Tunes smaller than 64k typically need to be top-justified so that they END at the end of each window

When using the Ex remote (or no switcher – floating switch inputs) slot “0” will be at the end of the chip and bigger numbers on the Ex remote will mean slots closer to the beginning (0x000000) of the chip.

F3 (version one – switch pin and 2 tunes): special case. Cannot program entire device at once, stacking NOT possible. Program chip twice, manually change state of switching pin during programming. Note: “Erase chip” function does NOT erase whole chip, only erases the “bank” selected by the jumper

F3v2 (version two – 4 pin connector and dial switch, 8 tunes): special case. Cannot program entire device at once, stacking NOT possible. Program chip multiple times, manually change state of switch during programming to select different slots. Note: “Erase chip” function does NOT erase whole chip, only erases the “bank” selected by the switch