.HEX File Extension
Hexadecimal Source File
Developer | N/A |
Popularity |
3.6 | 134 Votes |
What is a HEX file?
A HEX file is a hexadecimal source file that stores data or instructions for programmable devices, such as microcontrollers, Electrically Erasable Programmable Read-Only Memory (EEPROM) chips, and other embedded systems. It may contain compiled machine code, configuration data, or firmware that a device reads and executes. HEX files are often used in electronics and engineering applications, including remote controls, automotive systems, medical devices, and industrial machines.
More Information
The Intel HEX format saves binary data in a readable text format using hexadecimal values. Developers create these files when compiling source code for hardware, typically using software tools like the Arduino IDE, MPLAB X, or other embedded development environments. The developers then upload, or "flash," the files to the device to program it with the intended behavior.
How to open a HEX file
You can open HEX files with specialized hex editors such as HxD or FlexHex. If the file is saved in plain text, you can also view or edit it with standard text editors, such as Microsoft Notepad, Apple TextEdit, or Microsoft Visual Studio Code. However, incorrectly modifying the contents may cause the device to behave incorrectly.
Programs that open HEX files
BinHex Encoded File
Developer | BinHex |
Popularity |
2.7 | 24 Votes |
File encoded with an early version of BinHex (binary-to-hexadecimal) encoding software; used for converting files to a text format that could be sent via e-mail without being corrupted; typically takes up more space than the original file.
More Information
The BinHex program is only available for the Mac. Newer versions of the program save BinHex files with a .HQX extension rather than ".hex."
Programs that open HEX files
Arduboy Game File
Developer | Arduboy |
Popularity |
3.0 | 1 Vote |
A HEX file may also be a compiled game file used by the Arduboy handheld console that is formatted in Intel HEX, a plain text encoding of binary data. It contains low-level instructions that the Arduboy console can execute. Developers write game code in C or C++ and compile it into a HEX file using development tools such as the Arduino IDE or PlatformIO.
More Information
After developers compile code to a HEX file, they upload it to an Arduboy device through a USB connection. The Arduboy then runs the uploaded game directly from its internal memory. Some users also use mobile solutions with On-The-Go (OTG) USB support to transfer games without a computer.
In addition to transferring HEX files to physical hardware, users can open and test HEX files with emulators that simulate the Arduboy on desktop or web platforms. These tools enable developers and players to preview gameplay, debug issues, or play without the need for a device. While the HEX format is standard across many embedded systems, such as microcontrollers and programmable consumer devices (3D printers, keyboards, etc.), Arduboy-specific HEX files are built for the device’s particular hardware and won’t function on unrelated systems.
NOTE: HEX files are often included in .ARDUBOY game packages, which are .ZIP archives that store all of the information required to play a game with Arduboy, such as a compiled game, a banner image, and metadata.
How to open a HEX file
You can open HEX files for Arduboy in several ways, depending on whether you want to upload them to a physical device or run them in an emulator. To flash a HEX file to an Arduboy console, you can use tools like the Arduboy Uploader, avrdude, or the Arduino IDE. These tools send the compiled game data from your computer to the Arduboy via USB, writing it directly to the device’s memory so the game can run.
If you want to test or play a game without using a physical Arduboy, you can open the HEX file in an emulator like ProjectABE, which simulates Arduboy hardware on your computer or in a web browser. This option is helpful for developers who want to debug or preview a game, or for players who don’t have access to a device.