You are on page 1of 3

Please download the datasheet for the nRF8001 from here

http://www.nordicsemi.com/eng/Products/Bluetooth-R-low-energy/nRF8001
The nRFgo studio can be downloaded here
http://www.nordicsemi.com/eng/Products/2.4GHz-RF/nRFgo-
Studio/%28language%29/eng-GB#Downloads
You can order the nRF8001 dev kit and the nRFgo starter kit here
http://www.semiconductorstore.com/cart/pc/viewPrd.asp?idproduct=46585
Contact Nordic Technical support at
http://www.nordicsemi.com/eng/Support/Contact-Support-Team



How are authorization permissions implemented?
Authorization permissions are a yes/no type of permission.
This is implemented on a GATT server using a write request (on the
nRF8001 it is a Receive Ack pipe)
When data is received on this pipe, the application has to authorize
the write by responding with a ACK(maps to a write response)
or rejecting the write by sending a NACK and an error code (maps to
an error response).

How is Pipe different from Handle of attributes?
The pipe is the binding of Handle, Property and Attribute protocol
operation.
Example configuration:
Pipe 3 = (GATT server on nRF8001, Handle = 0x0009, Property = Notify,
Attribute protocol operation = Handle Value Notification)
This pipe sends data over the air as a Handle Value Notification


What kind of interface is available to the application?
A messaging interface called the ACI is available, this uses SPI and
the nRF8001 is a SPI slave. This interface is presented using an SDK to
the application on the application controller mcu.
The SDKs have been ported to various microcontroller platforms like
ARM, Arduino, PIC etc. Ask your micro controller vendor or contact Nordic
support for more information.

Can we dynamically add list of services we would like to access as a
client?
It is possible to add services by editing the setup data that is
generated and re-creating the CRC check for the setup data.
However we do not encourage developers to do so and this is not
supported.
The recommended way is to create multiple setup data for different
setups on the nRFgo studio and use them as required.
Contact Nordic support if you require more help on this.


Is there any way to set a generic client ( not specific to any service)?

No, A generic client is not supported. The client needs to be
designed as a client for a specific service.
It is possible change the client by getting UUID information from the
peer and then dynamically adding the services UUIDs to what is located on
the peer.
(However as stated earlier this is not encouraged)
Contact Nordic support if you require more help on this.

There are more optional characteristic descriptors on SIG website than
what is described in Tokyo Draft. Can you explain them?
The Tokyo draft was the last release of the specification for
members before the specification was accepted, so there have been changes
after the Tokyo draft.
More Characteristic descriptors will continue to be added as more
services (that need char. descriptors) are added.

External Report Reference
The external Report reference is used by the HID service to map
between the handle of a HID Report Characteristic to the Report ID and
Report Type of the USB HID report.

what is the difference between attribute and characteristic ?
All Attributes are of the form (Handle, UUID, Value)
The Characteristic is a type of Attribute.
The Characteristic in addition has Properties which control the
Attribute protocol operations that are possible on it.

N/A Can I setup a database of custom services ?
Yes, Use the nRFgo studio to create custom Services.
Remember, Custom services must use Vendor specific UUIDs.
You can create vendor specific UUIDs in nRFgo studio as well (you can
create them external to the nRFgo studio as well).
Click on nRF8001 Configuration on the right panel -> Then click GATT
setup on the top -> Edit 128bit UUIDs -> Click new to create a new vendor
specific UUID.

Will there be a file transfer profile?
Hard to say, but I hope so. In the interim we will work with Mohammad
to create a custom file transfer profile.

Can data in non-volatile memory be replaced later or it can only be
writen once only?
The nRF8001 has non-volatile memory for setup data, this is generated
in the services_lock.h file for a nRF8001 setup using the nRFgo studio.
The nRF8001 non-volatile memory is one-time-programmable so it can be
written only once.

When creating pipes, you dropped a service to local or remote. What is
the difference?"
When you drop a Service to the local it is added to local GATT Server
on the nRF8001 .
When you drop a service to the remote it is added to the local GATT
Client on the nRF8001, i.e. It will discover that Service on the peer
using GATT discovery procedures.

N/A Do you know if it's possible to run BT3.0 in a streaming mode
simult. with BLE on dual mode chips?
It is possible to run BR/EDR(2.1) streaming and BLE on dual mode
chips, However you need to ask your dual mode chip vendor on "BT3.0
streaming" and BTLE.

N/A Does the nRF8001 dev system include a compiler toolchain?
The nRF8001 SDK and dev kit requires the keil compiler to compile for
the 8051 that is included.
However you can connect the nRF8001 to an Arduino, ARM M3 or your
microcontroller and use those toolchains without any problems.
Contact Nordic support for more information.


"How would you handle synchronizing two 'client' devices? That is, keep
power use low but communicate with 'sister' devices. Time synchronization
for example."
Not clear on what you mean by 'client' devices. However Time
Synchronization is done between a phone and watch and it is possible to
achieve very low power consumption on this use case.
I.e .Run on a coincell battery for about 2 years.
The nRF8001 can also be used as a broadcaster and other devices can
be observers to get data.
Use the nRFgo current consumption calculator in the nRFgo studio
(nRF8001 Configuration -> Current consumption tab) to calculate the
current for your use case.

We have some profiles that has power saving modes that changes the
advertisement parameters while running. How to change the advertisement
parameters programmatically?
You can change the advertising interval in the ACI commands Connect,
Bond, Broadcast.
You can also send data in the advertising by setting a Broadcast
property for a Characteristic within a 16 bit Service UUID
and then using the OpenAdvPipe command and SetLocalData command on
the pipe to update the advertising data.
This advertising maps to sending the AD type Service Data and the
data associated with the Characteristic.

N/A What are descriptors?
Characteristic Descriptors are Attributes that are used to provide
more information to a Characteristic.
They are always placed under a Characteristic in the hierarchy of
Service -> Characteristic -> Characteristic Descriptor

You might also like