BitEdit User Manual
About this document
This document is intended to provide exhaustive guide on BitEdit features. In case you've found something missing, feel free to contact us, as we will try our best to keep this document up-to-date and as complete as possible.
If you seek frequently asked questions, see the following shorter help articles:
- Working with Diff Viewer
- Editing Map Axes
- Grid Scales in BitEdit
- Importing Maps From Another Binary
- Parallel Maps Handling
- Project System in BitEdit
- Reverting Changes in BitEdit
- Transferring BitEdit settings between PCs
Contents
- About this document
- Introduction and purpose of BitEdit
- Available Modules and Pricing
- Disclaimer
- UI Overview and Glossary
- Editor Glossary
- Starting BitEdit
- System requirements
- Dongle
- Organizing User Data
- Project System
- Version System
- Application Data Folder
- Feature Overview
- Support and Bug Reporting Features
- Enabling or Disabling the Project System
- Opening or Creating a project
- Importing Data from Another Binary
- Saving the Binary File
- Project Navigation
- Map Editor
- Map Tree Panel
- Version Control
- Map Editor
- DTC Editor
- Hex Dump Editor
- Strings and Flags Editor
- Diff Viewer
- Map Pack Update Request Form
- Other BitEdit Help Topics
Introduction and purpose of BitEdit
BitEdit is created for editing car ECU firmware, including fine-tuning of calibrations, editing DTC tables, and performing manual hex dump modifications.
Available Modules and Pricing
BitEdit comes with lots modules, each of which supports a different set of binary files. The modules are listed here.
Disclaimer
BitEdit development team is not responsible for potential damage caused by editing calibrations. This editor is intended for those who really know what they're doing. Corrupting the calibrations may effectively brick your ECU.
UI Overview and Glossary
If at some point you will need to contact our support, knowing the proper names of the user interface elements will save you a lot of time explaining to us what happened and what do you need from us, so take a look at the picture below, and learn how the interface elements are called.
Editor Glossary
- Project -- a set of binaries representing modifications of the same original binary, that is maintained as a whole by BitEdit, allowing the user to quickly switch between versions, view differences in a structured way, transfer changes selectively, etc.
- Version -- a modified copy, named and timestamped, of the binary, that is maintained within a project. See Version Control section of this document for details.
- Document -- a child window/tab opened in BitEdit, representing some meaningful part of the opened project. Includes Map Editors, Diff Views, Hex Editors.
- Dialog -- a modal window used for addition information requests and smaller editing tasks. As opposed to documents, the user may only operate one dialog window at a time.
- Tool Panel -- a dockable region dedicated to specific task. Examples are Map Tree, Version Control, and certain HexEdit tools like Diff Navigator.
- Original version -- The stock binary file, that is used for reference, and in many cases as percentage base when performing percentage increments and decrements during calibration editing
- Current version -- The modified binary file, that is currently shown in the Map Tree and all the open Documents, Dialogs and Tool Panels
- Checkout -- the action of switching to a particular named version in the Version Control Tool
- Map Pack -- the metadata that contains all the information necessary to edit the specific binary, including map addresses, data formats, axes, etc.
- Map -- a known region of the binary that contains data in known format, that could be meaningfully visualized as a 3D surface, or a 2D plot (curve). For example, Spark Advance Base shown below is a 3D surface with two axes (% and RPM)
- Axis -- the sequence of values that the map values are associated with. In 3D maps, there are 2 axes, and we usually call the first axis X axis, and the second one Y axis. Sometimes axes are stored in the binary, but sometimes they are purely logical. In the former case, user may edit the axis by clicking the Edit Axis button in the document toolbar. For example, the above image showcases two axes, % and RPM, associated with the Spark Advance Base map.
- Parallel maps -- a group of maps that share their semantic purpose (and sometimes even axes values), and therefore can be handled as a single map. If the editor is switched to Advanced mode, the user manually handles the process of transferring changes between particular maps in the same group, according to its changes transfer mode (see below). When BitEdit is in Simple mode, the changes are transferred automatically, and no individual maps are shown for such groups.
- Changes Transfer Mode -- The logic of transferring the changes between maps in the parallel map group:
- Copy As Is (1) means the parallel maps are kept completely equal
- Copy Differences (2) means that the expression (
Current – Original
) is kept equal across all maps of the parallel map group - Copy Percentage Differences (3) means that the (
Current / Original
) ratios are kept equal across all maps of the parallel map group
- DTC -- Diagnostic Trouble Code. A DTC represents a type of code the vehicle’s onboard diagnostics system uses to alert you to a specific problem with some aspect of the vehicle. In BitEdit, a special DTC Editor dialog is used to activate or deactivate those.
- Hex Dump -- a representation of the binary file in form of a sequence of bytes, words (2-byte integers), double-words (4-byte integers), or other formats in rarer situations. Available in BitEdit via Hex Editor Document.
- Uniform grid -- A 2D/3D map representation mode when the axes values are only shown, but not used to calculate the actual 3D geometry or 2D curve. Instead, this mode assumes that all axis points are equidistant from each other
- Scaled grid -- A 2D/3D map representation mode opposite to the Uniform grid mode described above. The distance between axis points corresponds to the actual axis data read from the binary.
- Diff -- a document representing all differences between two specified versions in the current project. You can navigate the diff tree and see the details for the currently selected tree item.
- Change by Delta -- Increment or decrement mode when all affected cells receive the same increase or decrease, no matter the current or original value of the corresponding cell.
- Change by Percent -- Increment or decrement based on the specified percentage value. The percent base is always the ORIGINAL dump value, so the growth is still linear, but greater values will receive greater increases, unlike in Change by Delta mode.
- Interpolated Change -- Advanced operation on a rectangular selection that interpolates the four corner input values and applies the resulting delta matrix to the selected rectangular region.
- Range Restrictions -- Artificially imposed restrictions that prevent you from entering map data that is logically invalid, e.g. negative values for certain maps, or just too big numbers. You are always given an option to input these manually, compute from the current map data, or stick with Map Pack default values.
Starting BitEdit
System requirements
BitEdit runs on Windows 10 and above, and we do not support Windows 7 anymore. Internet connection is required.
Dongle
BitEdit requires a dongle to run. The dongle is a USB device that is used to store your license information. If you have a dongle, you can use it to run BitEdit on any computer, as long as the dongle is plugged in.
Organizing User Data
Project System
BitEdit uses a project system to organize your work. A project is a set of versions of the same binary file. Each version is a modified copy of the original binary file, with a name and a timestamp. You can switch between versions, view differences between versions, and transfer changes between versions.
BitEdit can also be switched to a mode where the project system is disabled. In this mode, you only work with the current binary file, with no advanced versioning (see below). This switch is located in the Options dialog (Options/Editing/Hints, Versions, Projects).
Version System
Version system is a part of the project system, so when the project system is disabled, the version system is disabled as well.
A version is a modified copy of the original binary file, with a name and a timestamp. You can switch between versions, view differences between versions, and transfer changes between versions.
For further details, see the Project System in BitEdit article.
Application Data Folder
BitEdit stores your projects, versions, and other data in the Application Data folder. This folder is located at C:\Users\<username>\AppData\Local\EasyTuner
. This location can't be changed, but you still might want to access it to back up your settings or see logs.
If the project system is enabled, then, by default, the projects are stored in the Projects
subfolder. However, you may move the projects to another location by changing the Project Folder
setting in the Options dialog (Options/Main Settings/Language and Paths).
Feature overview
Support and Bug Reporting Features
- Hitting
F12
takes a screenshot of the main window, and saves it to a file in BitEdit Logs Folder. Since the main BitEdit window is protected from Windows Screen Capturing features, this is useful if you want to report a bug, or ask for help with something. - Pressing
Request Map Pack Update
on the main tab of the Ribbon (or alternatively, in theFile
menu) allows you to request us to improve or fix the Map Pack associated with the binary file you're currently working on. A dialog window will be opened, asking you to provide further details on what happened, and optionally, specify request urgency. - In the future, we may provide ready solutions for particular popular map packs. When BitEdit finds ready solutions available for the currently opened project, the
Check for Solutions
menu item in theTools
menu will become active, and the request button will also appear on theMain
tab of the Ribbon.
Enabling or Disabling the Project System
BitEdit can operate in two different modes:
- Projects Enabled: Each time you open a binary, BitEdit creates a project for it, allowing you to store many different versions of the binary, quickly switch between them, and compare binary file versions map-wise or in HEX mode. Projects are stored in a special folder, which you may relocate if you so desire (see below)
- Projects Disabled: Versions are disabled, you only operate your current binary and its original versions, and can only analyze the diff between the current state and the stock binary that is loaded from our servers. In this mode, the Ribbon is simplified, the Project commands are removed from it, and the
Save
command is doing the same thing asExport Dump
.
The switch is located in Options:
Opening or Creating a project
There are several ways to open your binary file in BitEdit:
- If the project system is enabled, you can use the Project Browser to manage your projects. To open the Project Browser, click
Open
button in theProject
section of the Ribbon; - if this is your first time opening this binary, you can either browse to it via
File/Open Dump
menu item, or viaBinary/Open
ribbon command; - alternatively, you can drag-n-drop the binary from Windows Explorer to BitEdit window, and BitEdit will automatically create a project from it, or just open it as a binary, if the project system is not currently enabled.
- BitEdit keeps a list of the most recent files you've opened. To open a recent file, click
File
/Recent Files
in the main menu, and then click the file you want to open.
Importing Data from Another Binary
Sometimes, maps are similar or identical in different binaries, and the process of transferring changes between projects could be automated. To try automatic transfer, invoke "Import Binary" function from File
menu (Import Dump (Ctrl+I)
) or from Main
Ribbon tab (Binary/Import
), and choose a binary file in the dialog to import the maps from.
If there are compatible maps available for the specified binary, a dialog window will appear, prompting the user to select some maps to import the values from.
Saving the Binary File
- To save the modified binary, either press
Ctrl+S
, or invokeFile/Save Dump
in theFile
menu (in the Ribbon, it's eitherBinary/Export
if the Project System is enabled, orBinary/Save
if it is disabled).
Project Navigation
Ctrl+F
opens the Map Lookup that allows you to quickly open the Map Editor for any Map with its name matching your inputCtrl+Tab
cycles through open documents (Map Editors, Hex Editors and Diff Viewers)Ctrl+W
closes the active document- Double-clicking a map in the Map Tree opens its Editor as a new Document, or switches to its Editor if it has already been opened
- Double-clicking "Edit Hex Dump" item in the Map Tree opens the Hex Editor document window
- Double-clicking "Edit DTC" in the Map Tree opens the DTC Editor Dialog window.
Map Editor
By default, map editors open in split screen mode, as shown below
Global controls:
- Map Name;
- 2D Mode Hints on Mouse Over (on/off);
- 3D Mode Hints on Mouse Over (detailed/short/off);
- 3D Mode Hints on Mouse Drag-Editing (detailed/short/off);
- Expand View Toggle (expands any region to fit the entire editor area)
When expanded, the button turns into "
Back to Split Screen
".
Grid Mode Controls:
- Gradient Highlighting Toggle;
- Hex Value Display Toggle;
- Unit Picker (for both axes and map values);
Edit Axis Values
command (Can appear for both X and Y axes) This button only appears if the corresponding axis is actually editable. Note that sometimes axes are not stored in the dump;- Axis Name and Units (information, read-only).
3D Mode Controls:
- Uniform/Scaled grid toggle (only affects the current document);
- Data Point Display Toggle (if enabled, data points are emphasized on the 3D surface);
- Original Surface Toggle (if enabled, the original surface will be drawn on top of the current surface in semi-transparent fashion);
- 3D Renderer Brightness Slider (allows adjusting overall 3D brightness);
- 3D Camera controls (elevation, rotation, zoom) Dragging left mouse button outside the surface will rotate the surface (you will notice the change of elevation and rotation). Mouse wheel controls the camera zoom.
2D Mode Controls:
- Row/Column display toggle (you can plot the 2D curve from the rows or from the columns)
- Uniform/Scaled grid toggle
- Map and the axis value for which the curve is built (read-only)
- Selection Mode Toggle (rectangular or linear)
- Grid Lines Toggle
Lines And Points
display modeOnly Lines
display modeOnly Points
display mode- Scale factors for lines and points (markers)
- Row/Column slider (determines the row or column that is chosen to build the curve)
Below is the list of hotkeys and commands that are available in the Map Editor:
Clipboard Actions
Ctrl+A
Select AllCtrl+C
Copy SelectionCtrl+V
Paste
Additionally, there is an option to copy the entire data table including the axes available from the Ribbon and from the Edit
menu. However, pasting values back will only work if the map dimensions match the clipboard contents exactly. This allows the user to copy data from one project to another, or just export it when needed:
Data Display Mode
This only affects Grid Mode
and 3D Mode
:
Ctrl+1
Normal Values (default mode)Ctrl+2
Differences(cur - orig)
Ctrl+3
Percents of Original(cur * 100.0 / orig)
Ctrl+4
Original Values(orig)
Data Modification Commands
Ctrl+E
Set New ValueCtrl+R
Increase/Decrease by Value (add input value to current)Ctrl+P
Increase/Decrease by Percents (Add specified amount of percents of original to current)Ctrl+U
Restore Original(cur := orig)
Undo/Redo Operations
Ctrl+Z
Reverts the last action that affected the dumpCtrl+Y
Repeats the last reverted action
In HEX Editor, Redo command has two different hotkeys, Ctrl+Y
and Ctrl+Shift+Z
, because the latter is more convenient for some users.
BitEdit Status Bar always shows the current state of the Undo/Redo Stack:
If you access the undo/redo stack via the Ribbon, you will also see the details on the revertible operations:
Keep in mind that the undo stack is global, and contains actions from all sources, including map editors and Hex Dump.
Range Restrictions
Accessible from Edit
tab of the Ribbon, Range Restrictions are applied whenever you apply a change in any Map Editor, protecting the dump from receiving values that are too big or too small for the map in question.
Detect
command (Ribbon/Edit/Range Restrictions) replaces the current range with minimum and maximum values currently present in the active mapReset
command replaces the current range with the corresponding data format min/max values, except forIEEE 754 float
maps, which receive the pre-defined range of(–10000..+10001)
, because actual floating point minimum and maximum values are too big for practical use.
Increments and Decrements
BitEdit has several operations that increment or decrement stored values:
- Minimal Increase/Decrease performs increment in dump units for integer-valued maps (non-float) X times, where X is the amount determined by the slider in the
Change by Delta
section in theEdit
tab of the Ribbon. The shortcut key is just+
/-
on the NumPad; - Delta Increase/Decrease performs increment/decrement by specified delta, measured in map units;
- Percent Increase/Decrease performs increment/decrement by specified amount of percents of original value. The amount of percents is specified in the
Change by Percent
section in theEdit
tab of the Ribbon.
Absolute Changes
Set Value
command in theAbsolute Change
section of theEdit
tab of the Ribbon copies the same user input to all selected cells;Restore Original
command reverts the values of all selected cells to stock values.
Interpolated Change
This feature of the Edit
tab of the Ribbon is designed to simplify working with rectangular regions in cases when the change or the absolute value is equal or close to some plane in 3D. The interpolation matrix is bilinear, and is generated from the four corner points (even though for precise planar shape, the 4th point should be calculated from the first three, since for a plane, BottomRight = BottomLeft+TopRight-TopLeft
):
If, however, the input four points do not form a plane (with uniform grid), BitEdit calculates the interpolation matrix in the following way:
double topWidth = topRight - topLeft;
double bottomWidth = bottomRight - bottomLeft;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
double t = (j * 1.0 / (cols - 1)) * topWidth + topLeft;
double b = (j * 1.0 / (cols - 1)) * bottomWidth + bottomLeft;
m[i, j] = (i * 1.0 / (rows - 1)) * (b - t) + t;
}
}
The user can apply the resulting matrix as either the replacement values (=
), the deltas (+=
), or the original percent deltas (+=%
) by clicking the respective button on the Ribbon.
Editor Display Modes
Normal
display mode is the default Map Editor mode. In this mode, the current values are displayed in all editor areas.Difference
display mode replaces the values shown in 3D and Grid areas with their differences compared to original values. 2D area remains unaffected by this.Percent
display mode only affects the Grid view. Not-a-number (NaN) values indicate the 0/0 situation (zero current, zero original); Signed Infinity values indicate the X/0 situation (nonzero current, zero original). 2D and 3D areas remain unaffected by this.Original
display mode only shows the stock values, temporarily hiding the current values. This only affects Grid and 3D areas, and in the Grid area, the cells containing changed values are still marked with dotted outlines, even though the modified values are not shown.
Map Tree Panel
The Map Tree Panel is a dockable region that shows the maps in the binary file. You can use it to quickly navigate to a map and open its editor.
Additionally, it contains the command to launch Hex Editor, and, if the binary contains DTC tables, the command to launch DTC Editor.
Version Control
The Version Control Tool Panel is a dockable region that shows the versions in the project. You can use it to switch between versions, view differences between versions, and transfer changes between versions.
As explained above, versions are named and timestamped copies of the binary file. Each version may contain changes to the binary file, such as changes to maps, DTC tables, or hex dump. You can switch between versions by clicking on a version in the Version Control Tool Panel.
Double-clicking a version in the list is equivalent to clicking the "Checkout" button when that version is selected.
Versions are immutable. To save any changes you make to a version, you must create a new version. You can enable automatic version creation each time you save the binary file in the Options dialog (Options
/Editing
/Hints, Versions, Projects
/Version Control System
).
DTC Editor
The DTC Editor is a dialog window that allows you to activate or deactivate DTCs in the binary file. You can open the DTC Editor by double-clicking "Edit DTC" in the Map Tree Panel. You can use the Quick Search box to quickly find a DTC by its code or description.
Hex Dump Editor
The Hex Dump Editor is a document window that shows the binary file in hexadecimal format. You can use the Hex Dump Editor to make manual changes to the binary file. To open the Hex Dump Editor, double-click "Edit Hex Dump" in the Map Tree Panel.
Toolbar buttons in the Hex Dump Editor contain tooltips that explain their purpose.
- Display Mode controls provide control over the display of the data in the editor. Those include
- Data Format (signed/unsigned byte, word, double-word, etc.)
- Endianness (little-endian, big-endian)
- Display Controls (ASCII and Bars toggles, Column Count, Shift within column)
- Page Navigation mode toggle switches between the page and half-page PgUp/PgDn navigation modes
- Navigation controls allow quick navigation
- Search result navigation loops through the list of search results
- Diff navigation loops through the list of changed regions of the dump
- Selection operations alter values currently selected in the Hex Editor (copy, paste, set all to value, zero all, revert all to original, inc/dec, percent inc/dec).
If you press F1 when the Hex Editor is active, you will see the list of available hotkeys and commands. Pressing a hotkey in this window will highlight the corresponding hotkey command in the help window, to help you quickly find out what a particular hotkey does.
Strings and Flags Editor
The Strings and Flags Editor is a dialog window that allows you to edit strings and flags in the binary file. You can open the Strings and Flags Editor by clicking "Edit Strings and Flags" in the Map Tree Panel.
This command only appears if the binary file contains strings or flags. If the binary file does not contain strings or flags, the command will not be shown. The interface is straightforward and similar to the DTC Editor.
Diff Viewer
The Diff Viewer is a document window that shows the differences between two versions of the binary file. You can use the Diff Viewer to quickly see what has changed between two versions.
To get more help on the Diff Viewer, head to Working with Diff Viewer BitEdit Manual section.
Map Pack Update Request Form
If you press the Request Map Pack Update
button on the main tab of the Ribbon, you will see a dialog window that allows you to request us to improve or fix the Map Pack associated with the binary file you're currently working on.
Urgent requests cost you some credits, but they are processed faster. Urgent requests are only available if the office is currently open. If the office is closed, you can only submit a regular request.
It is important to provide as much information as possible when submitting a request. The more information you provide, the faster we can process your request.
Note that if you provide the original file, we can process your request faster. If you don't provide the original file, we might need to first obtain it, which can take some extra time.