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

Difference between nrf8001 C and D

Hi,

I'm currently working on an Android 4.3 app who must communicate with a model of a specific device. This device contains a Bluetooth low energy chip nrf8001 and there was a lot of devices with a chip nrf8001 C who was sold.

For the moment, the application works good with a chip D and now i want to do the same for a C.

That's the problem because each time i connect to a C and trying to discover services, i received an error. I know that the revision C must be paired before trying to discover the services unlike the D, but the same error occure when the device is previously paired.

It is possible to connect a C revision and a D revision on the same app or the specifications are totally incompatible? And if there are compatible, what am i doing wrong and how can i correct this?

Thanks

Jiu Schaller

  • Which Android device are you using? Some devices has pairing issues when running Android 4.3.

  • Hi,

    When using a C version of the nRF8001 you should use the Setup format for the C Revision, when the D version of the nRF8001 supports both the Setup Format for D and C revision. So any code created for C should work on D. However any code for C may not work on D and must be explicitly tested. The Setup Format is selected in the nRFgo studio -> nRF8001 Configuration -> Device in the top of the configuration page.

    The Product Anomalies that exist for the C revision are fixed in the D revision. See the list of anomalies here

    The Product change notification between the C version and the D version is here.

    You should check the status code of the Command Response Events that you are receiving from the nRF8001, this will give you required guidance to fix the issues.

  • I'm using a Samsung Galaxy S4 with Android 4.3 and a Nexus 5 with Android 4.4.2. These two are relatively stable when I use them to communicate with a revision D. At first, i've worked with a Nexus 7 with Android 4.3 and with this device I had pairing issues (can't unpair, pairing request doesn't show), unstable bluetooth (randomly disconnecting) and a lot of headache ^^

  • I've done two tests on a C revision: One with a bluegiga dongle and one on a Samsung S4 with Android 4.3. Here is the result from the bluetooth chip using UTF-8 Tera Term Pro:

        Dongle:
            Ready
            Bonding...
            Connected: I00120, L0000, T01000, A050
            Bond OK
            Pipes open: 00, 02, 03, closed:
            Pipes open: 00, 02, 03, 04 closed:
            Pipes open: 00, 01, 02, 03, 04 closed:
            Data:?
            +000.000
            DC:+1
       
    
         Android:
            Ready
            Bonding...
            Connected: I00048, L0000, T07000, A100
            Bond OK
            Pipes open: 00, 02, 03, closed:
            Disconnected: Remote user terminated
    

    As we can see, the process is exactly the same for the two methods. Just for Android, I terminate the process after ten times trying to discover services but nothing happened during these. Perhaps C revision can't be connected on an Android phone.

    If someone has successfully connected a C revision to an Android phone using the build-in API, can this person send me the corresponding piece of code or just explain me how he manages the connection and the services discovery.

    Jiu

  • Hi,

    I think the issues that you are seeing are related to the C version PAN #4. I have attached a services.h file and a ublue_setup_gen.out.txt that should work for the Android 4.3 and the C version of nRF8001.

    You may need to reset your phone before testing it to remove any cached GATT handles.

    Let me know how it goes.

    services.h

    ublue_setup.gen.out.txt

Related