Python library for interfacing with the minishift.
>>> pip install minishift-python
or, to install from source:
>>> git clone https://github.com/arachnidlabs/minishift-python.git
>>> cd minishift-python
>>> sudo setup.py install
>>> import minishift
>>> width = 64
>>> vid, pid = 0x04d8, 0xf517
>>> ms = minishift.Minishift(minishift.MCP2210Interface(vid, pid), width)
>>> ms.canvas.write_text(0, "Hello world")
>>> ms.update()
you can also create your own canvas instead of using the built-in one:
>>> canvas = minishift.Canvas(width)
>>> x = canvas.write_text(0, "Test")
>>> canvas[x, 0] = 1 # Set the bottom pixel on the line after the text to 1
>>> ms.update(canvas)
and scrolling is supported with 'infinite' canvases that expand as needed:
>>> canvas = minishift.Canvas()
>>> canvas.write_text(0, "This is a message that's far too long for a display.")
>>> for slice in canvas.scroll():
>>> ms.update(slice)
>>> time.sleep(0.05)
The minishift module provides a daemon that exposes a simple HTTP interface for controlling a chain of minishifts. To run it:
$ python -m minishift.minishiftd <width>
Where width is the width in pixels of your minishift chain. Run python -m minishift.minishiftd --help
for command line arguments, which include -d
to run as a daemon, and -p
to bind to a specified host and port (the default is port 8000).
Once the daemon is running, you can make GET or POST requests to the /set
URI to change what's displayed on the minishift. For example:
$ curl -G http://localhost:8000/set --data-urlencode "text=Test!"
Displays "Test!" left-aligned on the minishift. To display scrolling text, specify the 'interval' parameter, in seconds per scroll step:
$ curl -G http://localhost:8000/set --data-urlencode "text=To be or not to be, that is the question" -d "interval=0.05"
And to scroll something a specified number of times before clearing the display, specify the 'times' parameter:
$ curl -G http://localhost:8000/set --data-urlencode "text=To be or not to be, that is the question" -d interval=0.05 -d times=2