Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 1 | ============================= |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 2 | USB 7-Segment Numeric Display |
Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 3 | ============================= |
| 4 | |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 5 | Manufactured by Delcom Engineering |
| 6 | |
| 7 | Device Information |
| 8 | ------------------ |
| 9 | USB VENDOR_ID 0x0fc5 |
| 10 | USB PRODUCT_ID 0x1227 |
| 11 | Both the 6 character and 8 character displays have PRODUCT_ID, |
| 12 | and according to Delcom Engineering no queryable information |
| 13 | can be obtained from the device to tell them apart. |
| 14 | |
| 15 | Device Modes |
| 16 | ------------ |
| 17 | By default, the driver assumes the display is only 6 characters |
| 18 | The mode for 6 characters is: |
Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 19 | |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 20 | MSB 0x06; LSB 0x3f |
Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 21 | |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 22 | For the 8 character display: |
Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 23 | |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 24 | MSB 0x08; LSB 0xff |
Mauro Carvalho Chehab | d80b500 | 2019-04-15 23:56:01 -0300 | [diff] [blame] | 25 | |
Harrison Metzger | eb86be5 | 2008-08-14 11:29:32 -0500 | [diff] [blame] | 26 | The device can accept "text" either in raw, hex, or ascii textmode. |
| 27 | raw controls each segment manually, |
| 28 | hex expects a value between 0-15 per character, |
| 29 | ascii expects a value between '0'-'9' and 'A'-'F'. |
| 30 | The default is ascii. |
| 31 | |
| 32 | Device Operation |
| 33 | ---------------- |
| 34 | 1. Turn on the device: |
| 35 | echo 1 > /sys/bus/usb/.../powered |
| 36 | 2. Set the device's mode: |
| 37 | echo $mode_msb > /sys/bus/usb/.../mode_msb |
| 38 | echo $mode_lsb > /sys/bus/usb/.../mode_lsb |
| 39 | 3. Set the textmode: |
| 40 | echo $textmode > /sys/bus/usb/.../textmode |
| 41 | 4. set the text (for example): |
| 42 | echo "123ABC" > /sys/bus/usb/.../text (ascii) |
| 43 | echo "A1B2" > /sys/bus/usb/.../text (ascii) |
| 44 | echo -ne "\x01\x02\x03" > /sys/bus/usb/.../text (hex) |
| 45 | 5. Set the decimal places. |
| 46 | The device has either 6 or 8 decimal points. |
| 47 | to set the nth decimal place calculate 10 ** n |
| 48 | and echo it in to /sys/bus/usb/.../decimals |
| 49 | To set multiple decimals points sum up each power. |
| 50 | For example, to set the 0th and 3rd decimal place |
| 51 | echo 1001 > /sys/bus/usb/.../decimals |