Request: Chip Burning HowTo

PPI Typhoon

DIY Madman
kwick6 said:
kwick6 said:
understand the 68 decimal, becoming 11.9, but what the %&^* is "$44" and where did that come from?


http://www.jaworski.com/htmlbook/dec-hex.htm :)

Just found this.

I don't think I'd want to do the conversions in my head.


I'm glad you mentioned the 0x representing the hex also, didn't know that.
I'm not quite sure how the two hex digits represent the 8 bit byte, but I was trying to figure this out...

Binary refers to base two or a two-state digit called a bit. A bit is either on or off - represented as a '1' for on (the set state) and '0' for off (the cleared state). Eight bits together form a byte and are written as 00110101b (or sometimes %00110101). The 'b' stands for binary, and lets you know that we aren't talking about 110,101, the decimal number. A byte or multiples of bytes set the register size for microcomputers. Hexadecimal (hex) is a base 16 way of representing one byte. Hexadecimal uses the digits 0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F. A byte requires just 2 hex digits. Thus, FFh is a two hex digit representation of a byte. FFh is the same as 11111111b (the little 'h' designates a hexadecimal value sometimes a preceding '$' is used as in $FF)

How is the FF the same as 11111111b?

Thanks,
Scott


When converting Hex to binary, or vice versa, break the HEX into single digits, and binary up into chunks of four.

F=1111
F=1111

So if you had 11110101

That would be 1111 0101
Which comes to F 5

So F5h = 11110101b

That's the really easy way of doing it, rather than drawing it out with all the exponential values. The same goes for converting it back.

Let's say you have.....16h well

1= 0001
6= 0110

so 16h=00010110, but take the extra 0's away in the leading edge..

10110b=16h

To just explain why a single Hex Digit represents 4 bit binary....

In this list, the first number is decimal, then hex, then binary

0=0=0000
1=1=0001
2=2=0010
3=3=0011
4=4=0100
5=5=0101
6=6=0110
7=7=0111
8=8=1000
9=9=1001
10=A=1010
11=B=1011
12=C=1100
13=D=1101
14=E=1110
15=F=1111


It's easy when doing hex-bin hex-dec sucks because having to do the conversions.

But if you memorize binary up to 16, you can do hex-bin conversions really easily.
 

kwick6

Donating Member
Ok so you have the chip, and a pocket programmer(PP), you put the chip in and turn your computer on, will the PP show you the hex? And if so, what will take the hex and show it as seen on the table pictured here....

main_spark.jpg


Is that what the software "Programmer", or "tunercat" does?

The software that comes with the pocket programmer will bring up what is on the chip, such as hex, and "programmer" which has the code hack will give you the tables like shown above?

Sorry, but I have to ask.

Thanks PPI, I saw your post as I was writing this. You explained it well.


Later,

Scott
 

PPI Typhoon

DIY Madman
kwick6 said:
Ok so you have the chip, and a pocket programmer(PP), you put the chip in and turn your computer on, will the PP show you the hex? And if so, what will take the hex and show it as seen on the table pictured here....

main_spark.jpg


Is that what the software "Programmer", or "tunercat" does?

The software that comes with the pocket programmer will bring up what is on the chip, such as hex, and "programmer" which has the code hack will give you the tables like shown above?

Sorry, but I have to ask.

Thanks PPI, I saw your post as I was writing this. You explained it well.


Later,

Scott

Exactly, that's what tunercat and promgrammer do. They use definition files, which are basically translation into workable units. But if you look at the source code for the PROM, many of them have been figured out, and it shows that *such and such address* contains *such and such number*. Well, when you look at it in Tunercat/promgrammer, you find that those are the actual numbers in part of a timing table......an RPM value for error codes, or whatever. That's why I'm thankful we have people like Bill that did promgrammer. Takes all the hassle out of it. :)
 

BillC

New member
kwick6 said:
I'm not quite sure how the two hex digits represent the 8 bit byte, but I was trying to figure this out...
Okay, here's how it works: one 8-bit byte can represent a possible 256 numbers (in the range of 0 to 255). A single hexadecimal digit can represent a possible 16 digits (a range of 0x0 to 0xF, or 0 to 15 in decimal). Two hex digits together give a range of 256 (16 times 16) possible numbers, just like the 8-bit byte. Thus, you can represent the value in an 8-bit byte with two hex digits.

kwick6 said:
How is the FF the same as 11111111b?
11111111 binary converts to 255 decimal. 0xFF also converts to 255 decimal. Hopefully, you can see that 255 = 255.

I don't mean to be rude, but base conversion is really nothing more than basic math. The only functions you need are addition, subtraction, multiplication and division (and exponents, if you want to get technical, but exponents are simply a way of concisely representing self-multiplication).

The right-most digit in any number represents the number of units of the base raised to the zeroth power. The next digit represents the number units of the base raised to the first power. That continues for as long as you have digits. Each digit represents the base to the n-1 power; e.g., if you have 8 digits, the left-most represents the base to the seventh power.

So... to convert 11111111b into decimal, it goes like this:
1 x 2^7 + 1 x 2^6 + 1 x 2^5 + 1 x 2^4 + 1 x 2^3 + 1 x 2^2 + 1 x 2 ^1 + 1 x 2 ^0 , which leads to:
1 x 128 + 1 x 64 + 1 x 32 + 1 x 16 + 1 x 8 + 1 x 4 + 1 x 2 + 1 x 1, which leads to:
128 + 64 + 32 + 16 + 8 + 4 + 2 + 1, which equals:
255

