> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/pg_system_diagnosis_and_troubleshooting/pg_boot_mode_selection.md).

# Boot Mode Selection

## Preface <a href="#sec_boot_mode_selection_preface" id="sec_boot_mode_selection_preface"></a>

This document is for programmers and users who want to understand the functionality of system Boot Mode on Engage devices.

## Overview <a href="#sec_boot_mode_selection_overview" id="sec_boot_mode_selection_overview"></a>

On Engage devices, since ADK 4.4, the way to select boot mode has changed. Previously, to select a mode, the user had to hold the 5 key (or recessed "sysmode" button on applicable devices) down on boot up, and release it at a certain time based on a prompt printed on the serial console of the device. But this method required a connection to the serial console. The new boot mode selection described below eliminates the reliance on the serial console since some units may not have externally accessible serial ports.

## Boot mode selection on Engage (starting with ADK 4.4) <a href="#sec_boot_mode_selection" id="sec_boot_mode_selection"></a>

In the new procedure, you still use the 5 key (or recessed (sysmode) button), but visual feedback is provided by a LED. In the case of Engage P200/P400 line of devices, this LED is the keypad's backlight LED. It may vary on other devices. The procedure is as follows:

* Hold the 5 key (or recessed button) on boot up. At this point the LED will be switched on.
* When the LED goes off, after 8 seconds, release the 5 key (or recessed button).
* The device is now in a state of mode selection. Every few seconds the mode number will be represented by a series of LED flashes. The first LED flash is always a very short flash. This short flash will be followed by 0 or longer flashes. The number of longer flashes represents the mode that the device will boot in when the mode selection state ends. i.e. 0 long flashes = mode 0, 1 long flash = mode 1 and so on.
* To advance the modes simply press the 5 key (or recessed button) for a short period (<1.5 secs). On releasing the 5 key (or recessed button), the mode will be represented by the LED again (as explained in 3). If the 5 key (or recessed button) is not pressed the mode will be represented on the LED every 3 seconds.
* To boot the device in the current mode, hold the 5 key (or recessed button) for > 1.5 secs. The LED will turn on, and the device will boot in the selected mode, after the key is released.

### Mode List <a href="#subsec_boot_mode_selection_mode_list" id="subsec_boot_mode_selection_mode_list"></a>

The "Appearance" column below uses '.' for the initial short ( 50 ms) pulse and '-' for the longer (500 ms) pulse.

| Mode | Appearance | Behaviour                |
| ---- | ---------- | ------------------------ |
| 0    | .          | Boot as normal (default) |
| 1    | . -        | Boot from usb/mmc card   |
| 2    | . - -      | Force debug on           |
| 3    | . - - -    | N/A                      |
| 4    | . - - - -  | Rescue Menu              |

### LED Indicator per Platform <a href="#subsec_boot_mode_selection_led_indicator_per_platform" id="subsec_boot_mode_selection_led_indicator_per_platform"></a>

The LED is the indicator used for boot mode selection. This LED indicator can change between different hardware variants and flashes could be seen as:

* Keypad backlight
* Screen backlight
* White bootup LED (e.g. e285)
* Top MSR LED (e.g. M400)

The LED is lit at a maximum brightness for all flashes. In some terminals, this maximum brightness may be difficult to see in strong ambient light. In such cases, shielding of the indicator may be necessary to see the flashes. The repetition of the mode indication flashes helps in these cases as different positions can be tried without fear of missing a short time window.

## Boot mode selection on Engage via Serial <a href="#sec_boot_mode_selection_engage_serial" id="sec_boot_mode_selection_engage_serial"></a>

To access Boot mode via Serial:

* Connect the device via COM1 to a terminal emulator like PuTTY (115200, 8N1)
* Power off the device
* Press and hold key '5' on the terminal
* Connect power cable to the device and monitor the output in the terminal window
* Message "Release key now to initiate mode selection" will be displayed on the window.
* When the key '5' is released, the message "Mode selection sequence initiated. Perform a short press to change mode. Perform a long press to boot in mode 0" is displayed on the window
* Perform a short press on '5' to change the mode, you will see that the mode number will change.
* Perform a long press on '5' to boot in the selected mode.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/readme/pg_system_diagnosis_and_troubleshooting/pg_boot_mode_selection.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
