Skip to main content

Python package to control BlinkStick USB devices.

Project description

BlinkStick Python interface to control devices connected to the computer.

What is BlinkStick? It’s a smart USB LED pixel. More info about it here:

http://www.blinkstick.com

Resources

Requirements

  • Python

  • BlinkStick pip module

  • Libusb for Mac OSX

Requirements Installation

Linux

Install pip (Python package management software):

sudo apt-get install python-pip

Mac OS X

Install libusb with homebrew:

brew install libusb

Install pip

sudo easy_install pip

Known Errors

ValueError: No backend available

This means that the Python usb module cannot find your installation of libusb. It seems to be an issue when you have homebrew installed somewhere that is not expected.

It can be mitigated with

sudo ln -s `brew --prefix`/lib/libusb-* /usr/local/lib/

Microsoft Windows

BlinkStick package Installation

Linux and Mac OS X

Install blinkstick Python package with pip:

sudo pip install blinkstick

Microsoft Windows

Open commandline environment by using Win+R keyboard shortcut and typing in:

cmd

Assuming that Python was installed into C:\Python27 folder, type in the following into the command window:

C:\Python27\Scripts\pip.exe install blinkstick

Description

Together with the Python module an additional command line tool is installed to control BlinkSticks.

Note: this tool is not available in Windows.

Use the following command to see all available options:

blinkstick -h
Usage: blinkstick [options]

Options:
  -h, --help            show this help message and exit
  -i, --info            display BlinkStick info
  -s SERIAL, --serial=SERIAL
                        select device by serial number. If unspecified, action
                        will be performed on all BlinkSticks.
  --inverse             control BlinkSticks in inverse mode
  --channel=CHANNEL     Select channel
  --index=INDEX         Select index
  --limit=LIMIT         Limit the brightness of the color 0..100
  --set-color=COLOR     set the color for the device. The value can either be
                        a named color, hex value, 'random' or 'off'.
                        CSS color names are defined
                        http://www.w3.org/TR/css3-color/ e.g. red, green,
                        blue.Specify color using hexadecimal color value e.g.
                        '#FF3366'
  --duration=DURATION   Set duration of transition in milliseconds (use with
                        --morph and --pulse).
  --delay=DELAY         Set time in milliseconds to light LED for (use with
                        --blink).
  --repeats=REPEATS     Number of repetitions (use with --blink and --pulse).
  --blink               Blink LED (requires --set-color, and optionally
                        --delay)
  --pulse               Pulse LED (requires --set-color, and optionally
                        --duration).
  --morph               Morph to specified color (requires --set-color, and
                        optionally --duration).
  --set-infoblock1=INFOBLOCK1
                        set the first info block for the device.
  --set-infoblock2=INFOBLOCK2
                        set the second info block for the device.
  -v, --verbose         Display debug output
  --add-udev-rule       Add udev rule to access BlinkSticks without root
                        permissions. Must be run as root.
  --set-mode=MODE       Set mode for BlinkStick Pro. 0 - default, 1 - inverse,
                        2 - ws2812

Command Line Examples

Set random color for all BlinkSticks:

blinkstick --set-color random

Set blue color for the BlinkStick with serial number BS000001-1.0:

blinkstick --serial BS000001-1.0 --set-color blue

Blink red color twice

blinkstick --set-color red --blink --repeats 2

Blink pulse green color three times

blinkstick --set-color green --pulse --repeats 2

Morph to red, green and blue

blinkstick --set-color red --morph
blinkstick --set-color gree --morph
blinkstick --set-color blue --morph

Connect to blinkstick.com and CPU usage command line options are no longer available. Please read this notice about module simplification.

Control individual pixels on BlinkStick Pro. First you will need to set BlinkStick Pro mode to WS2812.

blinkstick --set-mode 2

Now you can set color of individual LEDs connected to R, G or B channels.

blinkstick --channel 0 --index 5 --set-color red

More code examples for controlling BlinkStick Pro are available in the wiki.

Permission problems in Linux and Mac OS X

If the script returns with an error

Access denied (insufficient permissions)

You can either run the script with sudo, for example:

sudo blinkstick --set-color random

Or you can add a udev rule to allow any user to access the device without root permissions with this single command.

sudo blinkstick --add-udev-rule

There is also another equivalent command that does exactly the same thing:

echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"20a0\", ATTR{idProduct}==\"41e5\", MODE:=\"0666\"" | sudo tee /etc/udev/rules.d/85-blinkstick.rules

Reboot computer after you have added the command and all users will have permissions to access the device without the need of root permissions.

Maintainers

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

BlinkStick-1.1.2.tar.gz (18.8 kB view details)

Uploaded Source

File details

Details for the file BlinkStick-1.1.2.tar.gz.

File metadata

  • Download URL: BlinkStick-1.1.2.tar.gz
  • Upload date:
  • Size: 18.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for BlinkStick-1.1.2.tar.gz
Algorithm Hash digest
SHA256 a9560634b656a2a2c59985b0bb5141579760d7d5044d0c58d60917388b97ba4d
MD5 1acd1f4200b5e7d3b78a777b3a0dc6fa
BLAKE2b-256 b28df6b2e68af2d038f1cb2c9bdb2f34aecc48f03c8945f96581f9e3533316b5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page