Code Monkey home page Code Monkey logo

lxesp8266dmx's Introduction

LXESP8266DMX

DMX Driver for ESP8266 using ArduinoIDE

lxesp8266dmx's People

Contributors

claudeheintz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

lxesp8266dmx's Issues

Examples don't work

Hello

I can't get your examples to build - which I think it because of the refactoring you've done. Any ideas on what the fix is?

Thanks!

Richard

Getting serial debug print working

Hello, i have been playing with this library while trying to make a RDM device+dmx inputneopixel following the examples and adding rdm functions calls (device info ,product category , etc) and have partial working project but need to troubleshoot(cant assign dmx address over 225 via lighting console rdm commands)

i see in the setup "Serial.setDebugOutput(1); //use uart0 for debugging"
but cant seem to find a way to get serial prints to work,
i have also defined: LXESP8266UARTDMX_DEBUG but that doesnt seem to change anything
is there a special trick i dont know?

Thanks for the amazingly put library btw!

receive DMX packets from simple 12-channel controller (with less than 512 channels per packet)

I have a working test setup based on the DMXInputTest.ino example from this repository. It can receive DMX signals sent from an Enttec DMX USB Pro (verified by controlling a connected LED). However, it fails to receive signals from a simple 12-channel manual DMX controller.

Looking at the DMX signals with an oscilloscope, I can see that the manual controller, other than the Enttec, only sends 12 channels of data per packet, not the full DMX range of 512 channels. So I suspect this to be the cause.

Does this library function with DMX packets of only 12 channels (or generally, less than 512)? If not, could it be changed to support this? How?

Random values

Hello,
I have been trying to use this library on a wemos lolin D1 mini pro in order to receive DMX.
It works fine when all the channels are the same value.
But when I send different values in different channels... ramdom blinks occur.
Do you know how could I address this problem?
Thanks for making this library!
Antonio.

Compatibility with ESP8266 Arduino Core v2.4

Hi Claude, have you tested and verified that this library works with the ESP8266 Arduino Core beyond version 2.3? I am using a Wemos D1 Mini, and have found that running the DMXInputTest.ino example results in a WDT reset shortly after DMX packets are received. I tested by adding some Serial.print's to the sketch, and found that shortly after receiving DMX (but not always right away), the main loop seems to stop executing. The gotDMXCallback continues to be called every ~23ms like usual, until the watchdog resets the ESP. I can reproduce this issue with every version of 2.4.X so far (2.4 RC1, RC2, 2.4.1, 2.4.2), but there is no issue on 2.3 or earlier. I may find time to look into this in the next week or two, but figured I'd check if you'd come across it as well. I have been using the Arduino IDE Boards Manager to download and change versions of the ESP8266 Core.

How to Connect ESP, RS485Module and XLR Connector

Hello,
Just need if esp must be connected to an rs485 board and how. I plan to use serial0 as receiver and Serial1 for debug (we need just tx to serial print). My goal is to receive dmx signal from a controller and do some action with value received (for ex. dimming a led controlled by my domotic system)...

wrong register bit at function (void uart_init_tx...)

`void uart_init_tx(int baudrate, byte config, LX8266DMX* dmxo) {
pinMode(2, SPECIAL);
uint32_t conf1 = 0x00000000;

uart_set_baudrate(UART1, baudrate);
USC0(UART1) = config;
uart_tx_flush();
uart_enable_tx_interrupt(dmxo);

conf1 |= (0x01 << UCFFT);//empty threshold 0x20 <== the UCFFT should be UCFET
USC1(UART1) = conf1;

}`

Problem to install LXESP8266DMX libray

Hi, sorry for troubble.I'm unable to install the libray.
I've download the zip file and then install with "zip" option.
I've tried with IDE 1.8.9 release and IDE 2.3, two empty project, on wemos d1 mini.
Have you some idea about this problem,Have I lost some information for the installation procedure?

thank you again
Mario

here the ctrl-c of error in ver 1.8.9
////////////////////////////////////////-----------------------error------------------------------/////////////////////////////////

