Improving throughput of card.binary.put transfers

Hi!

We are making fairly heavy use of card.binary.put, typically involving 32k chunks, filling up the buffer as needed, with a current cutoff around 100k, although this could be larger.

We’re seeing a throughput of around 900 bytes/s, over AUX serial running at 230kbaud using Notecard firmware 8.1.3.17044, and also recently tested on 11.1.1.17494, and note-arduino 1.8.2.

Some of this is delay is from the 250ms spacing between JSON requests, but the majority seems to be either transfer to notecard, or notecard processing the binary data.

Before I dig in to find whether the serial comms or notecard processing is the bottleneck, do you have any expected throughput figures for NoteBinaryStoreTransmit()?

Do you have any suggestions on how throughput could be increased?

Thanks!

Hi @devElert,

I’m sorry that this question fell through the cracks earlier this year! It’s a valid question and I’d start by making sure your payload goes through NoteBinaryStoreTransmit() (the SDK binary helpers) and NOT a hand-rolled card.binary.put call. Switching to the helper should remove that 250 ms throttle on the payload and increase your throughput substantially.

Thanks,
Rob