cancel
Showing results for 
Search instead for 
Did you mean: 

Unable to send a file between two STEVAL-SP1ML915 boards at high speeds.

allantommathew
Associate II
Posted on September 25, 2017 at 14:27

Hi, Madam/Sir,

We have designed a prototype board based on STM32F767VG. It is configured to work for a couple of seconds (take a picture, send it to a transceiver) and go to sleep (so that it consumes the least power). The transceiver used was SP1-ML915. I have bought a couple of the evaluation board STEVAL-SP1ML915 for testing the speed with which it can transfer information.

I was able to communicate between the two evaluation modules with the default settings (after changing the source and destination address) by sending two strings. But I'm not able to send big data, such as an image file, at high speeds, as promised by ST. At high speeds, the packets gets dropped and not the whole information is received at the receiver.

Default Settings:

0690X00000603yPQAQ.jpg

Final Settings:

0690X00000603rsQAA.jpg

Task: To send a big file (a jpeg image file with size ranging from 20-40Kb) from the transmitter to the receiver.

I would be happy to share more technical details about the project. I would be obliged if someone could shed light on what I am missing here.

Thank You.

With Regards,

Allan Tom Mathew.

#sp1ml915 #spirit1 #sp1ml #steval-sp1ml915
6 REPLIES 6
Posted on September 26, 2017 at 17:45

Hello !

I don't have any experience with this RF module (I use custom made with cores from silabs)

I  can observe that radio settings,isn't well adjusted.

For RF settings

Modulation 2FSK and freq deviation 20K and data rate 125000bps  and Rx filter 100KHz are incombatible and can't establish an acceptable RFlink.

On 2FSK modulation BitRate must be  <= 2*Deviation   and  Rx filter bandwidth must be  at least  2*Deviation + BitRate (not including freq. offsets, freq. shiftings from temperature variations, etc.)

And in general, the higher the RX Bandwidth, the lower the sensitivity and the maximum link distance.

Other Modulations such GMSK have better spectrum usage characteristics and can icrease rate or distance of link (have different settings)

For Packet settings

Some software must  read  the information registers to evaluate continously LQI,  PER counting of packets, etc .(to know at least the reasons of a broken link)

It is necessary to implement a higher(than PHY and MAC)  Transportation Layer that handles: packet serialization, RX packet acknowedgements(or NACKs), packet retransmissions and any other necessary functionality for a robust link.

You may use also the CRC filter functionality for packet rejection and request retransmission.

Address filters is a necessity not to have 'interfference' from other similar devices.

Regards

vf

Posted on September 26, 2017 at 20:00

Use a protocol that permits error detection and recovery. Jamming 40KB over a wireless link and hoping for end-to-end delivery is perhaps over optimistic.

Try something as simple as X-MODEM

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
allantommathew
Associate II
Posted on September 29, 2017 at 09:48

Hi,

Thank you both for the replies. To be honest I have no idea about the communication part of electronics. I tried reading the theory part for more clarity but I couldn't relate all the terms from the theory to the ones here. And yes, it was indeed over optimistic to hope that all the data transmitted will be received so I'll take the suggestion to build a system with a  ACK and NACK protocol. 

I'm sorry to say but I still couldn't come up with proper settings for the modules to communicate with each other. According to the formulas I came up with numbers which I have programmed. I know it might be silly but I couldn't make it communicate at all. I think the numbers add up for the formula but I'm not sure what mistake I have made. I have a screenshot of one of the settings.

0690X00000603ydQAA.jpg

I would be obliged if you could point out the mistake.

Thank You.

With Regards,

Allan Tom Mathew.

AvaTar
Lead
Posted on September 29, 2017 at 10:03

I would be obliged if you could point out the mistake.

I suspect you will not find it in the shown settings.

Rather I guess the firmware you are using is sub-optimal, i.e. can't keep up with higher data rates.

Single commands are 'short bursts', but larger files usually come as 'stream', and overwhelm simple buffer designs.

Either you design a more efficient reception handling, or use a handshake mechanism (hardware or software) to suspend transmissions while busy.

Posted on September 29, 2017 at 10:15

HI

meyer.frank

‌,

Thank you for your quick reply.

Rather I guess the firmware you are using is sub-optimal

I didn't understand what you meant by this. Are you talking about the firmwareprogrammed in the STEVAL-SP1-ML915? I will have it updated to the latest version, if it is not.

Single commands are 'short bursts', but larger files usually come as 'stream', and overwhelm simple buffer designs.

Yes, exactly. But with the above settings I couldn't even send a single character over the modules which must be a calculation mistake from my side. I need to do this step before I start designingsomething for a bigger data. I was able to send characters with the first two settings but that too not at high speeds (about 250,000bps).

Either you design a more efficient reception handling, or use a handshake mechanism (hardware or software) to suspend transmissions while busy.

This is my plan, to design a protocol to send a big file but before that Ineed to make sure that the initial settings are optimized for the best performance.

Thank You.

With Regards,

Allan Tom Mathew.

Posted on September 29, 2017 at 11:44

I didn't understand what you meant by this. Are you talking about the firmware programmed in the STEVAL-SP1-ML915? I will have it updated to the latest version, if it is not.

Yes, the firmware on the 'IC2'.

I initially assumed e freely programmable STM32 on that module, but this not the case.

The imprint on the board states 'For evaluation only', so don't expect too much from it ...

I think you rather want the SP1ML-915 module directly connected to a STM32F767 board for evaluation.

The Eval module ( STEVAL-SP1-ML915) most probably does not give you a measure of maximal performance.