The following details some of the work completed over the last 8+ weeks, and it's spreaded acorss the last 3-4 commits.

BLE-MANAGER:
Upated the BLE manager to not display bleduinos as conncted until all services and characterictics have been discovered. This was done because someone could leave the BLE manager in the middle of this process (sindce the bleduino would show as connected), and the communication with the bleduino was compromised. An acitivity indicator view was added.
Updated the BLE manager to confirm wether Bluetooth is powered On before attempting to scan or connect with a bleduino.
Fixed UI bug about the interrogation view being displaced when the refreshing control is refreshing.
Added verification to see if the delegate supports X method (of the protocol) before calling it.
Added support to auto-reconnect to peripherals that got disconnected unxpectedly.
Fixed bug about the ble-manager wrongfully adding bleduinos (that were recently disconnected) to the found model. Ble manager now scans automatically after disconnecting from a bleduino to confirm if it still available before adding it again to found devices.

GLOBAL:
Updated BleService's write/read/notification methods to use an ivar for the peripheral instead of passing it as an argument.
Updated all the controllers to show an alert when a bleduino gets disconnected unexpectdly. I will probably update this to be centralized on the manager and simply push a local notification.
Updated the library (BDLeManager+BDBleService) to include the ability to throttle the write/read speed (a detailed explanation as to why will be included in the documentation and source code). There is a queue collecting all commands, and a background thread executes commands from that queue every X time, where X is the time cap set. We are still experimenting to find the optimal time cap. It should not be more than a few miliseconds.
Updated the BLE manaer class to let iOS choose the queue it should use, and removed an unnecesary loop from the didDiscoverCharacteristics delegate. Both of these were causing the app not to stop receiving data spontaneously despite being subscribed for notifications.
Tested writing/receiving data to/from multiple bleduinos across multiple services.

CONSOLE:
Finished the console module.
Tested the UI and comunication.
Fixed the TableView color (alpha was altered).
Fixed the UI bug to ensure the TextField has a fixed location.
Update the module to write/receive data to/from multiple bleduinos.

SEQUENCER:
Finished the sequencer module.
Tested both UI and communication with the BLEduino.
Updated the module so all pins are on digital-in by default.
Updated module so it has a default sequence (blink led connected to pin 13).
Fixed the addPin method error. The wrong pins were being added.
Added support for persistance (storage) of the sequence.
Updated the time-delay logic and UI to support seconds and minutes.
Fixed bug about the model array not getting updated properly after sorting.
Fixed a bug about pin-type selection. The logic that gets the pin types (e.g. PWM) for each pin was returning the wrong types.
Added support for deleting the whole sequence.
Added support for persistance of states and values (of each pin/delay) of the sequence.
Updated TableViecells to hide certain UIViews when sorting (i.e. editing the TableView) the sequence.

FIRMATA:
Finished firmata module.
Added labels to indicate capabilities (types) per pin.
Updated the process for sending commands. Users will need to sync first in order to start sending commands.
Updated the data mapper logic to convert firmata pinValue data that uses two bytes.
Fixed model error when disconnecting unproperly on BLE scanner.
Fixed the bug that was causing the last three pins not to default to digital-in.
Updated the module so all pins are on digital-in by default.
Updated the reset-all method to set all pins back to digital-in.
Tested the UI and communication.

NOTIFICATIONS:
Updated the module to remove the use of title (only messages now). Local notifications don't allow titles.
Fixed a bug that was breaking the module. Some code that still depended on the notifications having a title.
Fixed a bug that was causing the app to crash. Corebluetooth was calling delegates that had already been released on the method call to stop listening.

BLE-BRIDGE:
This module was badly designed, thus I redesigned it from scratch. It follows a similar structure to notifications. It's more reliable. For example, it won't confirm the bridge is open until all devices have been interrogated for the deviceID, and has received confirmation of subscription for notifications from all devices.
Tested the module with two BLEduinos with the app on foreground, and background.
Reviewed how deviceIDs are stored.

POWER RELAY:
Fixed the switch's size error.
Fixed the switch's positioning error.
Updated the module to start on the OFF (red) state by default.
Updated the module so it only sends data upon a state change.

CONTROLLER:
Added support for start/select buttons to send its status upon releasing (and not just when pressed down).

KEYBOARD/LCD:
Fixed bug about pointer not going all the way back to the original position.