For the complete documentation index, see llms.txt. This page is also available as Markdown.
Page cover

Appendix A Troubleshooting

To troubleshoot runtime issues with custom software, use standard XCode debugging methods and tools.

Set Date and Time Extended Command 0x030C

This command is used to set the device’s date and time before calling startTransaction().

Devices with a battery-backed real time clock have the date and time set by the manufacturer, so this command may not need to be used after that. Devices that do not have a battery-backed real time clock must use this command frequently because (a) the clock must be set before the device can process EMV transactions, and (b) the host software must use this command every time the device is power cycled or reset.

Offset

Field Name

Value

0

Type of MAC

MAC algorithm designator

0x00 = ISO 9797 MAC Algorithm 3, Padding Method 1.

1..16

Device Serial Number

16 Bytes Device Serial Number.

The host can set this field to all zeroes.

17

Month

Value from 0x01..0x0C

18

Day

Value from 0x01..0x1F (less depending on month)

19

Hour

Value from 0x00..0x17

20

Minute

Value from 0x00..0x3B

21

Second

Value from 0x00..0x3B

22

Unused

Value from 0x00..0x06

23

Year

Value from 0x00 (2008)..0x44 (2076) Example:

Year 2023 = 15 (0x0F) = 20023 – 2008

24..27

MAC

MAC computed over all preceding fields except Type of MAC. The host can set this field to all zeroes.

Example:

For 5:00 PM January 01, 2023 030C001800000000000000000000000000000000000101110000000F

NSString *DateTime = 
@“030C001800000000000000000000000000000000000101110000000F”; 
[self.mtSCRALib sendExtendedCommandSync:DateTime];

Set MSR Head Always On 0x58

The host uses this command to directly control power to the magnetic stripe reader head inside the device, to manage device power consumption and battery life. The host must power up the head before a cardholder swipes a magnetic stripe card outside the scope of an EMV transaction.

When the state is set to Always On, the head will always be powered.

When the state is set to Off When Idle, the head will be off when the device is idle. In this state, the device will not be able to read magnetic stripe cards outside the scope of EMV transactions without first turning the head on.

If the host sends startTransaction() the device will automatically power up the head, then power it down when the EMV transaction terminates.

Offset

Field Name

Value

0

State

One byte specifying what the state should be: 0x00 = Off When Idle

0x01 = Always On

Result codes: 0x00 = Success

Example Request (Hex):

Last updated