Giter Site home page Giter Site logo

bombcheck / esp8266_artnet-led-dmx-node Goto Github PK

View Code? Open in Web Editor NEW
79.0 25.0 20.0 369 KB

ESP8266 based WiFi ArtNet-Node for WS2812B-LED Pixel

License: GNU General Public License v3.0

C++ 73.41% C 23.68% CSS 2.90%
esp8266 artnet ws2812b led ledmatrix led-strips led-matrix-displays arduino

esp8266_artnet-led-dmx-node's Introduction

ESP8266 ArtNet-LED-DMX-Node GitHub release

ESP8266 based WiFi ArtNet V4 to DMX, RDM and LED Pixels.

Forked this from the great work of Matthew Tong because I love all kinds of shining/flashing/moving lighting stuff and needed some modifications to suit my needs.

Getting Started

Pre-Compiled binaries

Check the 'release'-section for the latest ready-to-flash-binaries. Download and flash with flasher of your choice. For example the NodeMCU PyFlasher

Attention: These pre-compiled binaries are only for NodeMCU-boards!

Compiling from source

  • You need the latest ESP8266 Arduino Core files and the latest Arduino IDE version.
  • Make sure you placed the libraries from this project into your Arduino libraries folder.
  • Select the proper board. For me it is a "NodeMCU 1.0 (ESP-12E Module)".
  • Make sure to compile with a CPU Frequency of 160 MHz!

First Boot

On your first boot, the device will start a hotspot called "espArtLeDNode" with a password of "espArtLeDNode" (case sensitive). Login to the hotspot and goto http://10.0.17.1 in a web browser.

Note that the hotspot is, by default, only for accessing the settings page. You'll need to enable Stand Alone mode in the web UI if you want to send ArtNet data to the device in hotspot mode.

Web-UI

In hotspot mode, goto http://10.0.17.1 and in Wifi mode goto whatever the device IP might be - either static or assigned by DHCP.

In the Wifi tab, enter your SSID and password. Click save (it should go green and say Settings Saved). Now click reboot and the device should connect to your Wifi.

If the device can't connect to the wifi or get a DHCP assigned address within (Start Delay) seconds, it will start the hotspot and wait for 30 seconds for you to connect. If a client doesn't connect to the hotspot in time, the device will restart and try again.

Restore Factory Defaults

Hold GPIO14 to GND while the device boots.

Features

  • sACN and ArtNet V4 support
  • 2 full universes of DMX output with full RDM support for both outputs
  • Up to 1360 ws2812(b) pixels - 8 full universes
  • DMX/RDM out one port, ws2812(b) out the other
  • DMX in - send to any ArtNet device
  • Web UI with mobile support
  • Web UI uses AJAX & JSON to minimize network traffic used & decrease latency
  • Full DMX Workshop support
  • Pixel FX - a 12 channel mode for ws2812 LED pixel control

Pixel FX

To enable this mode, select WS2812 in the port settings and enter the number of pixels you wish to control. Select '12 Channel FX'. 'Start Channel' is the DMX address of the first channel below.

Note: You still need to set the Artnet net, subnet and universe correctly.

DMX Channel Function Values (0-255)
1 Intensity 0 - 255
2 FX Select 0 - 49 Static
50 - 74 Rainbow
75 - 99 Theatre Chase
100 - 124 Twinkle
3 Speed 0 - 19 Stop - Index Reset
20 - 122 Slow - Fast CW
123 - 130 Stop
131 - 234 Fast - Slow CCW
235 - 255 Stop
4 Position 0 - 127 - 255 Left - Centre - Right
5 Size 0 - 255 Small - Big
6 Colour 1 0 - 255 Red
7 0 - 255 Green
8 0 - 255 Blue
9 Colour 2 0 - 255 Red
10 0 - 255 Green
11 0 - 255 Blue
12 Modify 0 - 255 *Modify FX

Modify FX is only currently used for the Static effect and is used to resize colour 1 within the overall size.

NodeMCU & Wemos Pins

These boards use strange numbering that doesn't match the ESP8266 numbering. Here are the main hookups needed:

NodeMCU & Wemos ESP8266 GPIO Purpose
TX GPIO1 DMX_TX_A (Port A)
D4 GPIO2 DMX_TX_B (Port B)
RX GPIO3 DMX_RX (for A & B)
D1 GPIO5 DMX_DIR_A
D0 GPIO16 DMX_DIR_B

Special thanks to

Matthew Tong for the great work this fork is based upon.

esp8266_artnet-led-dmx-node's People

Contributors

bombcheck avatar ia-nbernhardt 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  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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp8266_artnet-led-dmx-node's Issues

Problem with DMX Input when Port B is active

Hello, having the problem that DMX Input works well for me if i dont have any output on Port B.

But if i connect WS2812 stripes on output B and send Data to this, or i configure Port B as DMX Output the Port A input brings me a lot of incorrect values from my Light Controll to PC over Artnet.

Is there any Bugfix or do you think it is hardware related? Checked all Pullup resistors but dont seem that this is the Problem. Hope you can help me.

Thanks a lot :-)

No schematics included

Could you please add a schematic?
or is it the same as Matthew Tong?
A schematic for the NodeMCU V3 would be really good.

it crash by use esp-07

I was first follow Matthew Tong previously project and get the information from SCH file. was bought 6 ESP-07 from Taobao(alibaba). even your project which was improved, but it works only 15 seconds then start to flick and it stop after 5 seconds also, after some time it automatic start back to work and continued in this loop.

ESP-07 has only 8M flash, nodemcu with ESP-12E with 32M flash, will it be this issue?

