iFirmata allows you to select between different compatible Bluetooth Low Energy modules and directly control their pins, wether they are analog, digital, input or output. iFirmata also supports reading and writing I2C data in order for you to interact with your I2C components.

Connecting to a device

After you selected a specific device, the microcontroller will send information about the pin configuration. This should take about 2 seconds, depending on how many pins the microcontroller has. iFirmata will display the pins as they are being downloaded from the microcontroller.

Controlling Pins

iFirmata displayes a list of digital and analog pins in that order. Digital pins can be set to one of four modes: Input, Output, Servo and Pwm. Input pins will display its value as LOW or HIGH. Output pins can be set to LOW or HIGH. Servo or Pwm pins can be set to specific values. Analog pins can be enabled or disabled. When enabled, its value will be received continuously from the microcontroller.

I2C Components

iFirmata supports I2C components. In order to add an I2C component, select the menu button on the top right of the screen and then select the option: "Add I2C Component". The component will be added at the end of the list with the default name: “New I2C Component”. By selecting the cell, the component view is displayed. In the component view, a name can be given to the component, and its I2C address can be set. An I2C component has a number registers. In order to add a register for this specific component, select the options menu on the top right of the screen, and then select the option: “Add Register”. A register is added to the list. By selecting the Register the register view is displayed. In the register view, the register number can be set, values can be written to the register and read from it. Additionally, the read continuously option can be enabled in order for the microcontroller to continuously fetch I2C data for the specific register and send it over to the iOS device. Before enabling the read continuous switch, the Read Continuous Size should be set.

I2C components and registers can be removed by selecting the option: “Edit Components” or “Edit Registers” from the options menu at the top right of the screen.