Bluetooth Low Energy does it require additional hardware controller? - core-bluetooth

Sorry if the question is very basic.
What I know?
Bluetooth Low Energy is supported in the blutooth version 4.0. and it is a client server model. That is server is kind of advertiser, and client is a receiver.
My Question.
1) Does both the device [ client/ server] needs external hardware bluetooth chip support for BLE?
Or,
It is just enough only server to have external hardware bluetooth controller for the BLE?
2) Why i am asking this question is that Bluetooth 4.0 is just a different implementation algorithm comparing with classic bluetooth, in all layers of the bluetooth stack, to avoid energy consumption. In that case, what is the contribution of external BLE controller?.

Yes, both the devices needs bluetooth 4.0 chip to communicate for BLE.None of the BLE communication can happen over classic bluetooth, check wiki link and differnce, BLE has low data transfer rate as compared to classic bluetooth

Related

How to Develop iPhone/iPad Accessories

I want to create hardware accessory for iPhone and iPad but there is very less resources out there. I am not a programmer or engineer. My concept is very simple building a number pad connected through lightning cable. It will have 6x4 keys layout, in this 4 keys can be customize as per need means key a will work as copy(command+c)key b will work as paste(command+v) this keys can be customised in diffrent kind of shortcuts. I dont want a blueetoth connectivity.
Do I need a arduino or raspberry pi kind of device to program and test run a functional prototype?
What kind of cable do I need to sue to communicate with the device?
What kind of programming langauge do i need to learn?
Do I need to first register for Mfi program or I can do it after I develop the product?
As far as I'm aware, you'll need to join MFI for developing Lightning accessories.
However, you don't need Apple's permission for designing and building your own Bluetooth LE (Bluetooth 4.0) accessories. You should be able to do what you want by programming a Bluetooth LE capable microcontroller to act as a HID device that sends the key events you want. I've not done this specific type of project myself and I'm far from an expert on embedded stuff, but Adafruit have a bunch of resources and development boards on Bluetooth LE using Arduinos and other dev boards. I believe they even have something that already acts as a HID device. I'd start researching in that direction.
Another option is to program a microcontroller to act as a standard USB HID keyboard device, and plug that into the iDevice using the Lightning to USB Camera adapter. iPads recognise standard USB keyboards without needing MFI approval, but you do need to use Apple's adapter. Note that the adapter allows the USB device to draw very little power (50mA I think) so it will not work with any device that requires more. The USB3 version of the adapter has an extra power input and so allows you to attach a USB device that draws more than that.

How do I read Bluetooth Low Energy transmitted data programmatically on Mac OS X 10.9.5?

I'm trying to read Bluetooth Low Energy transmitted data programtically using Ruby. Bluetooth Low Energy technology provides no support for the Serial Port Profile (SPP) in the standard Specification v4.0.
With older Bluetooth communication methods, one can just read the serial port for Bluetooth incoming data (/dev/tty.Bluetooth-Incoming-Port). Clearly, this won’t work for Bluetooth Low Energy, given it works almost completely differently.
I came across a few tools like LightBlue and XCode Hardware IO tools to read the data transmitted by the said Bluetooth Low Energy device but I’m not sure how they work. Can somebody help?
Reading up on fundamentals really helped me a lot. Here's a link to great post explaining BLE basics. Having understood this, on OSX I ended us using noble to establish connection and read BLE transmitted UART data using another library using noble called blendmicro.
We didn't use blendmicro BLE chip but still were able to use blendmicro-node library. If you read through blendmicro.js, it's easily modifiable to suit any BLE chip that uses UART for data transmission.

Capture PCI-Express wheh it is connected and than emulate in system

Is there any way to capture device state when it's connected and than emulate it in Windows?
I bought some PCI Express devices that need to be present in slots to make software working. But I have only one slot and software not fully works, searching for another 2 cards in slots.
Any ideas? Thanks!
Sounds like a hardware dongle for licensing?
The answer is no, this isn't possible if the dongle designers had any clue whatsoever about security (using nonce to protect against replay attacks, using asymmetric encryption to produce authentication codes without disclosing the private key).
You might have better luck with a bus extender (bridge chip). For example here is one that turns a PCIe device into a USB peripheral. Whether the software can still talk to it is anyone's guess, I should think that if the bridge identifies itself to Windows as a PCIe bus then it would. There are also plenty of PCIe-PCIe bridges that would take your single internal PCIe slot and give you multiple PCIe slots in an external chassis.

Is Serial Port Profile (SPP) supported on iOS 7 over Bluetooth Low Energy (v4.0)?

