1) When attempting to send more than a few calls to BTLEserial.print() or BTLEserial.write() in a short period of time, I get error messages indicating the system has "run out of credits". Interspersing calls to BTLEserial.pollACI() does not help. Delays, up to 1 second long, do not help. From looking at the library, I see where credits are deducted. I am unclear on how credits are regained. Obviously, the code after the case statement "ACI_EVT_DATA_CREDIT" adds credits... but when is this called?
The problem can be reproduced with the Adafruit supplied echoDemo program. Copy this line
Code: Select all
BTLEserial.write(sendbuffer, sendbuffersize);
Code: Select all
Writing out to BTLE: 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38 0x39 0x30 0x31 0x32 0x33 0x34 0x35 0x36 0x37 0x38
ACI Evt Pipe Error: Pipe #:3 Pipe Error Code: 0x91
2) When resetting the Arduino (while keeping power on), approximately 1/3 of the time, when calling BTELserial.init(), the library indicates an error and puts the Arduino in a "while (1)" loop. Another reset generally clears the problem... but it really shouldn't do this at all. Again, this is AFTER a reset.
Code: Select all
Cmd Queue Full
Cmd Queue Full
Cmd Queue Full
Error in ACI Setup
Cmd Queue Full
Cmd Queue Full
Cmd Queue Full
Error in ACI Setup
Cmd Queue Full
Cmd Queue Full
Cmd Queue Full
Error in ACI Setup
ACI Command 6
Evt Cmd respone: Error. Arduino is in an while(1); loop
And the request: The library does not currently implement println; in fact, it really doesn't properly implement print (many types are missing). Can you please update this portion of the library?
Thanks,
Danal