This is the SparkFun BLE Mate 2, an efficient and reliable Bluetooth 4.0 development board. The BLE Mate 2 closely resembles a breakout board, in that nearly every pin on the on-board BC118 module is made available to access. This board is actually a close cousin to our Gold and Silver Bluetooth Mates and functions in a very similar way but, as the name implies, operates as Bluetooth Low Energy instead of Bluetooth 2.0.
The BLE Mate 2 offers a six-pin header on the end opposite the BC118 module which is used as a “host” serial pinout, the same as that on the FTDI Basic boards, which allows the BLE Mate 2 to be connected directly to any device with a matching header, such as the SparkFun Arduino Pro and Pro Mini. Coupled with the FTDI SmartBasic, you can even develop your code without having to swap cables! The board has built-in level translation, so it can be used with boards of higher voltage than the 3.3V default used by the BC118.
Each BLE Mate 2 offers BC118 module that is capable of accepting and transmitting via the UART at 9600bps (default) with a frequency band of 2,402 MHz to 2,480 MHz.
The SparkFun BLE Mate 2 only supports Bluetooth 4.0; it won’t connect to older devices. It’s also worth noting that BLE does not support a Serial Port Protocol as older versions of Bluetooth did; that makes interoperability between BLE dongles, devices, and modules harder than with Bluetooth Classic.
This skill defines how difficult the soldering is on a particular product. It might be a couple simple solder joints, or require special reflow tools.
Skill Level: Noob - Some basic soldering is required, but it is limited to a just a few pins, basic through-hole soldering, and couple (if any) polarized components. A basic soldering iron is all you should need.
See all skill levels
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Rookie - You may be required to know a bit more about the component, such as orientation, or how to hook it up, in addition to power requirements. You will need to understand polarized components.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 1 ratings:
3 of 3 found this helpful:
Convenient board for checking out the BC118 features. Only complaint is that the UART connection points do not match the standard FTDI USB cable (TTL-232R-3V3). There are two sets of 6 holes in the board, but they are wired in parallel. It would be much better if one set matched the FTDI cable and the other matched FTDI basic board.
Hello,
I am using two BLE Mate 2 modules to send data over a serial terminals. To test the modules I hooked them up to a PC with FTDI Basic Modules and connected them as serial terminals using TeraTerm. The configuration with the Melody smart commands worked fine too. Both are set into transparent mode.
Here is my problem: When I send data from Peripheral to Central, it appears on the other terminal right away, but when I send data from Central to Peripheral, there is a huge delay (sometimes more than a second) between the input from the keyboard and the output on the terminal. Is there anything I can do to fix that?
Thanks for your help! David
I think that's due to the sleep time of the peripheral device. It's only going to check in with the central device periodically as a power saving measure, and that means the data transfer from central to peripheral has to wait until the peripheral connects and looks for data.
It's worth reading up on how BLE works, and how it saves power. It's rather too broad a topic to go into here, but it's worth mentioning that, if you've worked with Bluetooth before, BLE is different enough that a lot of what you've learned isn't really applicable.
That would be unfortunate, since I'm trying to send serial data in both directions in a matter of milliseconds. And yes, BLE is still kind of confusing for me... I'm gonna look into that. If I find a way to disable/work around the sleep time, I'll post it here. Thanks for your help so far!
Ok, so i managed to find the problem. Its due to the way data exchange works in BLE. While the Peripheral can send data whenever it wants, the Central can only attempt to check for data and send data in certain intervals. The slave is also able to ignore these calls for a specified number of attempts. The parameters you need to configure are the connection parameters (Table 3 of the Melody Smart Manual under CONP=).
If you want to know more about this matter, I recommend reading this article:
Hi,
please help me, is there any working cordova plugin for this module?
Thanks, Rey
I got one of these with ding and dent and no problems whatsoever, very happy.
Been using the BLE mate, and love it so far. However, is it possible to have multiple tablets connect to it at once? Essentially, want to have the same data sent to multiple tablets.
I don't think it is. BLE by nature is a host-client model. broadcast tcp/in via wifi might be a solution.
It appears that if you want to write a custom iOS that communicates with this device you have to BUY BlueCreation's Melody Smart library in include in your app. For a tinkerer that just wants to write some personal apps for various projects... that really sucks. I've found that BlueCreation's MelodySmart app is really not very good. It seems to be a proprietary platform for BlueCreation's Melody Smart product.
What I really want is a BLE module I can do my own profile with (or at least the standard profiles). I want it to be able to talk 'standards' to devices, not just a vendor proprietary way. This one appears to only do its own profile from my casual reading of it. Assuming that's true (please tell if I'm wrong here!), is there any chance of a most flexible module down the road that isn't a disaster to work with?
It's a virtual certainty. We know people want it, finding a good solution is the hard part.
Here are a few recommendations for the next rev: 1) Breakout the SPI_PCM (aka SPI_PIO) pin - You need to set this pin at High - if you want to use PIO 5-8 as SPI pins, or Low if you want to use them for their PIO functionality. The PIO functionality is especially important if you want to run the module in transparent mode, and want a way to get out of it. Something that we have to hack together to get going on the current breakout 2) Ability to configure whether you want the AIO pins connected to a level shifter - For some odd reason the AIO pins work in the 1.35 V domain, which makes it a pain if you want to connect them to a digital input pin on a 3.3v/5v microcontroller. For example you can use AIO2 to figure out if the module is conencted, but need to connect it to an Analog pin to do so. Small issue, but can be a pain point for us working on microcontrollers without free ADC pins
Hi there. I have the BLE Mate 2 without a Smart basic. I have uploaded the example code to the Arduino Leonardo. The Serial monitor just keeps saying Module reset error. I tried deleting the smart basic code and the module responded, but when it started scanning it came up with another type of error. I am trying to connect to a MacBook pro 13 inch model. I am new to this so an anyone help? I searched all over the web and only found Sparkfun's hookup guide. I have not gotten a response from tech support yet also.
Can this device be used to communicate directly with an Arduino Duemilanove via an Android phone without any other hardware (e.g., the FTDI Basic)? I don't need to load the Arduino over the link, just receive sensor data from a running program.
I connected the board just out of the box to an Arduino Mega and seems the chip does not send data to an Android phone. Has anyone experience this behavior. The onReceived(final String data) event never gets fired on the android side. No even using the app that comes in the zip.
What i want is I need to send my sensor data to my phone. Do I need a custom app for the same ?? And I tried using melody smart android and it gets crashed every time when i connect to the BLE mate.Help me out please.
Has anyone been able to get this device to connect to a MacBook? Anything outside of the default settings will not even connect to an Android tablet. I am not sure what I am doing wrong but I would really like to get this to connect to my MacBook.
what about the size of it?
Based on the Eagle file: 1.95" x 1" (49.53mm x 25.4mm). This includes the 0.2" antenna overhang.
I able to get this module to connect to a pc and mobile phones, but am trying to access the sensor data from an accelerometer connected to a pro-mini which connects with this module. Do I need to somehow construct a custom service? Am having no luck trying in transparent mode also. Am just trying to transfer a few bytes , perhaps just once an hour (using notifications)....any help much appreciated
Yes, you need a custom service to communicate with it.
BLE does not implement a simple data-passing profile, like the SPP profile in BT Classic. The result is a hodge-podge of different solutions by different vendors, and each one requires that your app know how to handle that profile.
That is, in fact, the main reason we've dallied on BLE so long- it really isn't a very good solution for most DIY stuff.
could you give us more insight on creating custom service profile and implement the same.???
No worries, it'll be a challenge! Thanks for the reply.
Has anyone been able to do an over-the-air-update (OTAU) of the firmware by using the Melody Smart app? I've tried with an iPhone and an Android phone without luck. I'm able to find the unit, with the app, but when I tap to connect, the following happens in this order: 1) The app says "Connecting to <BLE unit>" 2) Immediately, Android gives a notification that says "Disconnected from Device" 3) The app says "Connected, discovering services..." and gets hung up on this prompt every time. The services are never presented.
I've had good luck on an iPod Touch across many modules.
What are the DTR and CTS used for ? from looking at the schematic they don't seem to be used for anything. I am trying to connect it to an Arduino directly and trying to figure out where to connect those pins
DTR and CTS are not, by default, used for anything or connected to anything. It's possible to enable hardware handshaking over the UART, but that's a pretty advanced topic.
You can leave those pins unconnected.
Is it possible to use this in central mode to connect to a Lightblue bean and read gyroscopic data? I want to use the bean in a band on my wrist and read the xyz angles remotely on another Arduino via Bluetooth to control stuff. This device supports central ode - I'm just curious if anyone has ever connected a Lightblue device to it.
Thanks!
I'm going to guess and say no. Without knowing exactly what the profile the Bean uses looks like, you'll need some kind of fairly arduous device app code to access it.
I want to transfer files from an android app to an arduino with a ble mate 2. Is it possible to use transparent mode on android or is that only for bc118 to bc118 transfers? Using non-transparent mode it goes around 200 bytes per second, and 400 bytes per second if you change the baud rate from 9600 to 57.6k. Looking to transfer files much faster than this!
For the application I have in mind, I need to a BLE chip to be able to simultaneously communicate with 4-6 beacons to get RSSI values. Is it possible with this ? I am new to BLE and I wasn't able to find information on this here.
I've been playing with the device to use it for the same purpose. Unfortunately, you cannot retrieve all of the basic BLE advertisement information that is available from all BLE devices.
For instance, I used the example code provided by Sparkfun to return the results of a scan with 3 Estimote beacons in range. It came back with BT Address F0498EEAAE97 for one of the beacons. However, a scan using my iPhone came up with a 32 character UUID, 9 character ConcreteUUID, and 22 character Device Information. The Device Information field was 97AEEA8E 49F0B697 AEEA8E. You can see the BT Address from the BLE Mate 2 is a weird mixup of a portion of the Device Information field.
As far as I can tell you cannot grab any more information because all you get is the SCN results. If someone can figure out how to get the basic BLE advertisement info then let me know. Otherwise, you won't be able to get beacon major/minor info and a whole UUID.
It seems this this was design to be a peripheral and be controlled by other devices, or to be a central and only find and connect to other BC118s.
I managed to get RSSI values and they seem to make sense. If you edit line 98 in connections.cpp to remove the substring method, the full data recieved by the mate is displayed to the computer. You can interpret it according to http://bluecreation.com/userfiles/Melody-Smart-V2_6_0-UserManual-Rev_E(1).pdf page 16. However it does not display UIUD, major or minor information. I am not too sure how to get it to display more information. Perhaps the BC118 firmware has to be edited?
Ought to be possible. You'll get RSSI data from any advertising units in your vicinity, so you can just turn on advertising and start scanning.
Is it possible to connect a smartblutooth-enabled smartphone to this board? How would it be done ? I mean just some basic stuff, connecting and sending some bytes.
It is possible; the hookup guide links to example code from BlueCreation.
seriously rookie question (no flames please): can I have two of these talking to eachother without the need for an arduino? am looking at having one with an ultrasonic sensor, if the sensor values = set range - then send data to other blemate and turn on led.
Yes, you can have two of these talking to each other with no other hardware involved. You can also have a hardware pin on one mirroring the hardware pin on the other. What you can't do is have any kind of logic going on there, and comparing a sensor value to a threshold is definitely out of the question.
There are a million ways or more to solve this problem; the easiest is probably to use an Arduino Pro or Pro Mini to run the math on the signal from the sensor and then trip the pin that's mirrored at the other end. Nearly as easy is to use some kind of analog comparator IC to turn the level data into a binary signal.
Addition questions to this issue: 1) The BLE Mate 2 can be set as CENTRAL or as PERIPHERAL ? 2) Is the BLE Mate 2 (in central mode) able to see iBeacons ? (Instead of using iOs or Android) 3) Would it be possible with two BLE Mate 2 to measure/get the distance beween them? (like iBeacon -> iPhone, but with 2 BLE Mates instead of Beacon and Phone...)
Thanks for help & info.
Guys forgive me, im very new to this. The example shows an arduino hooked up tot he serial port, so I assume the arduino transmits out the Bluetooth. But, is it possible to create an android app that will communicate with this board via blue tooth and toggle the gpio's on this board to control things (via Bluetooth). Is there such an example code ?
Check out the "Going Further" page on the hookup guide. There's example code for both Android and iOS linked there.
You can toggle the IO on the module directly via an app, but you'll gain a lot by sending serial commands to e.g. an Arduino and having it do the hardware level stuff.
the code on github shows it acting in a central role (i.e. searching for devices). any idea if it can connect to an Android device, an if so, can it get an RSSI? anyone know?
If you look just a little harder at the Github example. you'll see that it includes example code for both central and peripheral modes.
What about the Cypress PSoc4 BLE? for 3$ you get 32bit Arm M0 MCU, Analog+Digital FPGA and BLE, of course....
Thanks so much for pointing out the Cypress PSoc 4 BLE! Just what I've been looking for: a low-cost (for high-volume applications) BLE platform, super low power and on ARM Cortex-M0! Seems much better than TI's CC2541, which has a 8051 core! We'll see. Ordering the Cypress kit today...
What about the HM-11 or HM-10. I am using them in a project that is coming soon. I just switched to the HM-11 as it is smaller. I have a Android app working with it using JSON over serial.
Surely, that's a chip price not a breakout board price?
That's chip only. The Pioneer kit is $49.
It also doesn't come with agency approval, making it less-than-useful for people who want a drop-in for a commercial product. There's also some beauty in having the entire software stack from application interface to radio taken care of for you, completely.
That said, we will likely be offering some more "hackable" BLE products in the future, very possibly including the Cypress option.
Last week I've attended the Cypress seminar here in Israel and got a Pioneer kit with a Proc and a Psoc BLE. The first one is essentially a pure BLE while the other one comes with all the PSOC4 goodies up to 256KB ROM! The connection to IOS or Android app is super easy. The Bluetooth radio part is almost all included inside the chip while other require some sophisticated AMN.
No command reference? How do I talk to this module?
Also, the datasheet does not indicate if this module can communicate with another BLE slave device or if it's only intended to act as a sensor node communicating back to a host computer. I'm thinking the missing command reference might clear that up.
This looks to be the command reference:
http://bluecreation.com/userfiles/Melody-Smart-V2_6_0-UserManual-Rev_E(1).pdf
There are several others in the directory, but this seems to be the one the broken link in the Hookup Guide is trying to point to.
I fixed the link in the hookup guide and we'll get the link added here as well.
Go to the manufacturer site. Command reference is there. BTW, this module is similar to Microchip's RN4020...
I asked the question because I can't depend on the manufacturer to keep their documentation online. When they release an update to their module, their documentation will disappear. On the other hand, if SFE hosts the documentation, then it's available for everyone in the community.
Yes I could have gone to the manufacturer website, but this is, in my opinion, better for everyone.
Thus far, BlueCreation has been very good about keeping their documentation online, and keeping the older docs available. We'll see about hosting it locally, though, just in case.
Could this be used to simulate an iBeacon?
I'm pretty sure it could, iBeacon is a really simple system that just sends advertisement packets, nothing else on the transmitter side. The phone/app side is what does all the work, apps register for the system event of the device seeing such an advertisement packet, then acts accordingly.
But, but... where is BLE Mate 1? What have you done with her!?!
Sorry...she didn't make it....terrible story...
Um, it really is a story of woe, best related over a long dinner of sushi and lots of sake.