Mac App Send Data Over Bluetooth

Mac App Send Data Over Bluetooth Average ratng: 3,1/5 1642 reviews

Dec 26, 2016  Bluetooth Tutorial - Sending/Receiving Data with Bluetooth (Part 1/4) In this tutorial I show you how to send/receive data via Bluetooth. You will need two devices to test this app.

  1. Mac App Send Data Over Bluetooth App

Looking to learn howBluetooth Low Energy works in iOS & Swift 3? Well look no further, we've got what you've been waiting for! This guide covers the basics on making your own Bluetooth Low Energy (BLE) app using the Core Bluetooth Framework.

You'll need a basic understanding of Swift and iOS development, but no prior experience with Bluetooth Low Energy is required. The example code can be applied to both iPhone and iPad users running the current version of IOS.

In this tutorial, I'll be using the Adafruit Feather 32u4 Bluefruit LE to send and receive data.

Before you begin, know that the Simulator in Xcode isn't capable of using Bluetooth LE services. You'll need to follow along using your iPhone or iPad running the most current version of iOS (Version 10+).

Since you'll need to test your app using an iOS device, you'll also need an Apple Developer membership (please note that free membershipenrollment is fine for following along with this guide). If you need help getting started as an iOS developer, check out our guide covering how to enroll to the Apple Developer program and gain membership:

Before we start..

  • Make sure your Xcode IDE is up-to-date to version 8.2.1 or newer.
  • While in Xcode make sure the development target is 10.2. or higher.
  • You can download the Arduino IDE from the main website here if you haven't already.

Parts Required

You don't need much to start this project, but you'll need these:

This is the Adafruit Feather 32u4 Bluefruit - our take on an 'all-in-one' Arduino-compatible + Bluetooth Low Energy with built in USB and battery charging. Its an Adafruit Feather 32u4 with a BTLE module, ready to rock!

This is the Adafruit Feather M0 with a Bluefruit module.I didn't use this board for this project, but you can follow along with this as well.

This here is your standard A to micro-B USB cable, for USB 1.1 or 2.0. You'll need this to connect your Adafruit Feather to your laptop.

You'll also need a Mac running the Xcode IDE and an Apple Developer account (check out the iOS Development Guide for more info on how to do this)

Download project from Github

To best visualize how things work, you'll want to follow along with the app provided in this guide. The Basic Chat app sends and receives data using the Feather Bluefruit's UART connection. You can learn more about UARTs here.

FIrst, go to the download page for the project. Once on the page, click on the 'Clone or download' button.

A small window will pop up beneath the 'Clone or Download' button. Click the Download Zip button in the pop-up.

Once the file is downloaded, click on the Basic Chat.xcodeproj app and it will open up the project in Xcode.

Once we have the project open, select your iOS device's scheme in Xcode.

Now just press the Run button to test the app on your iOS device.

If all goes well, the Basic Chat app will run on your iOS device and you'll be able to use the app as a reference while you explore the guide.

Make sure your Bluetooth is enabled while using Basic Chat

These are the steps we'll make during the development process:

• Create an instance of a CBCentralManager.

• Once Bluetooth LE is powered on, we'll start scanning for CBPeripherals that hold services we are interested in.

• Once we've found matching peripherals, we'll display them in a table view and allow the user to choose a peripheral to connect to.

• Once connected, we'll look for the CBServices we're interested on the CBPeripheral.

• Once we find and connect to the desired CBService, we'll start looking for it's CBCharacteristics then subscribe to the one we are interested in.

• FInally, we'll send and receive data with the device using the CBCharacteristics found.

Before we begin, let's get a basic understanding of how some the app works.

Understanding CBCentralManager and Peripheral

The CBCentralManager plays the most important role in this application, it represents the local device. Think of it as the 'key player' in this operation. The CBCentralManager is responsible for scanning and connecting to peripherals.

