To find the latest driver for your computer we recommend running our Free Driver Scan. TI CC2540 USB CDC Serial Port (COM3) - Driver Download. Vendor: Texas Instruments. Blueduino Rev2-Arduino compatible pius BLE CC2540 (Seeed 317030031) The BlueDuino Rev2 is an Arduino compatible microcontroller development board based on the ATmega32U4 IC with Bluetooth 4.0. Bluetooth Low Energy (BLE), built in. Installing Drivers for an Arduino Nano in Windows. January 30, 2015 If you are attempting to use an Arduino Nano on a Windows machine and having no luck finding drivers automatically, chances are it is due to a counterfeit FTDI chip which unfortunately does not work with the automatic driver finding functionality in Windows. PCB Design Jobs Driver Development Jobs PLC Programming Jobs PIC Programming Jobs Hardware Design Jobs Telecommunications Engineering Jobs Altium Designer Jobs DesignSpark Jobs Eagle Jobs Embedded Linux Jobs Bluetooth Jobs FreeRTOS Jobs Arduino Jobs CC2540 Jobs CC2541 Jobs CC1310 Jobs CC2530 Jobs CC2640 Jobs Embedded C Jobs Raspberry Pi Jobs. Install the CC2540 driver, then follow this selection path in Arduino IDE, Tools - Board Arduino. Jvc Gr-Dvl505 Drivers 2020.

Here comes the second member in the DFRobot Bluno family, the Bluno Nano. Came in the size of a gum, the Bluno Nano is perfect for BLE projects with limited space or weight. You may also check the Bluetooth microcontroller selection guide to get more information.

Everything is getting smart now: wristbands and watches monitor your daily behaviors and become social; phone-controlled camera add-ons move and take shots as you like; smart gardens grow virtually in your iPad and sharing is made easy... The Bluetooth Low Energy technology has made it easy and achievable. It is exciting to see more and more smart gadgets poping out, but, isn't building own smart device and solving your own problems even cooler?

DFRobot's Bluno family is the first of its kind in integrating BT 4.0(BLE) module into 'Arduino Uno', making it an ideal prototyping platform for developers to go wireless. You will be able to develop your own smart bracelet, smart pedometer, and more. Through the low-power Bluetooth 4.0 technology, real-time low energy communication can be made really easy.

Bluno Nano also integrates a TI CC2540 BT 4.0 chip with the 'Arduino UNO' development board. It allows wireless programming via BLE, supports Bluetooth HID, supports AT command to config the BLE, and you can upgrade BLE firmware easily. Bluno is also compatible with all Arduino Uno pins which means any project made with Uno can directly go wireless! Whatsmore, we also developed the App for the Bluno (both Android and IOS), and they are completely open-source so that you can modify and develop your own hardware-software platform.

Note: For expanding I/O ports, the Bluno Nano is compatible with all Arduino-Nano-compatible expansion shields. If you want to use Bluno Nano via other expansion shields, some extra wirings will be needed.

Neopixel LED Ring & Strip Arduino controlled by Bluetooth from Android or iPhone

Version patch
  • v1.3 - Improve the design of antenna to support up to 50m BLE communication by two Bluno nano

In this tutorial, we'll learn how to set up BLE GATT services to make a thermometer using Intel's Arduino 101

  • 43,079 views
  • 0 comments
  • 26 respects

Components and supplies

Arduino 101
×1
LED (generic)
×1
SparkFun Pushbutton switch 12mm
×1

Apps and online services

About this project

Introduction

This project covers what bluetooth low energy is and how to use it with the Arduino 101. We'll go over services, characteristics, and how to control inputs and outputs on the Arduino via the LightBlue app on our phone.

Fun fact: bluetooth gets its name from a viking king, Harold Bluetooth, and the bluetooth logo is a combination of two runes.

What is Bluetooth?

A Bluetooth product, like a headset or watch, contains a tiny computer chip with a Bluetooth radio and software that makes it easy to connect to other bluetooth devices. When two Bluetooth devices want to talk to each other, they need to pair. Because bluetooth can't connect at long distances, bluetooth networks are called 'pico-nets' (pico means tiny).

As you might have guessed, there are different types of Bluetooth. The kind you use to stream high quality audio or video (for instance, in your wireless headphones) is called BR/EDR (basic rate/enhanced data rate). BR/EDR and Bluetooth Low Energy (BLE) are fundamentally different. Bluetooth with low energy functionality is built on an entirely new development framework using Generic Attributes, or GATT. Today, we're exploring BLE, since that's what Arduino 101 and most IoT devices use.

Control a Button and an LED from your phone via BLE

  • Attach a button and an LED to Arduino pins 4 and 13 respectively (see diagram)
  • Connect the Arduino 101 to your computer
  • Upload the sketch 'Arduino 101 Button LED' to your Arduino 101.
  • Install either LightBlue for iOS or nRF Control Panel for Android on your phone. I'll be using screenshots from LightBlue on my iphone, but nRF is easy to figure out!
  • Turn bluetooth on on your phone.
  • When you open the app, you'll probably see a device called 'ARDUINO 101-XXXX.' Click on it.

