This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OAD Service not Available

I modified the keyfobdemo project to use OAD using the OAD guide.  It appears to have been downloaded correctly as my project is running.  However when I connect using the sensortag app (I changed the device name so it connects) and try to do a firmware update I get a message saying that the OAD Service is not available on this device.  I have also tried using the Multitool app and I get an error saying that says scanning of services failed. 

Is this an issue with the app or my implementation of OAD?  

I can provide code snippets of relevant functions on request. 

  • Hello David,

    You shouldn't have to change the device name for it to connect.  Leave it as the KeyFob and you should be able to see all of its profiles and characteristics.  I believe the SensorTag App, MultiTool App and all the other TI iOS Apps will look for the device name and characteristics associated with the device.

    Test and confirm that the the iOS apps recognize and display the characteristics of the actual device based on the actual name.  This may solve the OAD Service problem.  I know that it works for the SimplePeripheral.

    Thanks,

  • For the SensorTag app to recognize it must be named SensorTag.  However even with the Multitool app with the default name it still will not recognize the services and gives the same error. 

  • Perhaps they made a change to the App when they did the upgrade.  I have only tried it with SimplePeripheral and it shows up as SimplePeripheral in the SensorTag App.  

    I would have to try loading the KeyFob to see.  I have the old version of the SensorTag App and the new version of MultiTool. 

    Thanks,

  • Compile the SimplePeripheral OAD image App and send it to the SensorTag using the SensorTag App.  Use the simplePeripheral App as you guide for modifying the KeyFob App.  In other words put the KeyFob code in there.

    Thanks,

  • I programmed one of my devices with the BIM and SimplePeripheral Image A and B.  This time the Multitool app connected and I could perform a OAD.  I will need to investigate what differences my keyfobdemo app and the basic SimplePeripheral app have.  Do you have any ideas what could be the issue?   

  • Without looking at your modified KeyFobDemo code (and I really don't want to :-)), I wouldn't be able to tell you.

    You now know that the SimplePeripheral_OAD works as described.  You have two options:

    1. Accept the fact that your KeyFob ensemble doesn't work and simply copy and paste the parts of the KeyFob code or any other code that you want into simplePeripheral_OAD or,

    2. Go through the the simplePeripheral_OAD code until you fully understand what it is doing.

    The choice is yours!  For me, I don't need to know how it works as long as I can get my code to work in it. :-)

    Thanks,

  • Unfortunately I have made to many changes to do option 1.  So I tried to go through option 2 but I find no differences.  

    I would like to know how TI's phone apps find services and how the services are advertised.  I think it is in the function  VOID OADTarget_AddService(); but I am implementing it the same as SimplePeripheral.  The phone also finds the other services like the Key service and that function appears the same.  

    Any insight would be appreciated as I think the problem lies in the discovery of the services.  

  • I figured out the issue.  One of the GATT attribute AddService functions causes a READ_NOT_PERMITTED when using the function GATT_DiscoverAllPrimaryServices and then all further services can not be found.  I have not found the cause of it though.  I will make a new thread for it.