I’m using a BX3105 module to communicate with a LWM2M Server (Leshan), but maximum package size that I can send over UDP connection is 72 bytes ( binary is encode as \xx data, so every byte uses 3 characters inside AT command).
So, i set MTU and Max data size to broke large packets in fragments of 72B and are sent, lwm2m server received it, but there are no way to set frag flags inside IP header and every fragment is received as a ‘independent’ frame and the full frame package is not remounted on the server side.
My question is: this is the BX3105 behavior? Are there no way to send packages (frames) with size over 72Bytes?
Looks like BX3105 is restricted to applications with minimal frame sizes and is useless in real world application.
According to the documentation, there’s limitation with the data length. Using UDP, BX can only send 218 bytes of data (+KUDPSND Length—0–218).
Please, look close: Up to 218 ASCII characters, not 218 bytes. If real data is sent, every byte must be escaped with a ‘\’, so 218 is divided by 3, becomes 72.
<data> (Data to send over UDP connection)
• ASCII string
• Special characters (if present) entered as hex values (e.g. "\0d")
I followed the document and sent 218 ASCII printable characters and got 218 bytes. You’re probably using special characters as the document says. If possible, please share with me the data you sent so I can recheck.
Hello @jerdung, thanks for your answer. I am trying to connect to a LWM2M UDP server, so i consider every byte as special character, there’s no problem to me ‘classify’ every byte and escape just ‘special’ ones to increase data sent. As in your example, DNS server works to me too, it uses small pieces of data.
But my real issue is how to fragment larger packets and flag it as fragments to udp server side to be able to reassemble them.