My Bluetooth Summer, not so BLE(h)

Hi there,

This last summer I developed Bluetooth Low Energy (BLE) interfaces for a couple of embedded boards and an Android app companion to operate the boards.

BLE Serial Console is currently in Beta and is available in Google Play.

Special thanks to Federico Biagioli who made the app’s Icon!

screenshot_20170202-170429
BLE Serial Console discovered all HM10 Services!

The app can discover all the GATT Services available in a BLE device. It was tested with an HM-10 module (in a breakout board) and Intel Edison’s HM11 integrated BLE module. BLE uses a protocol called Generic Attributes Profile (GATT), that exposes hierarchical data on any BLE device.

Once you enter the right GATT Characteristic, if it has Read/Write permissions you can exchange data with the module from the app to whatever device is connected to the BLE Module. Additionally, if the GATT Characteristic has the Notify permissions, you can subscribe to the device, and receive any updates made to that GATT Characteristic from the other side of the line. Subscribing will enable you to have bidirectional communication with the module.

HM10’s breakout board works with 3.3V with voltage and logic converters and exposes TX/RX pins that you can connect very easily to any Arduino based board having UART protocol. In my case I connected the RX/TX pins to the RS232 RX/TX pins in the CIAA board. HM10’s default GATT Characteristic contains a 20 bytes long registry with Read/Write/Notify permissions.

Service UUID: 0000ffe0-0000-1000-8000-00805f9b34fb
Characteristic UUID: 0000ffe1-0000-1000-8000-00805f9b34fb

0-eus-d2-72d06ae14d9237e9a9a5f176123d903b
EDU-CIAA-NXP & HM-10 BLE Module in Action

I wrote some node.js code for Intel Edison’s board. To enable BLE in this board you have to login and run 3 commands:

rfkill unblock bluetooth
killall bluetoothd
hciconfig hci0 up

After this, you can flash your javascript code to the board, connect & subscribe to the BLE device and operate seamlessly like any other Serial Communication app.

Last but not least, I wrote some plain twenty first century C code to interface with an embedded board called CIAA (Computadora Industrial Abierta Argentina). I connected an HM-10 BLE module to the board and configured the interface between a PC terminal, the board itself and the BLE module in Master Mode.

Bubblr updates for Android 7

Hello true believers!

I recently updated Bubblr’s Free and Full version, so you can enjoy using it with your Android Nougats!

Also, some of the updates include:

  • Auto dismiss buttons when clicking on them
  • Updated all the app-compat packages to 25.2.0
  • Bigger Icons 56 dp when not using FABs

Check them out!

Free Version:
https://play.google.com/store/apps/details?id=org.pampanet.mobile.bubblr.free

Full Version (only 2 bucks!):
https://play.google.com/store/apps/details?id=org.pampanet.mobile.bubblr.full

My Kotlin adventures: 5th Generation Language Awesomeness

Kotlin is a new programming language developed by the guys at JetBrains. Since it’s version 0.9 I’ve been testing the syntax and features and I must say that it’s amazing.

I developed a couple of Android apps which are now released in Google Play. Made 100% with Kotlin.

Bubblr is an application meant for the guy that wants a really fast shortcut to his everyday apps. it wants to be a very lightweight app launcher based on FABs (Floating Action Buttons). It is intended to be really simple to use and very lightweight (approximately 8 MB).The launcher adapts to the screen drawing an Arc of buttons that you can add, remove (swiping) and even sort by doing drag & drop with the buttons. Buttons are customizable, having the ability of being bubbles or icons within colored FABs (colors also customizable). The free edition has an Ad Banner at the bottom, safe and not intrusive. The Full edition doesn’t have Ads.

Augmented Fence (AFence) is an augmented reality fence, which uses Google Maps to display points stored in a sorted list, drawing a polygonal figure, and determining whether the user is inside or outside of the figure described by the polygon, and it allows you to activate alarms when the user is near the limits of the fenced area. The full edition doesn’t have any limitations.

To be able to develop these apps I used Android Studio with Kotlin’s plugin. The development was really faster y smooth than with other languages for Android, plus all the advantages that come from Functional Programming Languages, making your development experience more motivating and relaxing.

How many of you enjoy the term “tail recursion”? It’s like going into a traditional cafeteria and ask for a “mochaccino”, even though the tail recursion has been here since the days of Lisp and Haskell.

How about “pattern-matching” and “functional thread-safety”? These are some of the advantages of using a Functional Programming Language.

I think the world is going to make a leap of paradigm eventually, and staying in Java can be tough when that change happens. Java might be able to turn into COBOL… yuk!

It’s definitely the time to start giving 5th Generation Languages a chance, a try, and an APP.

Cheers!