[riot-devel] gcoap blockwise transfer

Ken Bannister kb2ma at runbox.com
Fri May 10 00:21:21 CEST 2019

Sorry to hear you're having issues. It will be easier to track this 
problem in a GitHub issue, so I created one [1]. Let's move the 
discussion there.


[1] https://github.com/kb2ma/RIOT/issues/29

On 5/9/19 11:37 AM, Ashim Asharaph wrote:
> Dear Ken
> So I decided to use the gcoap blockwise transfer from PR #11057 with a 
> GET request. On native it works fine. When testing on real hardware 
> using two samr21-xpro boards with one running the gnrc _border_router 
> example, the block transfer only completes successfully about 50% of 
> the time with a 50kB file and 128 byte packets. The application says 
> "gcoap: timeout for msg ID xxxxx". The time at which the timeout 
> occurs seems random at any point during the blockwise transfer.
> The final plan is to integrate the gcoap with wakaama and use both 
> together for an OTA firmware update. When the integrated version is 
> used, the success rate is about 5%. Are there any parameters or code 
> that could be tweaked on either the RIOT application or on the 
> Californium file server to improve the success rate? What could be 
> causing the issue or how can I try to determine the problem?
> Kind regards
> Ashim Asharaph
> >>> Ken Bannister <kb2ma at runbox.com> 05/02/19 4:45 PM >>>
> [The e-mail server of the sender could not be verified (SPF Record)]
> Hi Ashim and welcome to RIOT!
> As you say, we have two CoAP tools -- nanocoap and gcoap. Here are 
> your options.
> In the latest release, 2019.04, nanocoap has server-based block 
> capabilities. So, it would work if Californium acted as a client and 
> PUT/POSTed the file contents to your nanocoap server. See the 
> nanocoap_server example in the source repository and documentation at 
> Modules > Networking > Nanocoap.
> There also are PRs for full client/server block capabilities. In this 
> case it's probably easier to use gcoap because it's fully documented, 
> but a nanocoap client would work, too. See #11057 for the final PR in 
> the series. If you build the source documentation (make doc), you will 
> find detailed instructions and links to examples. See the Modules > 
> Networking > Gcoap topic.
> I am the author of the PR series, and would appreciate you testing it 
> out. We are actively (if slowly) reviewing and merging these PRs.
> Ken
> On 5/2/19 2:05 PM, Ashim Asharaph wrote:
>     Dear RIOT developers
>     I'm sending a GET request from gcoap running on native to a
>     californium server hosting a file. The file is about 56kB in size.
>     I can receive the file correctly (multiple blocks) when using
>     Californium Copper. I can only receive one 512 byte block of data
>     through gcoap. I have tried changing GCOAP_PDU_BUF_SIZE but this
>     only affects whether I can receive the one block. How do I receive
>     multiple blocks? Has coap blockwise transfer been implemented in
>     gcoap? Is nanocoap a suitable alternative for receiving the file?
>     Kind regards
>     Ashim Asharaph
>     _______________________________________________devel mailing listdevel at riot-os.orghttps://lists.riot-os.org/mailman/listinfo/devel
> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20190509/b0f0faff/attachment.html>

More information about the devel mailing list