Converting 0xFF goes the same way:
0xF x 16^1 + 0xF x 16^0 , which leads to:
15 x 16^1 + 15 x 16^0 , which leads to:
15 x 16 + 15 x 1 , or:
240 + 15 , which equals:
255

Conversion from decimal into hex or binary requires division, but it goes in the same manner. The proof is left as an exercise to the reader. :p
 

kwick6

Donating Member
PPI Typhoon said:
kwick6 said:
Ok so you have the chip, and a pocket programmer(PP), you put the chip in and turn your computer on, will the PP show you the hex? And if so, what will take the hex and show it as seen on the table pictured here....

Is that what the software "Programmer", or "tunercat" does?

The software that comes with the pocket programmer will bring up what is on the chip, such as hex, and "programmer" which has the code hack will give you the tables like shown above?

Sorry, but I have to ask.

Thanks PPI, I saw your post as I was writing this. You explained it well.


Later,

Scott

Exactly, that's what tunercat and promgrammer do. They use definition files, which are basically translation into workable units. But if you look at the source code for the PROM, many of them have been figured out, and it shows that *such and such address* contains *such and such number*. Well, when you look at it in Tunercat/promgrammer, you find that those are the actual numbers in part of a timing table......an RPM value for error codes, or whatever. That's why I'm thankful we have people like Bill that did promgrammer. Takes all the hassle out of it. :)

So we don't need both, just programmer will do because it has our code, correct?

Now programmer just shows the values that we change via hex, in the raw data of the chip, we can't just go into the table like on FAST and start plugging in numbers for what we want the spart to be?

So programmer is a way to check our work as we make changes in the raw data....
Say we want to change the spark at 1600RPM and 80KPA from 10 to 9. We would go into the hex and change it to represent 9, and then take a look at programmer to see if it was done right?



Scott
 

PPI Typhoon

DIY Madman
kwick6 said:
PPI Typhoon said:
kwick6 said:
Ok so you have the chip, and a pocket programmer(PP), you put the chip in and turn your computer on, will the PP show you the hex? And if so, what will take the hex and show it as seen on the table pictured here....

Is that what the software "Programmer", or "tunercat" does?

The software that comes with the pocket programmer will bring up what is on the chip, such as hex, and "programmer" which has the code hack will give you the tables like shown above?

Sorry, but I have to ask.

Thanks PPI, I saw your post as I was writing this. You explained it well.


Later,

Scott

Exactly, that's what tunercat and promgrammer do. They use definition files, which are basically translation into workable units. But if you look at the source code for the PROM, many of them have been figured out, and it shows that *such and such address* contains *such and such number*. Well, when you look at it in Tunercat/promgrammer, you find that those are the actual numbers in part of a timing table......an RPM value for error codes, or whatever. That's why I'm thankful we have people like Bill that did promgrammer. Takes all the hassle out of it. :)

So we don't need both, just programmer will do because it has our code, correct?

Now programmer just shows the values that we change via hex, in the raw data of the chip, we can't just go into the table like on FAST and start plugging in numbers for what we want the spart to be?

So programmer is a way to check our work as we make changes in the raw data....
Say we want to change the spark at 1600RPM and 80KPA from 10 to 9. We would go into the hex and change it to represent 9, and then take a look at programmer to see if it was done right?



Scott

No, we don't NEED both, but it's nice to have Tunercat's graphing feature. But you don't need to make the changes in the raw data. You can make the changes within Tunercat or Promgrammer, and it will modify the data for you. When you save the file, it saves the new binary.

If you want to change spark advance from 10 to 9, you just go into Promgrammer and change it in there.

Do you have binary files to play with?? If not, let me know and I'll shoot you over some binaries to mess around with.
 

kwick6

Donating Member
PPI Typhoon said:
No, we don't NEED both, but it's nice to have Tunercat's graphing feature. But you don't need to make the changes in the raw data. You can make the changes within Tunercat or Promgrammer, and it will modify the data for you. When you save the file, it saves the new binary.

If you want to change spark advance from 10 to 9, you just go into Promgrammer and change it in there.

Do you have binary files to play with?? If not, let me know and I'll shoot you over some binaries to mess around with.

No I don't have any, can you send them, thanks for all your help.
kwiksix@msn.com

smeagol said:
You can make the changes in Promgrammer directly, that's the whole point of it.

Ok. I get it, just trying to learn as much as I can about it. Trying to get all the stupid questions out at once. :D

I'm sure theres more dumb questions to come but its interesting stuff to learn. Although kinda tough if you don't have someone showing you everything first hand.

Thanks for all the help, I am still trying to work on those conversions Bill.
I don't want to bother you with it too much though. I just have one question.... I understand starting at the first digit furthest right and making it the zeroth power and moving left. Why is it mulitplying by 2 in the binary and by 16 in the hex?

Scott
 

kwick6

Donating Member
BillC said:
kwick6 said:
just programmer will do
BTW, the name of the program is "Promgrammer". There's an extra "m" in there -- it's supposed to be a play on "prom programmer".

Oh I never noticed that, thanks for pointing that out.

Glad this stuff makes more sense now.



Scott
 
Top