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

Best starting point for a nrf51822 device that is a central slave?

I'm making a device that occasionally (once per minute) needs to upload a sample to an iPhone app.

I'm thinking that to keep power consumption to an absolute minimum, I'll have the nrf51822 sleep most of the time, and wake up to push the new sample to the iPhone.

So it would seem that the best approach would be to have my iPhone be a master peripheral, waiting for a connection from my device, and have my device be a slave central, that wakes up, re-connects to the iPhone briefly to unload its data and goes back to sleep.

Intuitively that would allow me to shut off the radio most of the time, thus keeping power consumption to a minimum.

So, two questions:

  1. Am I wrong? Is there a better way to arrange this communication and still keep power consumption low?
  2. What's the best starting point from the SDK samples?

(Assume I have the iPhone side of this well-in-hand, which may be a bit of an overstatement but I'm focusing on how to build the device-side code now)

-Jim

  • On further investigation, this question is moot as the s110 appears to not support the central role. It looks like the s120 is planned to have this capability.

    I would still like to know if the concept is sound, though. Would a central role on the 51822 make a difference, or is there another way to manage power with my device as a peripheral?

  • You're right that the S110 don't support the Central role, but for your application, I think you'd be much better off in all ways by letting your device being a Peripheral device. This is a less current consuming role, since you just send advertisement packages, and let the other device do the relatively expensive scanning.

    Your device would still be in sleep most of the time, but when waking up, you'd start sending advertisement packages for some time. If there is an iOS device nearby, it can listen for those and create a connection, and when a connection is made, you can transfer your data.

    You might have use in looking at these questions:

Related