Setting up Datapump for Binary Transfer using iOS

Hello:

I am doing some testing using my PCB that is UART wired to a DA14531MOD as preamble to testing a custom iOS app. I'm testing using Smartconsole (SC) at the moment because there's trouble getting BINARY mode working on the iOS app, but using Smartconsole I am not seeing this.

Using my MCU I send this to the DA14531: send (receive)

AT+  (AT+OK)

ATE (ATE=0OK)

I then put the MCU into a loop waiting for data from the UART...it is looking for +BINREQ

Then I tap the smartconsole connect to the device, and in the window I enter AT+BINREQ

The MCU captures the +BINREQ, breaks out of the loop

The MCU sends AT+BINREQACK, then goes into the next receive state waiting for an arbitrary number of characters (pick 25)

The smartconsole then goes into binary mode

I enter 25 (or whatever) chars in the send console, the MCU breaks out of rx loop and then sends a string back - I see this in the receive window. ALL GOOD.

See below - terminal window from MCU

Power on to BLE
Sent to BLE: AT+
String: AT+OK
Status = 1
Sent to BLE: ATE=0
String: ATE=0OK
Status = 1
Wait on connect from  app...  (connects, SC sends BINREQ)
Sent AT+BINREQACK

OK
abcdefghijklmnopqrstuv (this is what I sent from SC)

Sent 16001ce4a0772c30020000040000b700b300aff5b300   (I see this in SC receive window)

So my question is...why can I not get this to work in the iOS app? I am replicating the above exactly! 

In the iOS app, I send AT+, and I see OK. Then I send AT+BINREQ, the MCU sends back AT+BINREQACK, the iOS app window shows OK. The app tries to send data, but I never see it in the MCU circular buffer. So there must be some difference! Why can the iOS app not send data over the link? Is there an "unseen" step in the Renesas SC app that is in the background that lets it send data?

Thanks for any help anyone can provide.

Gary

NB -  An update. I have changed the iOS. Now instead of sending AT+BINREQ, I send AT+BINREQACK. I then send the data string, and it is received on the remote/MCU side! Wow, can someone explain what I am seeing? Why can I not send with the right order of commands from iOS ?  send - BINREQ, remote sends back BINREQACK.