Animatronics, ESPixelPOPs, Pixels, Servo

Some Stuff

A few random things..

If you are using WLED then check out this great tutorial from Adafruit on setting up LedFX with WLED. LedFX is a free app that runs on Mac, Windows or Linux and lets you control multiple WLED controllers. It has its own selection of effects but can also run in a sound reactive mode.

https://learn.adafruit.com/sound-reactive-paper-lanterns-with-led-fx

A new version of Bechele has been released. This is an open source animatronic control software that can control multiple servos and it runs on various platforms. There is lots of info on the web site:

https://bechele.de/?page_id=55

And here:

https://github.com/bechele/bechele

I have played with it a bit and have some information here:

Bechele2 Info & FAQ

I have been working on restoring an animatronic dragon. It was a prop from a movie or ad that had been left in a warehouse and no longer wanted. His name is Eddie. He has DC motors and servos but no controller. Ideally I would like to be able to control him with VSA so I needed a DMX controller that can handle servos (easy enough as I have some DMX servo controllers) but also positionally control DC motors (not so easy). Not finding anything affordable, I found a way to control DC brushed motors with a RC servo signal. I will eventually make up a full web page on restoring Eddie but have been documenting my progress so far here:

https://talk.vanhack.ca/t/eddie-the-animatronic-dragon/

E1.31 sACN, ESPixelPOPs, Pixels

ESPixelStick Hardware & Software Versions

If you have been playing with inexpensive sACN/E1.31 pixel controllers then you are most likely familiar with the ESPixelStick firmware and its related hardware. The software is open source and will run on various Esp8266/ESP32 variants. The maker of the software also sells hardware controllers for the software.

There have been several versions of both the firmware and software with a bit of a confusing naming convention. I’ve put together this summary of the boards (along with some additional information) in the hopes it helps clear up some of the confusion…

Hardware Versions

OSHPARK V1 Version

SHELBY V1 Version
Version 1

More info here: https://forkineye.com/espixelstick-v1/



SHELBY V2 Version
Version 2

