Getting Started
Most people create their animations using xLights (also called "sequences" or "shows"), then also use xLights to animate the lights themselves with the show that you created. For Internet control, you still use xLights on your home computer to create animations, but the show playback files (.fseq) are saved to a Raspberry Pi computer (RPi). The RPi computer then plays back the animations.
To do this, you will need a Raspberry Pi computer. I recommend Model 2 or Model 3; they are much faster than the original RPi and should be able to handle controlling many lights. You will also need a memory card (I am using a 16 gigabyte microSD card, but probably 8G is enough). You will also need a 2A DC power supply with a micro USB connector. If you search for "Raspberry Pi" on Amazon, you will find lots of kits there with these components together, including a case that keeps the RPi protected. Lastly, you will need an empty flash drive (2G or more) at least temporarily.
Installing the software
(detailed instructions can be found here and here)
1. Format the microSD memory card with SD Card Formatter or something similar.
2. Download the Falcon Player v2.72 image file here. You can find all releases of Falcon Player here.
3. Unzip the image file, revealing the .img file inside.
4. Use win32DiskImager or similar to write the image file to your microSD card.
5. Connect a monitor or TV to the HDMI port on the Raspberry. Connect a USB mouse & keyboard. Also connect an Ethernet cable from the Raspberry Pi to your home network's router.
6. Connect the micro USB power cable to the Raspberry Pi. It will automatically power up. You will see a black screen with white writing.
7. Falcon Player is controlled with a web interface. Open a web browser on your home computer, then go to http://fpp or http://fpp.local.
If that does not work, find the IP address that your router assigned to the Raspberry Pi, then go to this address in your web browser. The first time that your RPi boots into its operating system, it will request an IP address from your router's DHCP server. Open your router's configuration application to determine the IP address that was assigned to your RPi. You can then configure Falcon Player on the RPi using a web browser on your home computer. Simply open a web browser, then go to the IP address.
Note: Your home computer and RPi must be connected to the same router via Ethernet cables in order for them to "see" each other.
8. In the Status/Control > Network Configuration menu, enter "8.8.8.8" for DNS Server 1 and DNS Server 2, click [Update DNS], then reboot Falcon Player. This is necessary to perform the next step.
9. Congratulations! You now have Falcon Player installed and ready to use.
Setting up a static IP address
The first time that your RPi boots into its operating system, it will request an IP address from your router's DHCP server. DHCP IP addresses can change from time to time, however. For Internet control to work, your RPi must use a static (permanent) IP address instead. To set a static address, do the following:
- Open a web browser and go to the IP address that your router assigned to your RPi.
- When the Falcon Player - FPP" window appears, go to "Status/Control > Network" in the menu.
- Set "Interface Mode" to "Static".
- In my case, I set the IP address to "169.101.200.200", a Netmask of "255.255.255.0" and a Gateway of "169.101.200.1".
- In your case, you need to change these numbers to your own computer's subnet.
- In Windows, open a Command Prompt, then type this command:
ipconfig /all - In the information shown, scroll to the top of the information to find the "IPv4 Address" line. The first three numbers are your subnet. Replace the "169.101.200" subnet in my example with your own subnet for the IP Address and Gateway.
- The fourth number in the IP Address can be any number from 2-254, but it should not conflict with your home computer's IP address nor IP addresses used by any other device on your network.
- The fourth number on the Gateway should always end with a "1".
- In Windows, open a Command Prompt, then type this command:
- Lastly, click [Update Interface] to save your settings.
At this point, you may lose access to the RPi from your web browser, as the IP address is changed. Simply type the new, static IP address into your web browser and you should be able to login to Falcon Player interface again.
Setting up the time zone
It is good idea to tell Falcon Player which time zone that you live in. This is important so that Falcon Player starts your light show at the correct time each evening. In the Falcon Player interface, click the "Status/Control > Config/Set Time" menu, then choose your time zone from the drop-down list under "Time Zone". Click the [Submit] button to save your settings.
Disable Falcon Player's "Auto Update" feature
I do this as a precaution if a future version of Falcon Player change enough to perhaps break the Internet control feature that I have setup. To disable Auto Update, go to the Help > About menu in Falcon Player, then place a checkmark in the "Disable Auto Update" field.
Configuring Falcon Player to communicate with your light controllers
When Falcon Player is "playing" a show, it sends commands to the light controllers, telling them which lights should display various colors in the show. Falcon Player and the light controllers communicate via Ethernet cables using a special language called DMX. The Raspberry Pi has an IP address and your controllers have IP addresses, this is how they find each other in the network.
If you were not using Falcon Player nor the Raspberry Pi, you would use xLights on your home computer to send commands to the light controllers. The [Setup] tab display all of your light controllers, like the screen below:
Here are the important columns in this list:
Port
These are the IP addresses of your light controllers. This way, xLights can find your various controllers on the network and send commands to them.
In my case, you'll notice that all of the IP addresses are the same. Normally, all of my Arduino light controller have unique IP addresses. Arduinos are not very fast and get get overwhelmed with the vast amount of data that xLights sends to them over the network. To solve this problem, Keith wrote a program called Rate Manager that intercepts all of the data going to the light controllers, reduces the data to a smaller size, then sends it to the light controllers. Rate Manager act as a "middle man" to reduce the data size going to the controllers, making it easier for the Arduinos to handle the incoming flow. That is why the IP addresses in the Port column are the same; xLights is sending all of its data to Rate Manager which is running on the Raspberry Pi. If you are not using Arduino based light controllers, you do not need Rate Manager; you would put unique IP addresses for each of your controllers in the Ports column instead.
Baud Rate or E1.31 Universe
A light controller usually has multiple strings of lights attached to it. In its simplest terms, each string is defined as a "universe", at least with my lights setup. For instance, my GECE light controller (with two Arduinos controlling 16 strings), controls universes 1-8 and 18-25. The Arduino running the ws2811 mega tree and RGB "three trees" controls 8+6 strings of lights, respectively, as universes 9-17 (the 17th universe can control all six strings of "dumb" RGB lights). These universe numbers are saved into the Arduino's memory. When xLights sends commands to certain universes, the correct Arduino knows when commands have arrived for its universes.
Num Channels
This number represents how many unique lights are in each string. With GECE and ws2811 lights, each bulb contains three LED lights: red, green, and blue. By mixing these three lights, you have hundreds of thousands of color possibility. To xLights, a single bulb has three channels (red, green, and blue). Therefore a string of 50 bulbs has 150 channels. A string "Dumb" RGB lights can only be one color for the entire string. Only three channels (red, green, and blue) are needed for each of these strings.
xLights/Vixen/FPP Mapping
Each light in your display has a unique "serial number" assigned to it. That way xLights can easily control specific lights. If your first string has 50 bulbs, there are three lights per bulb, so 150 lights would have serial numbers of 1-150. The second string of lights would have serial numbers of 151-300, and so on. Again, with "dumb" RGB lights, there are only three serial numbers (red, green, and blue) per string.
Since Falcon Player will be controlling your lights (not xLights), you need to copy the above ports, universes, and channels into Falcon Player. Newer versions of xLights and/or Falcon Player can do this automatically, but I had an older version and manually copied the information to this in Falcon Player (via the "Input/Output Setup > Channel Outputs" menu):
Also be sure to set the checkbox for "Enable E1.31 Output" above. Be sure to click the [Save] button when you are finished!