Can I use Serial Port Profile (SPP) to communicate with iOS devices over Bluetooth Low Energy (v4.0) without the need for MFi Chip?
If you're designing something from scratch (rather than trying to interface to an existing SPP-enabled device), there is a possible solution.
Laird Technologies make a Bluetooth Low Energy Module (BL600), which can be loaded with a virtual serial port application. This creates a service which is similar to the SPP; at the remote end it can just be treated as a plain serial port (albeit rather low speed). You could roll your own service to do something similar on other devices.
It's not the most elegant solution, but seems to work okay, and far easier than trying to get MFi certification.
If you cannot control the peripheral's protocol choice:
The Serial Port Profile (SPP) is still supported by Bluetooth 4.0. However, Bluetooth 4.0 Low Energy uses different pysical and link layer protocols that are not backwards compatible with older Bluetooth standards. Current iOS and Android devices use "dual mode" interfaces that support the backward compatible part of BT 4.0 and the Low Energy standard.
Bluetooth 4.0 Low Energy does not support SPP whereas regular Bluetooth 4.0 does!
I found a Cordova/Phonegap Plugin on GitHub that might serve as a source of inspiration for you. They advertise to support SPP on iOS and Android alike.
If you are in control of the peripheral, i.e. you implement the peripheral's software:
Bluetooth 4.0 Low Energy communication makes use of the Generic ATTribute Protocol. Based on GATT there exist a number of profiles but no serial port profile.
The good news is that implementing your own proprietary serial port profile on iOS, Android and your device is fairly simple. The API instructions for your BTLE module/SoC should provide some examples for existing profiles.
As soon as you see how simple implementing your own profile is, you will probably choose to go for a more use case specific profile which will save you lots of power on your (battery powered?) peripheral.
Just to clear up John Parsons comment from Feb 16th - the BL600 is definitely not discontinued whatsoever.
vSP works well for a low level, low throughput data connectivity using BLE for iOS devices, as well as Android. Video showing the solution working to an iPad are at this link and full source code is available for the iOS application as well http://www.lairdtech.com/Support-Center/Technical-Library/Videos/VSP-Bridge-Command/#.UwYvzGJ_s1w
There are no MFi requirements for BLE connectivity on iOS.
MFi is only relevant to Classic Bluetooth data connections to / from iOS devices, where you need to use Apple's iAP protocol, be a MFi licensee, use an external Apple Authentication IC and pay a royalty to Apple.
NO,you can't. BLE not support SPP.
No, you can't. In general, it's important to remember that any Bluetooth Classic profile isn't necessarily applicable for Bluetooth Low Energy. With BLE however, you can easily create your own custom service/profile, specially tailored towards your particular application. As far as I know, all BLE communication with iOS is currently allowed without participating in the MFi. You can also take a look at this page for further information on SPP and BLE.
I'm searching for SPP for iOS myself and found a German supplier, lintech.de, that has products for "Bluetooth meets Apple" claiming to support/emulate SSP, apparently using their own embedded software layer combined with iAP. "BlueMFI software communicate with APPLE devices using the iAP (iPod Accessory Protocol) and manage the data communication with the Apple authentication chip...BlueMFI software is designed to run on a variety of hardware platforms (Bluetooth modules), and interested users can obtain the relevant evaluation kits. LinTech’s Bluetooth modules with BlueMFI software not only support the APPLE iAP protocol via Bluetooth, but they are also able to communicate with standard Bluetooth devices." Haven't tried this yet, just exploring and sharing.
I won't say SPP is directly supported under iOS 7, Apple says no. Won't argue :)
But...
I use connectblue modules OBS421 and OBS425 on a data collection project.
BLE modules have SPP profile enabled and I transmit data from my sensors to the iOS devices using BTLE module in SPP mode.
Works pretty fine under iOS 6 and 7
That said, I was having trouble with MFi bluetooth devices under iPhone 5S, that's why I moved to BTLE.
Drawback with BTLE, it's limited to 20 bytes at a time.
I had to adjust hardware and software, but was easy.
You have programmable chips such as Bluegiga BL112 that are doing the job. It is the cable replacement code.
I'm integrating it actually for both iOS and Android 4.3. It works at least on the demo board.

Accessing an Ethernet or USB port

Good Afternoon,
This post is to ask for ideas on which programming language for Windows Vista you would suggest for accessing raw data from an Ethernet port or a USB port. My strength is in micro-controllers. I have a project underway where the 32-bit micro-controller is the last processing device in a software defined radio. The micro has the capability to output digitized signals over a USB port or an Ethernet port. I would like to use the PC as a plotting tool to display the raw digitized sound as a waveform on the screen and possibly play the sound on the sound card output. Also, I will be creating FFT spectrum data, either in the 32-bit micro or in the PC, if the software is fast enough, for spectrum display on my laptop.
I have past experience with older VB. In my last project, I used a simple basic program (JustBasic) to send control data via a USB/RS232 device to a micro-controller. This interface is certainly not fast enough for this project. Additional future features would be to use the Ethernet or USB to control real time features i.e. filter frequencies, FFT size and sample rates in the micro-controller. Any help is appreciated.
Microsoft provides the Raw Input API to get data straight from a USB device. You could use C# to access the port (see here), or any other .NET language. You could also use C or C++ (see here).

Resources