-
Notifications
You must be signed in to change notification settings - Fork 268
Expand file tree
/
Copy pathexampleAPI.bash
More file actions
executable file
·40 lines (35 loc) · 1.47 KB
/
exampleAPI.bash
File metadata and controls
executable file
·40 lines (35 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env bash
# ISSILed
# Virtual Serial Port API Example
# Jacob Alexander 2015
if [ $# -eq 0 ]; then
echo "You must specify your virtual serialport. (/dev/ttyACM0 on linux, /dev/cu.usbmodemXXXX on OSX)"
echo " ex: $0 /dev/ttyACM0"
exit 1
fi
# XXX Set this to match your virtual serialport
# TODO Show examples for Cygwin/Windows
# For Mac OSX it will be something like /dev/cu.usbmodem1413 (number may differ)
SERIALPORT=$1
# NOTE: Make sure you don't write too quickly to the serial port, it can get overwhelmed by a modern computer
# Generally this just means commands will get ignored
# I'm using 100 ms sleeps here, but much smaller are probably sufficient
# Clear out cli buffer
printf "\r" > $SERIALPORT
# Write to ISSI Page
# Arguments
# - page
# - starting address
# - data (usually brightness) (8 bits)
#
# For brightness control, set the starting address to 0x24
# By default only page 0x00 is used
# There are 8 pages of memory (these can be cycled through for animiations)
# 144 led channels
# Page 0x0A is used for configuration
# See the datasheet for full details http://www.issi.com/WW/pdf/31FL3731C.pdf
sleep 0.1
printf "ledWPage 0xE8 0x00 0x24 0x10 0x20 0x30 0x40 0x50\r" > $SERIALPORT # Channel 1
printf "ledWPage 0xEA 0x00 0x24 0x10 0x20 0x30 0x40 0x50\r" > $SERIALPORT # Channel 2
printf "ledWPage 0xEC 0x00 0x24 0x10 0x20 0x30 0x40 0x50\r" > $SERIALPORT # Channel 3
printf "ledWPage 0xEE 0x00 0x24 0x10 0x20 0x30 0x40 0x50\r" > $SERIALPORT # Channel 4