examples Package

examples Package

pylibftdi examples

bit_server Module

bit_server.py - remote HTTP interface to bit-bangged FTDI port This runs as a web server, connect to port 8008

Change HTTP_PORT for different port number or supply alternate as args[1]

Requires:
  • pylibftdi
class pylibftdi.examples.bit_server.ReqHandler(request, client_address, server)[source]

Bases: BaseHTTPServer.BaseHTTPRequestHandler

do_GET()[source]
do_POST()[source]
send_head()[source]
class pylibftdi.examples.bit_server.ThreadingServer(server_address, RequestHandlerClass, bind_and_activate=True)[source]

Bases: SocketServer.ThreadingMixIn, BaseHTTPServer.HTTPServer

pylibftdi.examples.bit_server.get_page()[source]
pylibftdi.examples.bit_server.runserver(port=8008)[source]

lcd Module

Write a string (argv[1] if run from command line) to a HD44780 LCD module connected via a FTDI UM232R/245R module using pylibftdi

example usage:

# while true; > do python lcd.py $( awk ‘{print $1}’ /proc/loadavg); > sleep 5; > done

Copyright (c) 2010-2014 Ben Bass <benbass@codedstructure.net> All rights reserved.

class pylibftdi.examples.lcd.LCD(device)[source]

Bases: object

The UM232R/245R is wired to the LCD as follows:
DB0..3 to LCD D4..D7 (pin 11..pin 14) DB6 to LCD ‘RS’ (pin 4) DB7 to LCD ‘E’ (pin 6)
__init__(device)[source]

x.__init__(…) initializes x; see help(type(x)) for signature

init_four_bit()[source]

set the LCD’s 4 bit mode, since we only have 8 data lines and need at least 2 to strobe data into the module and select between data and commands.

write_cmd(x)[source]
write_data(x)[source]
data

This class is a descriptor for a bus of a given width starting at a given offset (0 = LSB). The device which does the actual reading and writing is assumed to be a BitBangDevice instance in the ‘device’ attribute of the object to which this is attached.

e

This class is a descriptor for a bus of a given width starting at a given offset (0 = LSB). The device which does the actual reading and writing is assumed to be a BitBangDevice instance in the ‘device’ attribute of the object to which this is attached.

rs

This class is a descriptor for a bus of a given width starting at a given offset (0 = LSB). The device which does the actual reading and writing is assumed to be a BitBangDevice instance in the ‘device’ attribute of the object to which this is attached.

pylibftdi.examples.lcd.display(string, device_id=None)[source]

Display the given string on an attached LCD an optional device_id can be given.

led_flash Module

Flash an LED connected via a FTDI UM232R/245R module using pylibftdi

Optionally supply a flash rate (in Hz, default 1) as an argument

Copyright (c) 2010-2014 Ben Bass <benbass@codedstructure.net> All rights reserved.

pylibftdi.examples.led_flash.flash_forever(rate)[source]

toggle bit zero at rate Hz

pylibftdi.examples.led_flash.main()[source]

list_devices Module

Report connected FTDI devices. This may be useful in obtaining serial numbers to use as the device_id parameter of the Device() constructor to communicate with a specific device when more than one is present.

example usage:

$ python pylibftdi/examples/list_devices.py FTDI:UB232R:FTAS1UN5 FTDI:UM232R USB <-> Serial:FTE4FFVQ

To open a device specifically to communicate with the second of these devices, the following would be used:

>>> from pylibftdi import Device
>>> dev = Device(device_id="FTE4FFVQ")
>>>

Copyright (c) 2011-2014 Ben Bass <benbass@codedstructure.net> All rights reserved.

pylibftdi.examples.list_devices.get_ftdi_device_list()[source]

return a list of lines, each a colon-separated vendor:product:serial summary of detected devices

magic_candle Module

Magic Candle - light falling on the LDR turns on the LED, which due
to arrangement keeps the LED on until LDR/LED path is blocked

LDR (via a transistor switch - dark = ‘1’) - D0 LED (via series resistor) - D1

pylibftdi - codedstructure 2013-2014

class pylibftdi.examples.magic_candle.Candle[source]

Bases: object

__init__()[source]

