pyFirmata

class pyfirmata.pyfirmata.Board(port, layout, baudrate=57600, name=None)

Base class for any board

add_cmd_handler(cmd, func)

Adds a command handler for a command.

exit()

Call this to exit cleanly.

get_firmata_version()

Returns a version tuple (major, mino) for the firmata firmware on the board.

get_pin(pin_def)

Returns the activated pin given by the pin definition. May raise an InvalidPinDefError or a PinAlreadyTakenError.

Parameters:pin_def – Pin definition as described in TODO, but without the arduino name. So for example a:1:i.
iterate()

Reads and handles data from the microcontroller over the serial port. This method should be called in a main loop, or in an Iterator instance to keep this boards pin values up to date

pass_time(t)

Non-blocking time-out for t seconds.

send_sysex(sysex_cmd, data=[])

Sends a SysEx msg.

Parameters:
  • sysex_cmd – A sysex command byte
  • data – A list of 7-bit bytes of arbitrary data (bytes may be already converted to chr’s)
servo_config(pin, min_pulse=544, max_pulse=2400, angle=0)

Configure a pin as servo with min_pulse, max_pulse and first angle. min_pulse and max_pulse default to the arduino defaults.

setup_layout(board_layout)

Setup the Pin instances based on the given board-layout. Maybe it will be possible to do this automatically in the future, by polling the board for its type.

class pyfirmata.pyfirmata.Pin(board, pin_number, type=2, port=None)

A Pin representation

disable_reporting()

Disable the reporting of an input pin

enable_reporting()

Set an input pin to report values

mode

Mode of operation for the pin. Can be one of the pin modes: INPUT, OUTPUT, ANALOG, PWM or SERVO (or UNAVAILABLE)

read()

Returns the output value of the pin. This value is updated by the boards Board.iterate() method. Value is alway in the range 0.0 - 1.0

write(value)

Output a voltage from the pin

Parameters:value – Uses value as a boolean if the pin is in output mode, or expects a float from 0 to 1 if the pin is in PWM mode. If the pin is in SERVO the value should be in degrees.
class pyfirmata.pyfirmata.Port(board, port_number, num_pins=8)

An 8-bit port on the board

disable_reporting()

Disable the reporting of the port

enable_reporting()

Enable reporting of values for the whole port

write()

Set the output pins of the port to the correct state