220 likes | 475 Views
Application of Bluetooth Low Energy in Classic Cars. Rogier van der Hee. rogier@zoidbergsolutions.nl. Rogier van der Hee. 2007 - : Zoidberg Solutions (independent developer - ZZP ) PlantScout app (iOS / Android) for variety assessment for orchid growers: www.plantscout.eu
E N D
Application of Bluetooth Low Energy in Classic Cars Rogier van der Hee rogier@zoidbergsolutions.nl
Rogier van der Hee 2007 - : Zoidberg Solutions (independent developer - ZZP) PlantScoutapp (iOS / Android) for variety assessment for orchid growers:www.plantscout.eu Invoice Management for Blue 10:www.inkoopfacturen.nl ATCsimulation tests for candidate selection purposes for EUROCONTROL: www.eurocontrol.int/services/feast Ignition systems for classic cars:www.123ignition.nl
The project: classic car ignition systems • How does an engine work: • Suck -> Squeeze -> Bang -> Blow! • Modern cars ignition is done purely electronically, classic car it is mechanical on the crankshaft
What does an ignition system do? • Timing of the spark for optimal combustion, right at the moment the cylinder is at the top dead center. • Based on piston position (advance) and power demand (vacuum)
Why electronic ignition in your classic car? Why electronic? • No more maintenance • Better starting • Better torque in lower RPM Why programmable? • Almost endless combinations possible: different curve per engine, distributor and fuel (petrol, ethanol, LPG) • Fabrication is unified: 1 embedded software program • Best possible setup for your specific engine: tuners and export hobbyists (racing) • Because we can
Today Ignition advance RPM Serial over USB Rx Temperature Tx Manifold pressure • Atmel ATMega16 • 8Mhz • -40 – 120 Celsius • 16kb Flash • Windows XP / 7 / 8 • .Net 2.0 app Battery
The challenge Ignition advance RPM ? Rx Temperature Tx Manifold pressure • IPhone 5S • Dual core 1.3 GHz ARM v8 • 16/32/64 Gb • 1 GB RAM DDR3 • Atmel ATMega • 8Mhz • -40 – 120 Celsius • 16kb Flash Battery
Wireless hardware options • Classic Bluetooth 1.1/2.0/3.0 (2002-2009) • Slow, long latency, requires MFI program for Apple • Smart Ready: Dual mode device with 4.0 and classic, Smart is 4.0 only • ZigBee, mostly home automation • No frequency hopping, not present in devices. No hardware support in phones. • Wi-Fi • Point to point difficult (Direct), software hard, optimized for large data transfer • ANT (+), mostly health and fitness • Proprietary, + since 2011 requires certification. Native Android, no iOS • NFC • Range limited to 5 cm, targeted for payments. Android, no iOS
Why Bluetooth 4 Low Energy? • Hype “Internet of Things”: enables low cost, low powersensor communication between endless combination ofdevices, wearables, you name it! • Proximity and out of range detection (geofencing) • Fast connections (10 msec) and low data latency (3-6 msec): very responsive apps • Adaptive Frequency Hopping (AFH), resilient to interference • Broadcast support (iBeacons) • Connectionless always off technology • Low power consumption: ~30μA average consumption with 1 second data interval, equivalent to 330 days on a single coin cell • Range up to 280 meters (in practice about 10-30 meters) • No more MFI program for Apple
Real life range sample • Direct line of sight 30m • Faraday was right! • Plastic casing in prototype Ignition behind fan under hood Bluetooth Status LED Still connected! Static timing LED
Hardware implementation • System-on-Chip: Bluetooth needs external controller with embedded software to run • Option 1: buy separate chip: • TI CC2540/CC2541, Nordic nRF8001 • Complete control • High startup costs (FCC, dev kits etcetc) • Option 2: buy integrated solution: • BlueGiga,BlueRadios, CSR, Nordic • No FCC approval • Avoid high dev kit license • Ready to go • Drawback: “vendor” libraries CC2540 under RF Shield Antenna Crystal / Transistor EEPROM
Bluetooth Low Energy Architecture User Application Application GAP Role Profiles (Master / Slave) GATT Profiles GAP GATT Host ATT SMP L2CAP Host Controller Interface (HCI) Controller Link Layer (LL) Physical Layer (PHY)
Generic Acces Profile (GAP) • Ensures basic connection handling: discovery of what type of Bluetooth profile a device supports • Common for Bluetooth 1/2/3/4, basis for all profiles • Handles advertising and roles • Handles security (SMP): • Bonds or pairing between devices • Access and address security
Generic Access Profile (GAP) : Roles Peripheral Peripheral Central Broad- caster Obser-ver
GATT Profile • Bluetooth SIG defines standard Profiles for interoperability: HID, Health, Hear Rate, Proximity, Cycling Power, Find Me, etc Profile Service C# sort of comparison: Profile = Model Service = Class Characteristic = Property Descriptor = Property Attribute Characteristic Characteristic
GATT Characteristic • Value types: • Broadcast • Read • Write • Write without response • Notify • Indicate (needs reply) • Descriptors describe: • Presentation format • Valid Range • User description • … • See Bluetooth.org for complete specification Characteristic Value Descriptor Descriptor
Advertisement Packet layout Protocol Data Unit (PDU) Preamble Acces Address Adv Header Payload Length Advertiser Address Payload (31 bytes) CRC Overhead Overhead
Show me the money … code! • Example for reading the Battery Level characteristic • iOS • Android • Windows 8.1 (or how far I got ..) • Windows Phone 8.1 (theory only ..)
Security • Security modes • “Just Works”, no pairing needed to connect (doesn’t work with Windows 8) • Simple Pairing (Authorization only, no PIN) • Secure Authenticated Pairing with MITM protection (PIN) • Triggered by setting certain permissions on characteristics • Personal experience so far: authenticated pairing is difficult to implement to cover all use cases for devices without a display. Also there are bugs in both iOS and Android which makes the experience cumbersome
iBeacons • Hype in the advertisement market, new way to personalize shop experiences • Broadcast devices, not connectable • Special layout of Advertisement Packet • Company identifier code set to 0x004C -> Apple • iBeacon proximity uuid in manufacturer data • Major / minor Id (for grouping beacons: home->living, attic, basement) • Measured Power (RSSI in dB at 1m, translated to immediate, near, far)
Conclusions / Lessons learned • BLE is fast and fluid from end user point of view • Hardware integration is always a big pain • Writing polished apps takes an incredible amount of time ;-)