How to improve Particle round-trip times?

Am based in Melbourne, Australia.

We have (finally!) completed our hardware design work on a P1 based terminal device that interacts with a human.

So, it is not a classic IOT device in that there is an impatient human waiting for a response to transactions in real-time.

What we are after is an improvement in the round-trip time between:

  • the P1 device and Particle
  • Particle webhook and our Melbourne based service

ie Device <–> Particle <–> Cloud Service

You can envisage that long round trips have a significant impact on the user experience; is indicating that we are getting round trip times of circa 300 to 350 ms.

Is there any way to improve these times?

For example, can/does the Particle cloud operate from the AWS Asiapac region?

The Coap round-trip time is not controllable AFAIK.

What is within your control is UI design and in particular giving immediate feedback to a user that they have pressed a button or initiated a process that then could be responded to immediately or may take a while or may never respond?

1 Like

Thanks @armor, the UI design does provide immediate feedback.

It is the comms that we need to hasten as the application/human is waiting on a response from our service. Here are the routes that a single transaction takes:

Australia (Device) --txn request (coap)–> US (Particle)–> (https) Australia (Our Service) --txn response (https) --> US (Particle) (coap) -->Australia (Device)

The picture would look completely different if we either had:

  • HTTPS (TLS) library that could fit in within our application
  • Direct access to internal COAP comms infrastructure

I’m not sure how much free memory you have in your application, but have you looked at TlsTcpClient? It’s quite a memory hog unfortunately, but there are configuration settings to slim it down somewhat.

1 Like

@picsil, I admit to not having looked at TlsTcpClient because my suspicion is that I won’t have the RAM nor FLASH to handle.

That said, I will give it a go and report back!

My lack of memory is why I am wondering if it was possible to use the COAP comms functionality for my own purposes?