but anyways, you did a good job, I'm 35, without any coding experience, just want to start to learn arduino. your job help me a lot. thanks so much

Can't Compile

Hi,

Firstly, I'm quite new at this, so i am doing something dumb, Please feel free to point that out. Also I'll offer a blanket apology in advance for any dumb questions.

I am trying to compile the espArtLeDNode.ino sketch and I am getting an error:

ajax:103:55: error: ambiguous overload for 'operator~' (operand type is 'IPAddress')
deviceSettings.broadcast = deviceSettings.ip | (~deviceSettings.subnet);

I have not altered anything in the original sketch

I have the libraries from your GIT installed.

I have updated pretty much all other libraries

Hardware side:
I am using a LOLIN V3 NodeMCU Clone, (I assume!)
I have my Board set to Generic ESP8266 Module
I have built a breadboard per the Original Schematics.

If you have any suggestions/recommendations or need further information please let me know.

Cheers

Errors when i Compile

Hi
I get some errors when i Compile.

/home/User/snap/arduino/current/Arduino/libraries/espDMX_RDM/espDMX_RDM.cpp: In member function 'void espDMX::begin(uint8_t, uint8_t*)':
/home/User/snap/arduino/current/Arduino/libraries/espDMX_RDM/espDMX_RDM.cpp:389:49: error: invalid conversion from 'void*' to 'fp_putc_t {aka void (*)(char)}' [-fpermissive]
ets_install_putc1((void *) &uart_ignore_char);
^
In file included from /home/User/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/2.7.3/cores/esp8266/pgmspace.h:11:0,
from /home/User/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/2.7.3/cores/esp8266/Arduino.h:240,
from /home/User/snap/arduino/current/Arduino/libraries/espDMX_RDM/espDMX_RDM.h:39,
from /home/User/snap/arduino/current/Arduino/libraries/espDMX_RDM/espDMX_RDM.cpp:17:
/home/User/snap/arduino/61/.arduino15/packages/esp8266/hardware/esp8266/2.7.3/tools/sdk/include/ets_sys.h:219:6: error: initializing argument 1 of 'void ets_install_putc1(fp_putc_t)' [-fpermissive]
void ets_install_putc1(fp_putc_t routine);
^
exit status 1
Fehler beim Kompilieren für das Board Generic ESP8266 Module.

Does any Nerd can explane me why Arduino do this???

ArduinoJson 5.13.5
ESP8266 Genric Board

Flo

hotspot password invalid

successfully flashed to a nodemcu. Shows up in my wifi list as "espArtLeDNode0203" but it says the password is invalid even when i use cut/paste (no quotes) "espArtLeDNode".

transmit and receive DMX signal

I need to transmit a DMX signal from a standard Chinese controller "DMX-192" to a transmitter and receive the signal to six receivers.
ESP-12F board.
I programmed two controllers for the test, registered a WiFi router, but I can’t set up DMX data transfer.
help me set up all the necessary parameters for DMX transmission!
1-1
1-2
1-3
2-1
2-2
2-3

No more output if there is a short power interrupt

Hi, it works, it's the only release of many (.bin files) I've tried that works, thanks :)
It's also stable, there is only one problem, if a little power interrupt occours the web still working, but it will not more send on DMX the IP broadcast received, and there is no watchdog that can reboot and solve it. Reboot doesn't help, it should be needed to hardware reset the Wemos

nodeMCU fried. This is probably not a firmware issue but I'm looking for help.

First off, thanks so much for this version! It solved the saving issues I was having before with Mtongnz's version. But like most things, you find one solution and another problem arises. I don't know if this is a firmware issue or not but I'm a bit puzzled so I figured I'd post here and see if anyone has any insight.

I was using the usb charger to power 6 nodeMCUs for 6 separate 60 pixel long led strips and 3 of them got fried. I was using Resolume lighting software at 60fps (composition was 107x60px) and all 6 were working fine for about an hour then some started dropping off and now aren't detected by my PC and there's a bit of a smell coming from them. Before they died, when I used a specific clip, some started to drop out, then I'd switch to another clip and they would slowly go back to normal. Here's a video of the issue.

I also did a few stress tests to make sure the saving issues were really resolved and to simulate power issues that could arise in the field. I would unplug the usb power supply and re-plug in it. once fairly quickly. In hindsight this probably wasn't the best idea.

Is this power supply not recommended? Or maybe the nodeMCU can't handle the information at 60fps? I have a 470 ohm resistor on the data line. Maybe my unplugging them did something? After the quick unplugging and re-plugging back in the power, 2 of the strips stayed randomly spotty with blue and green for about 20-30 seconds which made me think I fried the led strips but then they went back to normal.

Thanks in advance for any help!

Are you interested to port this on WLED?

Hi mate, I don't know if you work more on this project or if you aren't more interested on DMX, anyway I would ask you if you may port this to the WLED project, giving it a chance to receive DMX commands by wire.
Your input code is the best (and more stable) I've found around, and it's written already for ESP8622, maybe it's not complicated :)

it not run smoothly

hello body, it's me again, my nodemcu was arrived, base on esp-12E, it works, and never crash, but one more issue is there, signal output are not smooth, only 5 seconds then will just like jailed in 3 seconds, continued loop like this way. my setting is cpu frequency 160MHz / flash size is 4M(3M spiffs), other as default.
if you can not understand I was post one video to youtube, please kindly check it, thanks so much
https://youtu.be/--pHXtD6ENs
best regards
Michael

Is the Flickering issue solved?

Is the flickering issue solved?
Because in my tests with jinx
Simple switch between r, g, b and rgb(white)
Over 60 led...
Produces flickering

Thank you

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.