If the CBCentralManager is looked at as the key player, then the CBPeripheral can be looked at as the 'supporting player'.

A CBPeripheral holds services (each defined as a CBService), and each CBService holds CBCharacteristics.

The following diagram shows the hierarchy of the CBPeripheral:

Getting Started

In Xcode, take a look at the project's file hierarchy in the left hand side of the window. Select the file named 'BLECentralViewController.swift' and check out its contents in the main window. This file handles all of the BLE functions we'll be focussing on in this guide. Let's take a look at some of the code …

At the top of the file, you'll notice the following line of code:


Importing the Core Bluetooth framework gives you the ability to communicate with BLE devices. With this you'll be able to make your own digital thermostat, game controller, heart rate monitor, and much more. is the free open-source version that can be easily installed on web hosts like Hostgator (what I do for, while is freemium web hosting + blogging platform in one.$0 (Freemium)Web hosting & portfolioIdeal for designing small, beautiful websites & landing pages. If you plan to write, build a brand or market your own product, Wordpress is wildly extensible (themes, plugins) but can take some time to learn how to configure. Ux design software for mac pro.

Next, notice that this object conforms to the CBCentralManagerDelegate protocol in order to discover, scan, and connect to peripheral devices in your area. In addition, it also conforms to the CBPeripheralDelegate protocol to analyze and explore peripheral properties.

Mac App Send Data Over Bluetooth

Likely the most important variable of the BLECentralManager is the CBCentralManager object.The CBCentralManager object works behind the scenes and performs all the direct communication with CBPeripherals. The code below creates the CBCentralManager and assigns its delegate variable to be the BLECentralManager.

This guide was first published on Jul 27, 2017. It was lastupdated on Jul 27, 2017.
This page (Overview) was last updated on Jul 15, 2020.

Mac App Send Data Over Bluetooth App


  • Serial over BLE?? never heard. Are you talking about Bluetooth 'classic' (not LE.)??

    You can take a look to

  • Mmh I don't really know. I have developed an app that is using Plugin.BLE (from xabre).
    But instead of using services & characteristics, I'd like to send and receive text data through a serial stream.
    Is that possible?

  • I don't know, I have never used BLE. You can try to write directly on github page to the plugin's author

    Best free remote app. Best Mac remote access apps Apple removed Back To My Mac from Mojave, but we still need to reach our Macs from outside the local network. Jul 01, 2020  TeamViewer is probably the numero uno remote desktop app across all platforms. On the iPad, it’s the best free alternative to Splashtop. It provides you the secure remote access to your Mac, Windows, and Linux systems. Thanks to the intuitive touch and control gestures, you can effortlessly control your computer. Jun 23, 2020  The remote desktop app allows you to operate the peer computer without any geo-restrictions. Such apps are really helpful while the team is working remotely. Here we have listed some of the best Mac remote desktop apps and software, some of. All the remote desktop apps reviewed here are suitable for connecting from Mac to Mac as well as Mac to PC or from mobile devices such as iPad, iPhone and Android to Mac. It’s important to be aware that there aren’t any remote desktop apps that are optimized for retina displays on Macs.

  • Do you know if there is any example of data transmission using serial over bluetooth classic with xamarin?

  • Yes you can take a look to
  • You can connect to BLE devices that can do serial, however the Bluetooth code is not based on Bluetooth Classic code, which uses Android.Bluetooth.BluetoothSocket A BLE device is always going to be BLE code. You would need to contact the device manufacturer to know what the particular service uuid is and then get the TxResponseCharacteristic and rxWriteCharacteristic for that service and most probably a modeCharacteristic to enable writing. They may be other characteristics such as manufacturer name, firmware revision numbers etc. I don't believe there are any generic methods that apply to all BLE devices capable of serial communication, hence the need to contact the manufacturer.

    I can't tell from your post if your custom device is really a BLE device or Bluetooth Classic device, so that is the first thing you need to establish.