Skip to content

Commit 84cd83a

Browse files
authored
Merge pull request #1410 from bitte-ein-bit/feature/de-interface
Feature/de interface
2 parents c9add79 + 30577e3 commit 84cd83a

6 files changed

Lines changed: 35 additions & 6 deletions

File tree

debian/ola.udev

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,12 @@ SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0483", ATTRS{idPro
2121
# udev rules for the DMXControl Projects e.V. Nodle U1
2222
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0830", GROUP="plugdev", TAG+="uaccess"
2323

24+
# udev rules for the Digital Enlightenment USB-DMX device
25+
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="04b4", ATTRS{idProduct}=="0f1f", GROUP="plugdev"
26+
27+
# udev rules for the FX5 DMX device
28+
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="16c0", ATTRS{idProduct}=="088b", GROUP="plugdev"
29+
2430
# udev rules for the DMXCreator 512 Basic device
2531
SUBSYSTEM=="usb|usb_device", ACTION=="add", ATTRS{idVendor}=="0a30", ATTRS{idProduct}=="0002", GROUP="plugdev"
2632

debian/org.openlighting.ola.ola.metainfo.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,10 @@
2626
<modalias>usb:v16C0p05DCd*</modalias> <!-- Anyma DMX -->
2727
<modalias>usb:v0962p*</modalias> <!-- USBDMX2 -->
2828
<modalias>usb:v10CFp8062d*</modalias> <!-- Velleman -->
29+
<modalias>usb:v0a30p0002d*</modalias> <!-- DMXCreator 512 Basic -->
2930
<modalias>usb:v16D0p0830d*</modalias> <!-- DMXControl Projects e.V. Nodle U1 -->
31+
<modalias>usb:v04B4p0F1Fd*</modalias> <!-- Digital Enlightenment DMX-USB -->
32+
<modalias>usb:v16C0p088Bd*</modalias> <!-- FX5 DMX -->
3033
<modalias>usb:v04D8pFA63d*</modalias> <!-- Eurolite -->
3134
<!--<modalias>usb:vpd*</modalias>--> <!-- Karate -->
3235
<modalias>usb:v1D50p607Ad*</modalias> <!-- Scanlime Fadecandy -->

plugins/usbdmx/DMXCProjectsNodleU1.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,10 @@ namespace {
4949

5050
static const unsigned char WRITE_ENDPOINT = 0x02;
5151
static const unsigned char READ_ENDPOINT = 0x81;
52-
static const unsigned int URB_TIMEOUT_MS = 50;
52+
// On a non-overclocked Raspberry Pi 1 the previous value of 50ms lead to some
53+
// timeout transfer errors. Changing to 60 and a nice level of -20 made them go
54+
// away. Changing to 70 made them go away without touching the nice level.
55+
static const unsigned int URB_TIMEOUT_MS = 70;
5356
static const int CONFIGURATION = 1;
5457
static const int INTERFACE = 0;
5558

plugins/usbdmx/DMXCProjectsNodleU1Factory.cpp

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,25 @@ namespace ola {
3030
namespace plugin {
3131
namespace usbdmx {
3232

33-
const uint16_t DMXCProjectsNodleU1Factory::VENDOR_ID = 0x16d0;
34-
const uint16_t DMXCProjectsNodleU1Factory::PRODUCT_ID = 0x0830;
33+
const uint16_t DMXCProjectsNodleU1Factory::VENDOR_ID_DMXC_PROJECTS = 0x16d0;
34+
const uint16_t DMXCProjectsNodleU1Factory::PRODUCT_ID_DMXC_P_NODLE_U1 = 0x0830;
35+
36+
const uint16_t DMXCProjectsNodleU1Factory::VENDOR_ID_DE = 0x4b4;
37+
const uint16_t DMXCProjectsNodleU1Factory::PRODUCT_ID_DE_USB_DMX = 0xf1f;
38+
39+
const uint16_t DMXCProjectsNodleU1Factory::VENDOR_ID_FX5 = 0x16c0;
40+
const uint16_t DMXCProjectsNodleU1Factory::PRODUCT_ID_FX5_DMX = 0x88b;
3541

3642
bool DMXCProjectsNodleU1Factory::DeviceAdded(
3743
WidgetObserver *observer,
3844
libusb_device *usb_device,
3945
const struct libusb_device_descriptor &descriptor) {
40-
if (descriptor.idVendor != VENDOR_ID || descriptor.idProduct != PRODUCT_ID) {
46+
if (!((descriptor.idVendor == VENDOR_ID_DMXC_PROJECTS &&
47+
descriptor.idProduct == PRODUCT_ID_DMXC_P_NODLE_U1) ||
48+
(descriptor.idVendor == VENDOR_ID_DE &&
49+
descriptor.idProduct == PRODUCT_ID_DE_USB_DMX) ||
50+
(descriptor.idVendor == VENDOR_ID_FX5 &&
51+
descriptor.idProduct == PRODUCT_ID_FX5_DMX) )) {
4152
return false;
4253
}
4354

plugins/usbdmx/DMXCProjectsNodleU1Factory.h

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,12 @@ class DMXCProjectsNodleU1Factory :
5757
PluginAdaptor* const m_plugin_adaptor;
5858
Preferences* const m_preferences;
5959

60-
static const uint16_t VENDOR_ID;
61-
static const uint16_t PRODUCT_ID;
60+
static const uint16_t VENDOR_ID_DMXC_PROJECTS;
61+
static const uint16_t VENDOR_ID_DE;
62+
static const uint16_t VENDOR_ID_FX5;
63+
static const uint16_t PRODUCT_ID_DMXC_P_NODLE_U1;
64+
static const uint16_t PRODUCT_ID_DE_USB_DMX;
65+
static const uint16_t PRODUCT_ID_FX5_DMX;
6266

6367
DISALLOW_COPY_AND_ASSIGN(DMXCProjectsNodleU1Factory);
6468
};

plugins/usbdmx/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,13 @@ This plugin supports various USB DMX devices including:
55

66
* Anyma uDMX
77
* AVLdiy D512
8+
* Digital Enlightenment USB-DMX
89
* DMXControl Projects e.V. Nodle U1
910
* DMXCreator 512 Basic
1011
* Eurolite USB-DMX512 PRO
1112
* Eurolite USB-DMX512 PRO MK2 (when `enable_eurolite_mk2 = true`)
1213
* Fadecandy
14+
* FX5 DMX
1315
* ShowJockey SJ-DMX-U1
1416
* Sunlite USBDMX2
1517
* Velleman K8062.

0 commit comments

Comments
 (0)