Once you're connected, you can see the advertisement data, including its Local Name (ButtonLED gets cut short to ButtonLE since the General Advertising Profile uses the Shortened Local Name, which only allows 8 characters). You can also see the service UUIDs and characteristic UUIDs (in this case they're the same). UUIDs are the randomly generated 128-bit characters that identify a unique Bluetooth service. All this data together is called the GAP, or General Advertising Profile.

The profile is created within the setup on lines 25-28 of the sketch:

You can think of your Arduino 101, or any BLE Peripheral, as a newspaper publisher, say, the New York Times. The Arduino 101 prints 'news', called a service, every now and then. Readers or Central Devices like your phone can subscribe to the news.

Just as the New York Times prints both the Times and The Boston Globe, the Arduino 101 can have multiple services. Each service, in turn, can have multiple characteristics. These are like the different sections in the newspaper.

Services and characteristics are defined in the sketch here:

In our case, we have an LED characteristic and a button characteristic.

Driver

On your phone, you can choose which characteristics you wish to subscribe to via a mechanism called notify. If you're subscribed to a characteristic, then every time the value of that characteristic changes, you get a notification. In this case, the characteristic you can subcribe to is whether or not our button was pressed.

Click on the UUID that has 'Read Notify' properties and try pressing the button a few times

:

Do you see the value changing from 0x00 to 0x01?

There's another property, called 'indicate,' which is the same as notify except that your reader sends back a response to let the peripheral know that they got the notification. We won't be using it in this sketch, but some reader devices require their peripherals to use indicate rather than notify, so it's good to be aware of it.

Characteristics can also be 'write' accessible. To extend the New York Times metaphor, this is kind of like letters to the editor, where the subscriber can send something to the publication. In this case, we're going to write a value to our light to tell it to turn on.

You can turn it to on by sending any value other than zero, and turn it back off by sending zero:

Rad! So now you can receive data from your peripheral (the Arduino 101) on your reader (your phone), as well as turn an LED off and on.

You also learned about read, write, notify and indicate properties, and how to combine them in characteristics to create services.

But guess what? You won't always need to create your own custom services or characteristics, because any service you can imagine has already been defined as a GATT service. Remember that GATT stands for General Attributes? Yeah, I have no idea how they came up with that acronym either. Anyway, GATT is the layer that defines services and characteristics and enables read/write/notify/indicate operations on them. Check out these long lists of predefined services and characteristics.

Let's set up a temperature monitor to test out one of these predefined services.

Setting up the temperature monitor

  • Plug your grove temperature sensor into A0 of your grove shield attached ro your Arduino 101 as shown in 'the circuit' above.
  • Note: I used grove parts to simplify this, but you can easily use another temperature sensor - just be sure to include the appropriate library in your code!
  • Open the BLE_Thermometer_blank sketch

I've left some of the values out of this sketch and given them placeholders (written in CAPS).

Arduino Uno Driver Windows

Each service and each characteristic that is predefined in the General Attributes has an ID. We'll need to find the documentation for the temperature service, choose the characteristics that we need, and find their IDs.

Go to the Gatt specifications page on bluetooth.com. Find the Health Thermometer Service.

On the service page, each characteristic is noted as being mandatory or optional. In the Temperature service, the mandatory one is called 'Measurement.'

Click on the blue text, and you'll be taken to the Temperature Measurement page. Here you can find the ID for the Measurement Characteristic. Add this to your code.

Now your code should look more like the BLE_Thermometer_final sketch. Upload it to your Arduino and run it! Connect your phone to your arduino with the Light Blue app. Hey look, we're getting data! But why does it say 0x0016? It's the temperature in hexadecimal.

In the Light Blue app, there's a list of data types that you can use. Hexadecimal is the default, but you can choose binary, bytes, integers, and signed integers, and you can choose big endian or little endian and how many bytes to include. We could spend all day playing with these, but we'll leave the discussion of data types for another day:

Unfortunately, the data in the LightBlue app isn't available to me in decimal, so I need to convert it to get the temperature in thei format that I'm used to. I pull out my handy hexadecimal converter and convert 0x0016 to decimal. I get 22. Hey look! The temperature showing in the serial monitor is also 22!

Nice work! Hopefully you understand slightly better how bluetooth communication is structured. Need an extra challenge? Try converting the temperature from Celcius to Farenheit.

Further reading:

Examples from the Arduino 101 page

Definitely try these out!

Code

BLE_Thermometer

Custom parts and enclosures

BLE Thermometer

Ti Cc2540 Dongle Driver

This contains two files; BLE_Thermometer_blank has blank values for you to fill out to practice finding BLE Characteristic and Service numbers.

Schematics

Author

Monica Houston
Cc2540 driver arduino programming
  • 9 projects
  • 301 followers
Ti cc2540 dongle driver

Published on

March 8, 2017
Write a comment

Cc2540 Driver Arduino

Cc2540

Usb Cc2540 Hid

Members who respect this project

and 18 others

See similar projects

Ti Cc2540

you might like

Table of contents

Write a comment