x.__init__(…) initializes x; see help(type(x)) for signature

run()[source]
be_light

This class is a descriptor for a bus of a given width starting at a given offset (0 = LSB). The device which does the actual reading and writing is assumed to be a BitBangDevice instance in the ‘device’ attribute of the object to which this is attached.

is_dark

This class is a descriptor for a bus of a given width starting at a given offset (0 = LSB). The device which does the actual reading and writing is assumed to be a BitBangDevice instance in the ‘device’ attribute of the object to which this is attached.

midi_output Module

class pylibftdi.examples.midi_output.MidiDevice(*o, **k)[source]

Bases: pylibftdi.device.Device

__init__(*o, **k)[source]

Device([device_id[, mode, [OPTIONS …]]) -> Device instance

represents a single FTDI device accessible via the libftdi driver. Supports a basic file-like interface (open/close/read/write, context manager support).

Parameters:
  • device_id – an optional serial number of the device to open. if omitted, this refers to the first device found, which is convenient if only one device is attached, but otherwise fairly useless.
  • mode – either ‘b’ (binary) or ‘t’ (text). This primarily affects Python 3 calls to read() and write(), which will accept/return unicode strings which will be encoded/decoded according to the given…
  • encoding – the codec name to be used for text operations.
  • lazy_open – if True, then the device will not be opened immediately - the user must perform an explicit open() call prior to other operations.
  • chunk_size – if non-zero, split read and write operations into chunks of this size. With large or slow accesses, interruptions (i.e. KeyboardInterrupt) may not happen in a timely fashion.
  • interface_select – select interface to use on multi-interface devices
  • device_index – optional index of the device to open, in the event of multiple matches for other parameters (PID, VID, device_id). Defaults to zero (the first device found).
pylibftdi.examples.midi_output.scale()[source]
pylibftdi.examples.midi_output.volume(beat)[source]

pin_read Module

Display values on input pins of a BitBangDevice.

TODO:
  • ANSI colours / display differences in bold
example - beep on pin 1 going high:
$ pylibftdi/examples/pin_read.py -n 0.01 -m 1 -k 1 && beep

Copyright (c) 2011-2014 Ben Bass <benbass@codedstructure.net> All rights reserved.

pylibftdi.examples.pin_read.display_loop(interval=1, count=0, match=None, mask=255)[source]

display and compare the value

Parameters:
  • interval – polling interval in seconds
  • count – number of polls to do, or infinite if 0
  • match – value to look for to exit early
  • mask – mask of read value before comparing to match
Returns:

‘ok’. either a match was made or none was requested

Return type:

bool

pylibftdi.examples.pin_read.display_value(value)[source]

display the given value

pylibftdi.examples.pin_read.get_value()[source]

get the value of the pins

pylibftdi.examples.pin_read.main(args=None)[source]

serial_loopback Module

test serial loopback; assumes Rx and Tx are connected

Copyright (c) 2010-2014 Ben Bass <benbass@codedstructure.net> All rights reserved.

class pylibftdi.examples.serial_loopback.LoopbackTester[source]

Bases: object

__init__()[source]

x.__init__(…) initializes x; see help(type(x)) for signature

main()[source]
test_loopback(lengths)[source]
pylibftdi.examples.serial_loopback.test_string(length)[source]

info Module

Report environment info relevant to pylibftdi

example usage:

$ python3 -m pylibftdi.examples.info
pylibftdi version     : 0.15.0
libftdi version       : libftdi_version(major=1, minor=1, micro=0, version_str=b'1.1', snapshot_str=b'unknown')
libftdi library path  : /usr/local/lib/libftdi1.dylib
libusb version        : libusb_version(major=1, minor=0, micro=19, nano=10903, rc=b'', describe=b'http://libusb.info')
libusb library path   : /usr/local/lib/libusb-1.0.dylib
Python version        : 3.4.0
OS platform           : Darwin-14.1.0-x86_64-i386-64bit

Copyright (c) 2015 Ben Bass <benbass@codedstructure.net>

pylibftdi.examples.info.ftdi_info()[source]

Return (ordered) dictionary contianing pylibftdi environment info

Designed for display purposes only; keys and value types may vary.