Arduino:1.8.9 (Windows 7), Scheda:"WeMos D1 R2 & mini, 80 MHz, 4M (1M SPIFFS), v2 Prebuilt (MSS=536), Disabled, None, 921600"

java.io.FileNotFoundException: C:\Users\Mario\AppData\Local\Temp\arduino_709842\LXESP8266DMX-master147796\LXESP8266DMX-master\examples\feather shield ESP8266:ESP32\FeatherDMXShieldDesign.pdf (La sintassi del nome del file, della directory o del volume non è corretta)
at java.io.FileOutputStream.open0(Native Method)
at java.io.FileOutputStream.open(FileOutputStream.java:270)
at java.io.FileOutputStream.(FileOutputStream.java:213)
at java.io.FileOutputStream.(FileOutputStream.java:162)
at processing.app.tools.ZipDeflater.deflate(ZipDeflater.java:50)
at processing.app.Base.handleAddLibrary(Base.java:2276)
at processing.app.Base$6.actionPerformed(Base.java:1095)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886)
at java.awt.Component.processMouseEvent(Component.java:6539)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6304)
at java.awt.Container.processEvent(Container.java:2239)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2297)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4904)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4535)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4476)
at java.awt.Container.dispatchEventImpl(Container.java:2283)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:84)
at java.awt.EventQueue$4.run(EventQueue.java:733)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:730)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
C:\Users\Mario\AppData\Local\Temp\arduino_709842\LXESP8266DMX-master147796\LXESP8266DMX-master\examples\feather shield ESP8266:ESP32\FeatherDMXShieldDesign.pdf (La sintassi del nome del file, della directory o del volume non è corretta)

Questo report potrebbe essere più ricco di informazioni abilitando l'opzione
"Mostra un output dettagliato durante la compilazione"
in "File -> Impostazioni"

2 DMX outputs

Hi

Please could you add to this library next DMX output as it is, for example, the Library for Teens 3 thanks.

Saving to EEPROM not working on ESP8266 NodeMCU v3

EEPROM.commit();

cause reset when RO---RX cable is connected . Cant tell more because no serial debug.

Connection max485 to ESP8266 NodeMCU v3

RO---RX

3.3v power on max485, all working except saving EEPROM

Can't receive DMX on the UART0 swap pin.

Hi,
First of all thank you for your library ! It works great when i use an ESP on the default RX pin (3).
Somehow i tried before to receive on the UART0 swap pin (13), by simply making a small modification calling instead of
pinMode(3, SPECIAL);
inside of void uart_init_rx()
pinMode(13, FUNCTION_4);
That didn't work as expected somehow.
I managed to write my own DMX receive code, which did work on the swap pin, but then i was creating something that uses the primary RX pin again and that code somehow failed to work properly and your library did work, so i thought i'd try and see if i could get it to work again on the swap pin, but somehow still no luck. Any idea how to get it working ?
I went as far as to modify the startInput(); function to

void LX8266DMX::startInput ( bool swap ) {	
	if ( _direction_pin != DIRECTION_PIN_NOT_USED ) {
		digitalWrite(_direction_pin, LOW);
	}
	if ( _interrupt_status != ISR_INPUT_ENABLED ) {
		stop();
	}
	if ( _interrupt_status == ISR_DISABLED ) {	//prevent messing up sequence if already started...
	   _dmx_read_state = DMX_STATE_IDLE;
	   uart_init_rx(DMX_DATA_BAUD, FORMAT_8N2, this, swap);
	   _interrupt_status = ISR_INPUT_ENABLED;
	}
}

and uart_init_rx(); to

void uart_init_rx(int baudrate, byte config, LX8266DMX* dmxi, bool swap) {
    uint32_t conf1 = 0x00000000;
	if (swap) {
		pinMode(13, FUNCTION_4);
	}
	else {
		pinMode(3, SPECIAL);
	}
    uart_set_baudrate(UART0, baudrate);
    USC0(UART0) = config;
    
    conf1 |= (0x01 << UCFFT);
    USC1(UART0) = conf1;

    uart_rx_flush();
    uart_enable_rx_interrupt(dmxi);
}

to not break the existing library using sketch, and in my mind, this should do the trick.
I know for sure the hardware works.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.