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

Need to add small (under 12x10mm) BLE module to handheld device to be able to periodically download data from the device to smartphone, handheld device can provide its data via I2C pins.

Hello, we have a handheld device with Microchip (ex. Atmega) Microcontroller that essentially monitors and records different environmental conditions and stores them them into memory.  In the nutshell it is just a temperature log device. We want to add functionality to be able to download its stored data via BLE to smartphone phone or tablet.  Data size is not large, about 1kByte per session.

We reserved PCB space for BLE module, space is about 10x15mm and also reserved 3.3V power and I2C pins to be able to communicate with BLE device.

Can you please suggest the best solution for this problem, what module to buy, and what is the best(easiest) tool to write program for it so that our handheld device can push data to it via I2C protocol and then the BLE device will further sent that data to smartphone or perhaps another BLE enabled device.

  • BLE modules are essentially a powerful microcontrollers with RF functionality

    Not all modules allow you to program the chip(s) inside them.

    As ever, you need to study the documentation carefully to understand exactly what you are - and are not - getting.

    with next projects I will enforce to build product around BLE module

    No, don't just blindly do that! You need to think about the specific requirements of each case and how best to meet them.

  • The way to get started, as noted, is with a Dev Kit.

  • Hi All, thanks again for support, more questions:

    So I purchased nrf51 DK board and did few quick tests just to see what is does, etc. I am currently using mBed for its simplicity and using some examples from repository and so far so good. Now what I want to archive seems doable so let me share couple things the way I see them and also couple questions, maybe someone can help a little.

    1. I am thinking to make simple program that will be running on nrf51 and configured it to be I2C slave, so when our Master device has some data to export it will simply push it to nrf51 via I2C protocol in small data packets. 

    To make this possible It looks like I2C library for nrf51 already exist and I just need to configure code properly and have couple functions that will process data from Master device when it pushed in.

    2. Subsequently when nrf51 received data from Master device via I2C protocol it will then send it wirelessly to connected BLE device such as smartphone or tablet and it looks like libraries for that also already exist and I just need to configure code so that it sends my variable (or array) to the BLE device

    Seems like code like that would not be too complex, maybe just couple hundred lines or I am oversimplifying things? What do you think?

    3. Now the question: what is the most reliable way to maintain connection between our device and remote BLE device, do I need to advertise data or connect them with GATT protocol, I just want to make sure I am planning in right direction so to speak, I want to make sure that data exchange between our device and remote device is brief and fast with as less delay as possible. Our data packets are not large, perhaps 20 - 30 bites per batch.

    4. And another question, what is the best place to find and hire freelancer that can help with writing program like that? Is there like a website with database of nrf51 coders that are available to help? 

    Thank you in advance.

  • Hello Alex,  the SDK has examples for #1 and many examples of #2.  For a bulletproof product you're slightly oversimplifying in that you've not talked about how you'd want to handle link security issues such as who can connect to what and whether or not you'll be encrypting, how to deal with firmware updates if at all, the I2C clock rate, the nominal and max throughput, power budgeting, what do do on link loss and link recovery, commissioning system installations, and possibly more.

    For #3 a GAP peripheral designed to connect to one central at a time will advertise only when it's not connected. Nordic's softdevice, properly configured, will serve its own GATT and talk to the other side's GATT server. The beauty of the softdevice arrangement is that if you write cooperative functions you'll be able to concentrate on the business processes and they'll run alongside the softdevice.

    Don't know about #4   but I'm curious too  Best Regards, Howard

  •  Is there like a website with database of nrf51 coders that are available to help? 

    That would be a great idea.

    Where are you based?

Related