If you are reading this article. Then it’s at least you’ve heard of WinOLS and want to get a glimpse of it.
I’ve been spending the last 4 months using WinOLS and I think it would be cool to write what I know about it. It was almost sad for me that I had to work it all out myself. So I would like to give you a head start and save your time!
You can think of WinOLS as a hex editor, it’s just that it’s an automotive one. It might look relatively hard, but using it is not really as hard as one imagined.
After you load the ROM or Hexdump you got from an ECU, this is what you usually get with default settings.
But before you do anything. There are things that you should know before you get into the world of automotive hex editing. So you can understand them all right.
This tool menu is crucial. It dictates how the raw data looks to your eyes.
If you don’t have one, you can enable it from View > Symbol bars > Frame: View
There are 4 value types you can select from in WinOLS.
FYI, 8 bits = 1 Byte
8bit = viewing one Byte as is
16bit = 2 Bytes as single value
32bit = 4 Bytes as a single value
Float (Fl.) = also 4 Bytes as a single value, but different. read more
Number format dictates how you view your values.
255 = Decimal, Base 10 System
FF = Hexadecimal, Base 16 System
1111 = Binary, Base 2 System
LoHi/HiLo or Endianness
Select Endianness, The order of Bytes we are viewing. ECU Processing Unit (CPU) is what dictates Endianness. read more
HiLo = Big-endian(BE), reading Bytes as is
LoHi = Little-endian(LE), reading Bytes backwards, the least-significant Byte first.
+/- or Signedness
Signedness represents how you view values.
Signed = Both positive and negative values
Unsigned = Only non-negative values, from 0 to max positive value possible
By selecting Signedness, RAW data stays the same. Signedness enables us to store and view values in negative values. But the range of data will be different.
Unsigned 16bit Decimal = 0-65535
Signed 16bit Decimal = -32767 to 32767
Why all the madness?
Because we store raw data in Base 16 System, values can be from 00 to FF for each Byte. And we translate them for how we want to use them.
One Byte can only store so much, so we have ways to play with them.
8bit Base 10 Decimal, using value from 1 Byte
Unsigned = 0-255
Signed = -128 to 127
16bit Base 10 Decimal, using values from 2 Bytes
Signed = -32,768 to 32,767
32bit Base 10 Decimal using values from 4 Bytes
Unsigned = 0-4,294,967,295
Signed = -2,147,483,648 to 2,147,483,647
32bit float uses values from 4 Bytes
32bit float utilizes 4 Bytes differently compared to fixed 32bit. Has much more precision and a super wide dynamic range. But it is more complicated, please read the whole stuff in Wikipedia if you are interested enough.
Tuning Table Example
Honda ROMs before 1.5 turbo era usually come in HiLo. And Honda Ignition Timing Tables usually come in Signed 16bit because each value has 1 decimal digit for higher ignition timing precision and it needs to go negative in value for ignition retard.
Values without having a proper setup
Values after adding *0.1 factor and 1 decimal digit for precision.
Pops and crackles being tuned and displayed correctly in Signed values.
Not the same with Unsigned where you cannot go negative and get negative values displayed incorrectly.
All these settings can be different from table to table, and parameters too. It’s up to the manufacturers on how they have them up.
Understanding the basics and fundamentals is crucial to ecu tuning, especially when editing stock ECU values using an automotive hex editor like WinOLS. We can go deeper and go correct if we know what’s being represented to our eyes.
I hope this information can help shed light to my fellow comrades who have the same interests as mine. This should be it for today. I hope that this is useful to you guys.
Have fun tuning!
And oh hey!
Wanna save the headaches for the later and in the right place?
Want to tune your Honda CANBus ECUs?
Grab yourself a copy of Honda Tuning Suite CANBus Suite today!
Tons of features!
CANBus ECUs Reading and Writing!
Many tuning tables already defined!
All in one!
Be one of the early birds!
Get it here!
Become the VIP today!