Search by Tags

Production Programming for iMX6 Modules

Applicable for

Compare with Revision
Subscribe for this article updates

Those instructions apply to release 1.1 beta 4 of the Windows CE images and BSP. Some of the features described here may not work as described in this document on previous releases.

Collecting the required files

To install Windows Embedded Compact 7 or 2013 on your module you need the following elements:

  • recovery mode tools
  • eboot bootloader
  • operating system
  • configuration block
  • registry entries for customization (optional)
  • splash screen (optional)
  • additional drivers and applications

By default modules come with Linux pre-installed, so during production programming, you have to switch from Linux to Windows CE, this switch operation does not impact module-unique settings, like MAC address or production information, so the exact same steps can be performed on each module, as long as you prepared the right files.

Recovery mode tools

Those tools are part of our standard OS image downloads, available here.
In the zip file you'll find a folder named "recovery" that contains all the files you need to perform recovery-mode operations.


Bootloader is provided as part of our standard images and BSPs and can be downloaded here.
If you built your own bootloader, customizing it with our bootloader kit (available as paid additional tool), at the end of the build process, you will have the same eboot.imx file provided with our downloadables images and BSP.
You'll have to write eboot.imx on a SD card using the Win32 Disk Imager tool.

  • download the tool here:
  • launch it and select the eboot.imx file you want to write
  • select the drive letter matching your SD card reader in the “Device” box (be careful, the devices are not filtered and you may overwrite a regular hard drive by mistake!)
  • select “write” and wait until the write process is completed
  • remove and re-insert the SD card, your PC will ask you to format it
  • format the card as FAT32

Windows CE Image

Our images are provided as compressed binaries with the .nbx file name extension.
You can use nk7.nbx if you plan to use the module with Windows Embedded Compact 7 or nk8.nbx if you plan to use Windows Embedded Compact 2013.
If you build your own image you'll have a file named nk.bin, this can also be flashed using the same procedure we will describe in the next steps.
Take your file (nbx or bin format) and copy it to the root partition of your SD card.

Config block settings

Config block contains all the information required by the bootloader to initialize the module, show splash screen (if needed) and load and start the operating system. Different settings can be changed by the set command of the bootloader console.
Config block parameters are documented here (some may not apply to i.MX6).
Once you have configured the config block in the correct way you can save it using the update tool, as documented here.
This will generate a .cfg file containing those settings.

Splash screen

Our standard OS images already contain a splash screen.
You can generate a custom one using our splash screen generation tool (paid tool,available on request) and this can be then flashed on each module during production programming.

Registry Settings

You can use the registry editor that is integrated in our images or part of our binary BSP to export the registry settings you made to customize your image.
Changing display resolution, configuring IP address etc. are operations that could be performed using registry customization.
You'll have one or more text files, containing the registry entries you want to change. You can keep them as separate files or, to simplify installation and maintenance, consolidate them in a single file.

Applications, drivers and additional files

You can prepare your own application and any additional files you want to copy to the module, considering that the internal storage will be mapped as \FlashDisk folder by the operating system.
You can prepare all the contents in a subfolder named FlashDisk to remap the right organization of those files. If you need to transfer files to different folders (ex \Windows) at boot, you can use the autocopy feature and place files in a folder named "Autocopy" on Flashdisk, forcing those files to be copied on every boot.

Prepare storage with autocopy and autorun

You can copy the Flashdisk folder you created in the previous step inside a folder named Autocopy on the a storage media device(it can be the same SD where you put bootloader and OS image, if you use different storage media, this must be formatted as FAT or exFAT). In this way the autocopy feature (documented autocopy) can be used to set-up application and other files on first boot. If you need to import config block, splash screen or registry settings you'll need to use the autorun feature described here.
Create a folder named Autorun in the root folder of your storage device where you can create shortcuts (text files with .lnk extension) to execute the commands required to import the different settings.

Importing registry files

To import registry files you can run regedit.exe, passing the name of the registry file you want to import on the command line. So a shortcut pointing to:

Regedit.exe "\Sd card\settings.reg"

will import the contents of the file named settings.reg on the SD card.
Unfortunately, at the moment registry editor always shows a message when import has been completed. This will be fixed in a future release.

Importing config block

Config block can be imported by running update tool.
If you saved your settings as described before you can restore them by launching (again via shortcut in autorun folder if you need fully automated setup):

update.exe /u configblock,raw,<configuration file path>

Flashing splash screen

The procedure to flash a new splash screen is similar to the one used for config block, since it also uses update tool.

update.exe /u splashscreen,raw,<configuration file path>

Flashing a new module

To flash a new module you need:

  • Serial connection to UARTA (115200bps, 8 data bits, 1 stop bit, no parity, no flow control)
  • SD card with bootloader, image and additional files
  • USB connection from PC to device using USB-client port

If your custom carrier board does not provide access to UART A or does not support USB client (as on Viola carrier board with default mount options) you may need to use a Colibri or Apalis EVB to do production programming and then move the module to your own carrier board for final testing.
This document will describe the steps and command you have to perform.
Serial commands can be automated using scripting tools on PC to perform a completely unattended installation.

Entering recovery mode

The modules come with Linux pre-installed. You can enter recovery mode from the u-boot console. To enter it press space in the first second after module power-up or reset.
From the console you can type:

bmode usb

This will put the module in recovery mode. On Colibri-based devices you should ensure that no SD card is in SD slot at this point, otherwise recovery mode will not work. If your module does not boot at all because u-boot has been corrupted, then you can enter recovery mode using hardware method described here.

Flashing bootloader

To flash the bootloader you must run 'imx6recovery.bat' from the recovery folder of the OS image zip file.
The application will download recovery mode loader that, in turn, will wait for an SD card (in slot 1 for Apalis) and then flash the bootloader and create the correct settings depending on the module you are using.
At the end of this phase (reported with a message on the serial console) you'll have to power cycle your board. Reset will not work.

Flashing OS Image and preparing internal storage

In this step you'll have to enter bootloader console by pressing space in the first 5 seconds after boot and then pressing 'x'. In the boot console you have to execute the following commands:

flashimage <sd slot> <filename>

Where is 0 for colibri modules and 1 for Apalis ones and filenames is your OS image file, previously copied to the root folder of your SD card. At this point you can boot the OS image by entering:


or just by rebooting your board using:


or hardware reset/power cycle

Import registry, splash screen and configblock and copy application and other files

If you prepared your storage media (SD card or USB thumbdrive) as described in previous points, just having it inserted at boot will copy files and execute configuration steps, using the auto-copy and auto-run features.
With auto-run you may also execute some test applications to check that your hardware is behaving as expected, but this may require a reboot in between (after copy and registry import) and so a second mass-storage device with just your testing application inside autorun folder.
As an alternative you can copy the test application to \Flashdisk\autorun and have it executed at next reboot and then move itself to a different folder when testing has been completed.