Author Topic: Simblee GZLL performs worse than RFduino GZLL  (Read 108 times)

mjkuwp94

  • RFduino Newbie
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Simblee GZLL performs worse than RFduino GZLL
« on: March 18, 2017, 06:18:24 AM »
Hello,

Previously I had excellent results with GZLL on RFduino modules, typically sending 2 to 4 byte packets each 8.3 ms.

This year I made a new system using Simblee and found some gaps in my data.  There are periodically chunks of 5 or 6 data packets in a row (approximately 60ms lost time) that do not arrive and thus do not receive an ack.  I have a packet counter and check the ack against this counter.

I have the same code, switchable between RFduino and Simblee modules with #define statements.  On the RFduino the communication is very reliable unless I push the packet rate to each 3ms, and even then I just lose the occasional single packet.

NOTE: I have tested this with Simblee dev boards as the transmitter and receiver.  I did this to confirm that my hardware was not the root cause.  Also, I am not using any Bluetooth or Simblee for Mobile.

QUESTIONS:

1. What can be happening to interrupt transmission of GZLL packets?  difficult question of course!

2. Can the Simblee modules be programmed with an image that would convert them to be RFduino?  That would be preferred if the root cause of this difference is the library.

3. I tried to compile a new GZLL library using the batch file in the sources but it fails because many files required by the batch program are missing.  Could these be made available?

4. What are the differences between GZLL on Simblee and GZLL on RFduino?  Maybe I can adjust the registers to accommodate the difference.

5. Is Simblee still an active project or is it cancelled or abandoned?

Thanks in advance for any help or advice!

Mark

tolson

  • Global Moderator
  • *****
  • Posts: 806
  • Karma: +18/-0
    • View Profile
    • Thomas Olson Consulting
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #1 on: March 18, 2017, 08:46:52 AM »
Hi Mark,
All good questions people want to know.

I forwarded your post to the RF Digital team.

I wish we could burn in whatever version we want. Simblee, RFduino, Nordic, our own. etc. at will, and go back.

I think the Simblee hardware is absolutely the best smallest complete solution as far as the Nordics nRF51 is concerned. And boocoo more Simblee modules could be sold if it wasn't closed source... just because it is the best smallest complete nRF51 solution.
Ultimately it would be nice if we had access to 1). source code to fix things faster. 2) ability to reload RFduino/Simblee bootloader/firmware.
« Last Edit: March 22, 2017, 08:06:16 AM by RFD_Nelson »

mjkuwp94

  • RFduino Newbie
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #2 on: March 18, 2017, 09:01:57 AM »
Thanks! for your prompt response and assistance.

The last thing I did is that I had my Simblee sending data to an RFduino GaZeLL Dongle.    The results are the same so I think the problem is on the transmitter side.

I am trying to confirm as quickly as I can whether the Simblee hardware itself could be the cause of transmission issues or the particular silicon version or most likely the specific libraries.  I need to determine if a re-spin of my hardware is required.  After that it may be a matter of choosing the next toolchain.  As a worst case I need to code my software to work around the lost packets but obviously that is not ideal at all. 

Of course the RFduino and Simblee systems have been great to a point but as you may have implied the closed nature is a huge detraction.  My next choices will be based on how well I can stand alone and be bare metal (not mbed, for example).
« Last Edit: March 18, 2017, 10:55:56 AM by mjkuwp94 »

tolson

  • Global Moderator
  • *****
  • Posts: 806
  • Karma: +18/-0
    • View Profile
    • Thomas Olson Consulting
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #3 on: March 18, 2017, 09:22:47 AM »
Of course the RFduino and Simblee systems have been great to a point but as you may have implied the closed nature is a huge detraction.  My next choices will be based on how well I can stand alone and be bare metal (not mbed, for example).

If you are comfortable with MBED development you can use the MBED compiler and it's advanced methods to obtain a .HEX file that you can then load onto the Simblee using the JTAG(SWD) interface and blow away the Simblee bootloader in the process.  I don't know if MBED nRF51 support includes the Nordic Gazell protocol library though.

RFD_Nelson

  • RFduino Team
  • *****
  • Posts: 19
  • Karma: +0/-0
    • View Profile
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #4 on: March 22, 2017, 08:07:22 AM »
Hi mjkuwp94,

Thanks for your interest in Simblee!

To help you further, can you post a copy of your sketch or send it to us at: support@rfdigital.com?

We'd be happy to take a look and help you out!

mjkuwp94

  • RFduino Newbie
  • *
  • Posts: 16
  • Karma: +0/-0
    • View Profile
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #5 on: March 25, 2017, 06:10:50 AM »
thank you!

I took some time and pared the sketches down toward the minimum for the demo.  Each sketch can be changed between Simblee and RFduino by changing line 3.  There is a line to change to SimbleeCOM but I didn't test that code.  I don't understand what SimbleeCOM is so I am hesitant to go down that rabbit hole.

The attached .zip file has some example output in addition to the two sketch files and a helper script written in Python.  The Python code isn't necessary but it was helpful to me in making the results just a bit more clear on the receiving end.

It is enough to change just the Device (switch between Simblee/RFduino) and leave the Host the same but to validate things I changed board types at both ends.

The Device code runs for 20 seconds and then stops on purpose. This length of time is sufficient to notice the differences.  Small packets are sent each 8ms and there is a counter from 0 to 31 used to track the 'ack' of each specific packet.  With either setup there can be moments when the communication time varies enough that it appears to be a lost packet according to the time between receiving them.  However with the RFduino no packets are lost as indicated by the counter.  When the Simblee is sending as the Device there are several instances of time gaps in receipt corresponding to 6 missing packets. 

Summary:
Simblee sending - 6 instances of 6 lost packets in a row within 20 seconds (about 50ms gap)
RFduino sending - jitter but no lost packets.


thanks,
Mark


PS
I am using bone stock RFdigital dev boards, 2 Simblee boards (one is the large one with all pins), 2 RFduino boards and 2 USB serial converter boards.

tolson

  • Global Moderator
  • *****
  • Posts: 806
  • Karma: +18/-0
    • View Profile
    • Thomas Olson Consulting
Re: Simblee GZLL performs worse than RFduino GZLL
« Reply #6 on: March 25, 2017, 09:32:33 AM »

 I don't understand what SimbleeCOM is so I am hesitant to go down that rabbit hole.

I am using bone stock RFdigital dev boards, 2 Simblee boards (one is the large one with all pins), 2 RFduino boards and 2 USB serial converter boards.

SimbleeCOM is a RF Digital propriatary modification of  BLE protocol that only works on the Simlbee firmware and not supported on RFduino firmware or other BLE devices. It is not applicable to a mixed Simblee/RFduino/Competitor BLE environment, nor a GZLL project per se.

So whatever is going on with GZLL Simblee vs RFduino needs to be figured out.