
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

