This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Shortest preamble of a packet, nRF51 can receive.

What is a minimal length of preamble, such that nRF51 is able to safely receive a packet with? Can it be made (via some magic registers) to be as small as 4 bits? Then it would be possible to implement software support for classic Bluetooth on nRF51 chip. Of course all that pretty hardware for packet encoding/decoding etc would be useless, but anyway it would be a nice possibility.

Parents
  • @Matthias Ringwald (The reply turned out to be too long for a comment)

    1. To some extent. My initial goals of implementing parts of Bluetooth stack weren't met, but I've been able to exchange data with PC through Broadcom 2045A USB dongle using Bluetooth Host Controller Interface on PC side.
    2. I haven't got any equipment to say that for sure but there are some indirect evidences. E g I've tried to include patterns of up to few tens of alternating zeroes and ones into nRF51 address, and it was still able to receive packets. I think it is simply because the BCM2045A toggles bits during transmitter ramp up thus effectively making a long preamble.
    3. Yes, I found a device where it didn't work because of the short preamble. Eventually and it worked too: its sync pattern (based on the Bluetooth address) contained 8 alternating bits somewhere in the middle and those could be used as a preamble. Though the nRF51 requires 9 alternating bits at the start of packet, sometimes with some level of noise it could accept and 8.

    It is still possible to work with any classic Bluetooth device with some limitations by selecting a Bluetooth address in a special way so that the sync pattern starts with 5 alternating bits. The nRF51 must then always initiate a connection and be a master, i e no page scan, no inquiry in any role. The only tough place here is receiving paging responses. But because they do not bear any information, with some limited level of safety they can be detected using RSSI.

  • Thanks for your interest.

    I can't now say how long it took to get it work, perhaps two weeks. Sure it won't take you much if you are familiar with the corresponding part(s) of the Bluetooth spec and do everything right from the first attempt. That's not my case :). Concerning code I wouldn't publish it in its current form but I may send it to you via email, just give me your email address in a private message. Nevertheless I have to forewarn you the code was intended for testing only and is ugly, contains no comments, contains some C++ metaprogramming templates and assembly. You will have to struggle through it keeping Bluetooth spec in one hand, nRF51 reference in another, and the Cortex-M0 reference in the third. Feel free to ask if you are in a dead end.

Reply
  • Thanks for your interest.

    I can't now say how long it took to get it work, perhaps two weeks. Sure it won't take you much if you are familiar with the corresponding part(s) of the Bluetooth spec and do everything right from the first attempt. That's not my case :). Concerning code I wouldn't publish it in its current form but I may send it to you via email, just give me your email address in a private message. Nevertheless I have to forewarn you the code was intended for testing only and is ugly, contains no comments, contains some C++ metaprogramming templates and assembly. You will have to struggle through it keeping Bluetooth spec in one hand, nRF51 reference in another, and the Cortex-M0 reference in the third. Feel free to ask if you are in a dead end.

Children
No Data
Related