SHELBY V3 Version
Version 3
  • WEMOS D1 Mini ESP8266 module with 4 Meg flash memory
  • Has a switching power regulator
  • Supports 680 WS2811 or 63 GECE pixels
  • Includes wired DMX/Renard output driver
  • Can run V3.2 or V4.x ( v4.x is beta only) firmware (https://github.com/forkineye/ESPixelStick/releases)
  • V4.x firmware supports SD card for show files to run in FPP multisync remote mode
  • Can run the ESP8266 version of WLED

More info here: https://forkineye.com/espixelstick-v3/

Software Versions

V3.2
Most current release version of ESPixelStick firmware
Runs on V1/V2/V3 ESP8266 based ESPixelStick hardware
Supports E1.31/sACN input (unicast or multicast)
Supports MQTT
Supports single WS281x & GECE pixel output (600 WS281x pixels or 63 GECE pixels)
Supports Differential Renard & DMX output (requires RS-485 module)


V4.x
Runs on V3 ESP8266 based ESPixelStick hardware & 20 additional ESP8266 and ESP32 based platforms.
Supports E1.31/sACN (unicast or multicast) & DDP input.
Supports MQTT & ALEXA.
V3 HW supports a single output port. The port provides both Pixel outputs and serial outputs with a built in RS-485 compliant differential line driver
Pixel Output(s), all versions: WS281x & GECE.
Optional pixel protocols: APA102, GS8208, TM1814, UCS 1903, UCS 8903, WS2801
Supports one pixel output on V3 hardware (eight pixel outputs & APA102, WS2801 pixel outputs on ESP32)
Supports Serial output (Generic Serial, Renard & DMX) on all outputs (V3 HW has one built-in RS-485 Differential output module), up to 8 serial outputs on ESP32.
Supports 1 Relay output on V3 HW, (8 relay outputs on ESP32).
Supports 16 PWM outputs on ESP32 (requires PCA9685 module).
Supports SD card for local storage of files for FPP/FSEQ support.
Has built in Test effects that can drive all outputs. (Auto disable if input data is detected).

The current V4.x firmware will run on the following modules:

espsv3, (V4 on the V3 HW)
d1_mini,
d1_mini_pro,
d32_pro,
d32_pro_eth,
esp32_cam,
esp32_ttgo_t8,
d1_mini32,
d1_mini32_eth,
esp32_bong69,
esp32_wt32eth01,
esp32_quinled_quad,
esp32_quinled_quad_ae_plus,
esp32_quinled_quad_ae_plus_8,
esp32_quinled_quad_eth,
esp32_quinled_uno,
esp32_quinled_uno_ae_plus,
esp32_quinled_uno_eth,
esp32_quinled_dig_octa,
esp01s, (V4 on the V1/2 HW)
d1_mini_mhetesp32minikit,
olimex_esp32_gw,
d1_mini_twilightlord,
d1_mini_twilightlord_eth,
esp32_devkitc,
esp32_quinled_uno_eth_espsv3, (Quinled processor on V3 HW)
esp32_quinled_uno_espsv3, (Quinled processor on V3 HW)
m5stack_atom,
esp3deuxquatro_dmx,
esp32_wasatch


The V4 .x code in the forkineye GitHub site is quite old. The most current V4.x  code is available here :

https://github.com/MartinMueller2003/ESPixelStick/releases/download/dist/dist.zip

Or here:

https://github.com/MartinMueller2003/ESPixelStick/releases/tag/dist

These site are updated by one of the code makers, Martin Mueller and includes binaries for various ESP8266 and ESP32 modules.


ESPixelStick Software: https://github.com/forkineye/ESPixelStick

ESPixelStick Web Site: https://forkineye.com/espixelstick/


ESPixelStick vs WLED?

WLED is similar to ESPixelStick in that it allows you to drive pixels using sACN/E1.31 data. In addition WLED supports ArtNet and has a huge amount of built-in effects. While I do love WLEDs wide range of effects and other features, I have found ESPixelStick to be more stable when you just want to streaming sACN/E1.31 data.  

Since WLED will run on all versions of the ESPixelStick hardware you can easily install the firmware and try it. The  ESPixelStick V1/V2 hardware versions can only run the ESP-01 version of WLED, this version fits on the smaller flash of the ESP-01 and is missing the “over the air” firmware update feature. The ESPixelStick V3 hardware version runs the ESP8266 version of WLED and includes all features.

Other Hardware?

The ESPixelStick firmware is open source and will run on any ESP8266 variant. One of the most convenient is the ESPixelPOPs board which is similar to the ESPixelStick V1 board.

QuinLED makes some ESP32 based boards that support ESPixelStick V4 firmware

DMX Output

All versions of the ESPixelStick firmware can be set to send out DMX or Renard serial data instead of Pixel data. On the V3.2 version of the firmware (used for the V1/V2/V3 boards) you select either the Pixel (for driving pixels) or the Serial (for sending DMX or Renard data out) version of the firmware when flashing the board. On the V4.x version I believe you configure this from a menu once the firmware is loaded.

The V3 version of the hardware has the DMX RS-485 driver built in while on the V1/V2 hardware versions you will need to add a driver. Here are some site with further information on such interfaces:

https://arduinoinfo.mywikis.net/wiki/RS485-Modules

https://www.seeedstudio.com/Grove-DMX512.html

Other things of note


After uploading the V3.2 firmware on the V1/V2 hardware you must manually reset the ESP-01 module even though the updater says that it has rebooted.


The ESP-01 modules (used in the V1/V2 hardware only have 1 Meg  FLASH which limits you from installing the V4.x firmware (or the full version of WLED). If you are willing to try SMD soldering then you can upgrade the ESP-01 FLASH to 4 Meg by replacing the chip. The 4 Meg chips cost very little and it`s not too hard to try:

https://youtu.be/xyc1gCjguRU

Due to the lack of GPIO pins on the ESP-01 you won`t get any of the additional hardware features but you will be able to run the latest firmware (though I don`t know if the V4.x firmware has any enhancements that would make it worth your time)

Note that there is now an ESP-01S available that has 4 Megs of flash so that’s an option also


E1.31 sACN, General, Pixels

WLED & E1.31 Input

While I have been using WLED to control pixels for quite a while I have mainly used the built-in effects. However WLED does work with E1.31 (also called SCAN – Streaming Architecture for Control Networks) which lets you send  DMX512 over an IP Network. E1.31 is a standardized implementation that improves on the Art-Net protocol.

Recently I started using WLED controlled pixels with some LED mapping software called ELM. ELM lets you map video, images or effects across the physical representation of your LEDs. The output can be controlled manually (via various inputs including DMX, MIDI, etc) or by an audio reactive mode. There are other LED mapping applications like MADRIX,  MadMapper, LED Strip Studio that have similar features (and probably more) but ELM is quite a bit cheaper to get started with. Enttec (who make ELM) also sells Ethernet based pixel controllers and currently you get a free license for ELM if you purchase any of their controllers. Not a bad deal if you need a wired pixel controller.

To use e1.31 with your WLED controlled pixels you have to understand the concept of DMX channel and universe addressing when using a network connection..

A single DMX universe consists of 512 separate channels. This is what you get in a single wired DMX connection (it uses RS-485 signaling over twisted pair cabling). While 512 channels was a lot when using incandescent stage lighting it doesn’t go very far once you start using addressable  pixels. Each pixel uses 3 DMX channels (one for the red value, one for the green value and one for the blue value) so a single DMX universe can only control 170 pixels (170 x 3 = 510). As you can see it uses 510 channels leaving 2 channels of the universe unused. So for WLED your first 170 pixels will use this first universe. WLED ignores the unused channels of this first universe and starts the next pixel (pixel 171) as channel 1 of the next universe. And it repeats as required for the number of pixels your WLED device is controlling. 

In WLED you can configure the starting DMX universe (and the starting DMX channel) but then WLED automatically uses as many additional DMX universes as required ( in numerical sequence). This can get a bit confusing so it is best to determine all your DMX addressing ahead of configuring it. As an example let’s say you have WLED controlling 600 pixels. Assuming you set both the start universe and start channel to 1 then your E1.31 addressing would be as follows:

  • DMX Universe 1 Channels 1 to 510 Pixels 1 to 170
  • DMX Universe 2 Channels 1 to 510 Pixels 171 to 340
  • DMX Universe 3 Channels 1 to 510 Pixels 341 to 510
  • DMX Universe 4 Channels 1 to 180 Pixels 511 to 600

If you had a second WLED controlling another 600 pixels I would configure this second WLED controller to use 5 as the start universe and 1 as the start channel:

  • DMX Universe 5 Channels 1 to 510 Pixels 601 to 770
  • DMX Universe 6 Channels 1 to 510 Pixels 771 to 940
  • DMX Universe 7 Channels 1 to 510 Pixels 941 to 1110
  • DMX Universe 8 Channels 1 to 180 Pixels 1111 to 1200

E1.31 supports over 63,000 universes so no sense in trying to save a few channels (i.e. trying to make use of remaining channels in any universe).

For best results there are some general recommendations when using E1.31 with WLED:

  • Don’t  use more than 3 universes (510 pixels) on a ESP8266 based controller.
  • Don`t use more than 3 universes (510 pixels) per output  on a ESP32 based controller.
  • Disable sleep when using a ESP32 (this is in the Wi-Fi settings)
  • Don’t use WLED in the AP mode
  • Don’t  send E1.31 data from multiple sources to a single WLED controller
  • Don’t keep the web GUI open when sending E1.31 data

For more information on the various E1.31 & Art-Net setting in WLED check out this support page:

https://kno.wled.ge/interfaces/e1.31-dmx/

E1.31 sACN, Pixels

WLED & DMX Output

While using the wired DMX output on WLED limits you to a single universe (512 DMX channels or 170 RGB pixels) it does let you make use of any DMX fixtures you may have.  These are often much better for lighting large areas. It also lets gives you a very economical way to make a stand alone DMX controller while a huge number of built in effects. Saves you having to pull out a lighting console to make use of your DMX lights. While WLED does have incredible support at https://kno.wled.ge/ , I did find it difficult to get much information on using the DMX output. So I created a page with some DMX information that will hopefully help:   WLED DMX

E1.31 sACN, ESPixelPOPs, Pixels

Christmas Pixel Lighting Information

A huge driver in the development of DIY led pixel systems has been the Christmas Lighting community.  Here is a huge  list (from the maker of the Canispater Christmas Videos) of some related sites.  

I also have a page with information on the ESPixelsPOP controller (which can run the ESPixelStick or WLED firmware) which you can find here: ESPixelPOPs

FOR PEOPLE NEW TO PIXELS / RGB DISPLAYS

PLEASE read/watch these links, as it will likely answer most questions people have!

HOW-TO’S AND RESOURCES
RGB / PIXEL VENDORS
CORO VENDORS
SEQUENCE VENDORS
CONTROLLER VENDORS
OTHER VENDORS
LIGHTING FORUMS
Pixels

Addressable LED Information

If you are playing with addressable RGB LEDs then you know there is a daunting array of pixel types, controller types, protocols, etc. that can get very confusing. Someone (and I can`t seem to confirm who) maintains a Google Sheet that is a wealth of such information. Called the Awesome LED List you can find it here:

http://awesomeledlist.com

If the link above doesn’t work, you can also find it here: 

https://docs.google.com/spreadsheets/d/10pHG7_VIVltyqJK1Y0T5g3Iq6YJV2MnhMp3UcAVB-GA

I don’t think there is a better resource of addressable pixel type LED information anywhere…

On a much smaller scale I do have a small presentation on using addressable LEDs that you can find here:

VHS-Pixels-E1.31-v3.23.2020

You might find it helpful also..

Electronics, NMEA0183, NMEA2000

DIY AIS Receiver

I live near a busy harbour and wanted some dynamic data for my NMEA2000 testing. A DIY AIS receiver seemed like a ideal plan and I had most of the parts in my spare parts pile. Found a site that had a prebuilt Raspberry Pi image and I also found a quick and very cheap way to make your own antennas out of coax and PVC tubing. Mounted it all in a box outside and was soon seeing real-time marine traffic. See this page for all the details: AIS Receiver 

Electronics, NMEA0183, NMEA2000

NMEA2000 Testing & Troubleshooting

My brother in-law bought a sailboat and was having some issues with the mast mounted wind sensor. Not only was it hard to access (it’s over 60 feet high) but the boat uses the NMEA2000 data bus to connect all the instruments. A further complication is that it uses the SIMRAD SIMNET network cabling. I did some research and found a way to make a very cost effective DIY adapter to allow you see the NMEA2000 traffic in real-time using very good free software. Check out my NMEA2000 Testing & Troubleshooting page

Animatronics, Servo

DIY Animatronic Sites?

There don’t seem to be many DIY animatronic web sites around but there are a few pretty active Facebook sites. All of them are private, to help keep down the spam, so you have to request access. These groups are well worth it to find DIY animatronic info:

DIY Animatronics Group – https://www.facebook.com/groups/891805981203854/

Animatronic Builders – https://www.facebook.com/groups/747161395755561/

DIY Halloween Animatronics – https://www.facebook.com/groups/DIYHalloweenAnimatronics/

THE ANIMATRONIC FORUM – https://www.facebook.com/groups/215520962797038/