I will want my Arduino Mega to be updated maybe every other month or so with a new sequence. I have heard that my DATA wire should be very close to the start of the string (mine will be house lights). Does anyone know if this is truly the case, or can I have the data line 20-30’ away from the beginning of the lights?
If I do need the data line very close to the start, what options are there to hook up an Arduino to my network, the one I have does not have anything but USB hookup.
The alternative will be to setup some sort of DATE code that will automatically change as I come up with new sequences. Could I also use TIME to turn them on and off?
There are Ethernet to USB adapters you could use, to keep the Arduino near the led strip.
Better would be to use wifi or Ethernet adapter, and put the sequence in a location you can edit via the network.
Actually the bottom line is try it. Use a good quality single core screened cable (Coax, made to suit the desired frequency of the data and low capacitance). Use the core as the data from the Arduino, and tie the screen to the Arduino 0v. Leave the far end of the screen unconnected to prevent ground loops. May work, worth a try. I have seen TTL (5v) signals with good cable do 50m+ with slowish signals.
Next would be pair of cheap level shifters, say RS232 to get you a better voltage shift and back again. Different wiring needed for that. Could also try a differential driver (e.g. CAN Bus), but harder wiring. But still cheap.
There are also USB cables with signal boosters in them, that will give you quite a few meters and they can be joined to give longer lengths (upto about 3). But don’t power the Arduino through it, allow the USB power to power the booster modules in the extension cable only.
Then try things like a network connection, either wired or wireless…
A lot of people have had good luck with using ethernet cable for long data runs but I would also suggest looking into an ESP8266 such as the Wemos D1 mini. It supports wireless code uploading and @Jason_Coon has created a web server for it to where you can control brightness, on/off, and changing animations through a web interface. Since you mentioned in another post that you are familiar with HTML and CSS you shouldn’t have any problems modifying the web interface portion to your liking.
@Brian_Lewis Interesting. So the esp8266 replaces the arduino all together? It was my impression from some other research that I will likely need the Mega to control 500 or so LED’s (others saw there buffer fill up with that many lights). If that is not the case then something like this sounds very interesting.
Having the Arduino hooked up via Ethernet is not an issue, so long as I could update/upload the code to the connected IP address without issue. Having another IOT device that I know nothing about the code on my network does not make me super happy…but we all give when convenience comes knocking, right!?! Speaking about the wifi enabled options of course.
The esp has more memory, more flash and a much faster cpu than the mega but it is sensitive to blocking loops. Tie up the CPU for too long doing some timing or counting task and the watchdog will get you (reboot). This could be a limiting factor on long chains of serial LEDs. The most I’ve ever controlled is a few dozen, so I can’t share any experience on long chains.
For convenience I would nix the Mega + Ethernet module idea. My largest project has 496 LEDs and it runs just fine on a Wemos D1 mini. I use an app called Blynk to control that project and also have the board doing some basic audio analysis for some of the patterns. The company that makes the ESP8266 chips, EspressIf, is pretty good with updating things to fix vulnerabilities if that helps ease your mind with having another IOT device on your network. They released an update for the board definitions to fix the KRACK vulnerability in WPA2 within just a few days of the vulnerability going public.
I think driving over long distances is more severe with strips that don’t have a clocking mechanism such as the WS2812b. The APA102 has a dedicated SPI clock input which helps immensely with timing. The other point to consider is signal degradation which would cause unpredictable effects.