// TECHNICAL DEVELOPMENT// ELECTRONICS
• I've studied the different boards to work with Bluetooth already in the market:
BLEDUINO, BLEBee, Bluefruit LE.
To understand what they do and what I want to do with my own board base on BLE 112 Bluetooth 4.0 Low Energy.
• BLE 112 description//
The BLE112 is a Bluetooth Smart module based on TI's CC2540 chip.
Targeted for low-power sensors and accessories.
It integrates all features required for a Bluetooth Smart application, including Bluetooth radio, software stack, and GATT-based profiles.
The BLE112 Bluetooth Smart module can also host end-user applications, which means no external micro controller is required in size or price constrained devices.
Morover, it has flexible hardware interfaces to connect to different peripherals and sensors and can be powered directly from a standard 3V coin cell battery or a pair of AAA batteries. In the lowest power sleep mode it merely consumes 500 nA and will wake up within a few hundred microseconds.
• Key Benefits//
Fully integrated Bluetooth Smart solution
Integrated Bluetooth Radio, micro controller and software stack
Low development risks
• Application hosting capabilities//
All application code can be executed on the BLE112. I'm using Arduino to do it.
No need for external micro controller
Lower cost and smaller size
Firmware is field upgradeable.
Application data can be stored on the flash
Settings can be stored on the flash
Good radio performance
Long range and robust connections
• Software programmable TX power//
I've left on my board the conection to this pins to do it for every Lab in base to his needs.
Bluetooth 4.0 low energy radio
Transmit power: +3 dBm
Receiver sensitivity: -92 dBm
Integrated antenna or U.FL connector
TX peak current: 27 mA (o dBm)
Sleep mode current: 0.4uA
• Bluetooth features//
Bluetooth Smart (low energy) support
L2CAP, ATT, GATT, GAP and Security Manager
Bluetooth Smart profiles
Client and master mode
Up to eight connections in master mode
Over-the-Air firmware upgrade
• Hardware features//
UART and USB host interface
SPI, I2C, PWM, UART, GPIO peripheral interfaces
Power supply : 2.0 - 3.6V
Temperature range: -40°C to +85°C (for this I made holes on my piece to take a good ventilation of the board.
Dimensions: 18.10 x 12.05 x 2.3 mm
• MCU features//
• Software features//
I add on Arduino BGLib library to do it load on my BLE 112 through my Barduino microcntroller.
BGLib uses the binary API to send commands and receive events from my Barduino microcntroller,
• After made my first prototype using Raspberry Pi I could quickly and easily understand what I want to do with my Beacon and how it works.
• So I had a series of goals in mind for my Final Project:
- Hardware with 100% Arduino Compatibility
- Compact size
- BLE as both Central or Peripheral
- Long Battery life
- Easy to reprogram for every FabLab and every FabLabber
- Internet as data base
And I'm very happy to have achieved them!!!
• On the next steps I've explained how I've developed my Uri Beacon and how each Fab Labber can make one from and for his Fab Lab. All the project is base on Open Source License.
• My Uri Beacon is developed using open source code and my designs can be reuse and customize.
All the files are hosted on my page.
All the manufacturing procees can be done locally, so enjoy in your Fab Lab!
• The Intellectual Property of my project will have an Open Source Hardware and Software licensed under MIT license, to let other Fab Labers to continue devoloping this tool to many propouses.
The key points of the MIT license are:
The project is delivered "as is" with no warranty or responsibility whatsoever.
Do whatever you want with the code
Remember, give attribution.
• First of all, I read the datasheet of BLE 112 module to understand which pins I need to solder to make the debbuging and program the module using Barduino of BLE 112 module.
My first attempt was solder wires directly on the BLE 112 to this PIN CONFIGURATION:
- pins 2,3,9,20 to 3.3V in put on my Barduino
- pin 30 to GDN in put on my Barduino
- pin 23(RX) to pin 1 TX on my Barduino
- pin 24(TX) to pin 0 RX on my Barduino
- pin 25(RTS) to pin 34 random digital on my Barduino
- pin 26(CTS) to pin 32 random digital on my Barduino
• When my pin 9 from BLE 112 brokes because I lost of the solder material on its pad I realized that I should design a BREAK OUT BOARD for my BLE 112.
In this way I just solder once all the module to the board.
Connected the wires to the female heads to debugging and program through Barduino.
And after that desoldering from here to solder on my double layer Beacon board.
• So I designed a breakout board for my BLE with Eagle.
It took me time to make it clear and I put all the pin numbers and pin names on my Eagle design but at the end it was very useful to follow when I was attaching by wires my breakout board to my Barduino througn a bread board.
I made to holes for the 100uf capacitor on Pin 29 (AVDD) and 30 (GDN)
EAGLE files: schematic and board
• I export my Eagle design in monochrome .png, 1000dpi.
Then in Photoshop I just add 20 pixels and made this files to milling:
BREAKOUT BOARD files: traces, holes and exterior.
• I sended to the Modela Milling machine the files in this order.
• After milling I pass the holes with a small drill because it was a bit smaller for my female headers.
• I solder the module using liquid FLUX.
• I fix the female header and my board is done!
• In the Lab suggest me to test with CoolTerm software if my board can send data from USB to serial UART connecting with the SparkFun USB to Serial Breakout for the FT232RL.
• So I tried it and I connect with wires my breakout board pins:
- pins 1, 10, 21 and 30 all together to GDN FT232RL board
- pin 23(RX:sender info) to pin TX FT232RL board
- pin 24(TX) to RX FT232RL board
- pins 2 and 3: AVDD ,9: VDD-USB and 20 to 3.3V FT232RL board
• I read this info to understand how to use CoolTerm for UART.
On Coolterm I set the BAUD 9600.
And TX when I'm typing are blinks on green, that's mean it's receive.