Open Lighting Architecture  Latest Git
SPIDMXPluginDescription.h
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 2 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU Library General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software
14  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
15  *
16  * SPIDMXPluginDescription.h
17  * Contains the description for the spidmx plugin.
18  * Copyright (C) 2016 Florian Edelmann
19  *
20  * This file has been autogenerated by convert_README_to_header.sh, DO NOT EDIT.
21  */
22 #ifndef PLUGINS_SPIDMX_SPIDMXPLUGINDESCRIPTION_H_
23 #define PLUGINS_SPIDMX_SPIDMXPLUGINDESCRIPTION_H_
24 
25 namespace ola {
26 namespace plugin {
27 namespace spidmx {
28 
29 const char plugin_description[] = "Native SPI DMX Plugin\n"
30 "=====================\n"
31 "\n"
32 "This plugin samples the Serial Peripheral Interface (SPI) at 2MHz to\n"
33 "receive DMX data. You need to connect only the *MISO* pin to the *receive*\n"
34 "pin of a transceiver chip like the *MAX485* or *SN75176*.\n"
35 "\n"
36 "Repeatedly, blocks of 4096 bytes are read as a batch operation and parsed\n"
37 "afterwards. We must hope that a DMX packet is contained in a block as a\n"
38 "whole. Since often a packet will be cut off by the block end, the higher\n"
39 "channels are updated less frequently than the lower ones. However, you can\n"
40 "set a larger block size if you want a higher refresh rate for the high\n"
41 "channels (which results in more stuttering in all channels, as the time\n"
42 "between two SPI read operation increases).\n"
43 "\n"
44 "A detailed description of the development process and the techniques used\n"
45 "can be found in Flo Edelmann's Bachelors Thesis:\n"
46 "http://mnm-team.org/pub/Fopras/edel17/PDF-Version/edel17.pdf\n"
47 "\n"
48 "\n"
49 "## Raspberry Pi configuration\n"
50 "\n"
51 "On the Raspberry Pi, you need to enable SPI and increase `spidev`'s\n"
52 "read / transmit buffer size:\n"
53 "\n"
54 "* Run `sudo raspi-config` and enable SPI.\n"
55 "* Add `spidev.bufsiz=65536` to `/etc/cmdline.txt` (in the same line). This\n"
56 " is the maximum value. The value specified must be at least the block\n"
57 " length set below. The default `spidev.bufsiz` is 4096.\n"
58 "* Reboot.\n"
59 "* Check `cat /sys/module/spidev/parameters/bufsiz` that it now returns the\n"
60 " new value.\n"
61 "\n"
62 "Only SPI device `/dev/spidev0.0` is available via the GPIO pins.\n"
63 "\n"
64 "\n"
65 "## Config file: `ola-spidmx.conf`\n"
66 "\n"
67 "`enabled = true` \n"
68 "Enable this plugin (DISABLED by default).\n"
69 "\n"
70 "`device_prefix = <string>` \n"
71 "The prefix of files to match in `/dev`. Usually set to `spidev`. Each match\n"
72 "will instantiate a device. Multiple values are supported by repeating this\n"
73 "line.\n"
74 "\n"
75 "### Per Device Settings\n"
76 "\n"
77 "**Note:** Substitute `<device>` with the full device name, e.g.\n"
78 "`/dev/spidev0.0`.\n"
79 "\n"
80 "`<device>-blocklength = 4096` \n"
81 "How many SPI bytes (= DMX bits) should be received (optional). The default\n"
82 "is 4096, but 8192 is recommended. You may need to make further\n"
83 "configurations on the Raspberry Pi (see above).";
84 
85 } // namespace spidmx
86 } // namespace plugin
87 } // namespace ola
88 
89 #endif // PLUGINS_SPIDMX_SPIDMXPLUGINDESCRIPTION_H_
The namespace containing all OLA symbols.
Definition: Credentials.cpp:44