FYI -- I had something similar happen to me today immediately after uploading an updated sketch. I followed the instructions in this thread, pressed reset on the CBT, saw the port show up (OS X here) and quickly uploaded.
Back in business, but I was sweating it there for a few.
I'm throwing away the Mini USB cable that came with my CBT. I suspect that's what caused the bad write.
I've learned quite a bit about Android gatt over the past two weeks.
The various callbacks are not threadsafe. You want to do as little work as possible in them. Leave the heavy lifting to your UI thread and a handler/runnable.
Another possibility, or additional complication, is the amount of data you are trying to transfer.
Blindly forwarding from a 100kbps or greater can connection to BTLE is akin to pushing a watermelon through a garden hose.
Initially try filtering on one specific register... After you ensure you have lughtweight, synchronized if necessary, gatt callbacks.
Made some progress tonight. I'm not sure why but logCommand() is very touchy. If I even reference &Serial1 it stops streaming. If I do not provide a heartbeat, (with the btRateLimit enabled) it won't stream.
If I remove btRateLimit completely and ensure I have a filter that removes the bulk of the noise, it works fine.
It took some serious debugging but I figured it out. For some reason (Android only maybe?) LE chokes on processing the SerialCommand::logCommand() activeSerial->write(COMMAND_OK) operation. I'm guessing 0xFF is screwing up the stack somehow.
Anyway I replaced
<code>if (activeSerial && Serial) activeSerial->write(COMMAND_OK);</code>
in SerialCommand.h's logCommand() function and I can now filter to my heart's content over BTLE. This was the final barrier to wrapping up my proof of concept. Now the real coding begins!
I recall reading you accept bug reports via github... will head over there now.
Thank you so much for the response! It's great to see that your project is still active. The convenience alone it adds is second to none... just need to work out a few more kinks.
With 0.4.4 I tried doing just that (setting an 03 filter) but while the filter worked fine when connected to USB I could never get it to return anything over BLE, ensuring that only Serial1 was connected (I noticed the interoperability between Serial and Serial1).
After spending some time reviewing all the sketch code I was left with the impression that it should just be working. I'll check out 0.4.5 today and report back.