- January 7, 2006
- 1,335
- 1,006
- Home Country
- Netherlands
Introduction
Since Hue had its fair share of limitations due to the protocol and it not being well suited for fast Ambilight @Lightning303 and I started working on something similar without all the limitations called AtmoOrb, he completed his one a while back:
[DIY] AtmoOrb - A Hue like mood lamp based on Arduino, ESP8266 wifi module and WS2812B rgb leds
However wanted something that was easier hardware wise to build so waited for the Particle Photon which delay after delay finally arrived in July, afterwards waited a while for the Neo Pixel ring kit which was the last part of the puzzle.
The project is now completed and includes the awesome color smoothing done by @Lightning303.
Description
A Hue like lamp controlled by AtmoLight that takes the average color from your video or audio (VU meter) and displays that on the AtmoOrb lamp via Wi-Fi.
A number of calculations are done to prevent flickering and during dark enough scenes it will turn off, with AtmoLight you can configure all those settings:
Darkness limit
Gamma
Saturation
Position - multiple lamps for different screen areas
Besides AtmoLight it can be controlled from Android and Windows via their own respective apps as well as externally via Hyperion.
Hardware
Comes down to these parts and no actual soldering except maybe the Neopixel headers but Adafruit can probably ship those pre-soldered as well, just stick em together and upload the code:
- Particle Photon - Particle Store
- Neopixel ring kit - Adafruit Particle/Spark NeoPixel Ring Kit - 24 NeoPixels ID: 2268 - $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits
- 5V adapter (1A or higher) with DC jack connector - 5V 2A (2000mA) switching power supply - UL Listed ID: 276 - $7.95 : Adafruit Industries, Unique & fun DIY electronics and kits
- Female DC jack to connect power - Female DC Power adapter - 2.1mm jack to screw terminal block ID: 368 - $2.00 : Adafruit Industries, Unique & fun DIY electronics and kits
- Lamp fixture - Ikea Fado used in videos: FADO Tischleuchte - IKEA
If you want to use other WS2812B / Neopixel leds you can use the Data out connection on the ring kit to do so.
Most of the parts you should be able to get from your local shops however the Neopixel ring kit at least at this time is a Adafruit exclusive.
Connection scheme
NeoPixel ring kit --> Particle Photon (no soldering required)
5V 1A or higher DC adapter --> NeoPixel ring kit 5V DC connector
For testing you can connect the Photon micro USB connector to a PC to power the leds and Photon itself however make sure to disconnect the 5V DC adapter when you do this.
Tutorial
Step 1
For requirements check the Hardware chapter
Recommended Photon firmware is 0.5.3 as 0.6.0 and up don't work properly with the FastLED library as of March 2017.
Obviously first make sure the hardware is connected, basically you need have the Photon and Neopixel ring kit clicked together.
Setup the Particle Photon using their own guide and open your Particle Build environment (build.particle.io), create a new application there and include the Library FastLED from the left side menu
Make sure to use FastLED 3.1.4 or higher as otherwise the app will not compile, select your app after clicking "Include in App" and re-open your app sketch again.
Afterwards use this sketch for Orb UDP multicast (preferred) in the app you created:
AtmoOrb/AtmoOrb_UDP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
Change your Orb ID at the top of the sketch if needed, for multiple Orbs you can assign the same ID to group them or different ones ranging from 1-255 to control them separately.
Now upload that application to your Photon.
In case you run into compile errors due to a FastLED library mismatch (bug in Particle IDE) follow these instructions:
platforms/avr/led_sysdefs_avr.h: No such file or directory · Issue #2 · focalintent/FastLED-Sparkcore · GitHub
Step 2
First you can test if everything works right with either the Android or Windows app, specify the Orb ID there and leave the rest default:
Releases · ambilight-4-mediaportal/AtmoOrbDroid · GitHub (Android app)
Releases · RickDB/AtmoOrbNET · GitHub (Windows app)
Make sure you are in the same network as your lamps, if that works continue onward.
Step 3
- Install the latest version of AtmoLight via the Mediaportal Extensions Manager (1.17.0.0 or higher)
- Open Mediaportal configuration and go to Plugins, select AtmoLight and click config
- Enable AtmoOrb and change any Effect Settings you want to use
- Now add the lamp with the ID you used in the sketch from Step 1 and optionally change any gamma / color correction, also if you have an non-standard setup with more than 24 leds you can change the default.
Only need to enter ID / Multicast and change the area you want to use for the average color (used 100% in example), afterwards press Add and Save to exit the AtmoLight configuration.
Step 4
Now start Mediaportal and if everything went alright you now have Orbs that change color based on your Video or Music.
Optional features
Option 1 - Smoothing tweaks
In the Photon Orb sketch you can tweak smoothing, the default is 200ms (50 steps * 4ms).
If you want to change that you can do so at the top of the Photon Orb sketch:
For instance if you wanted 100ms you can change SMOOTH_STEPS to 25.
Option 2 - Other protocol usage
If for some reason you can't or don't like using Multicast the Orb also supports TCP and UDP on IP basis, in the Code / Software section there are sketches for TCP and UDP IP already works with the UDP Multicast sketch
You add them the same way only in AtmoLight you select a different Connection Type and Protocol / IP.
Code / Software
Particle cloud code
TCP
AtmoOrb/AtmoOrb_TCP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
UDP Multicast + UDP IP
AtmoOrb/AtmoOrb_UDP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
Android app to control Orbs (UDP multicast only)
GitHub - ambilight-4-mediaportal/AtmoOrbDroid: Android app for use with AtmoOrb lamps
Releases · ambilight-4-mediaportal/AtmoOrbDroid · GitHub (.apk install)
Windows application to test and calibrate Orb colors (UDP multicast only)
GitHub - RickDB/AtmoOrbNET: Windows application to control and test Orb lamps
Releases · RickDB/AtmoOrbNET · GitHub (binary release)
Credits
@Lightning303 - AtmoLight color smoothing and AtmoLight AtmoOrb core code, probably other things as well that I forgot
Wolph - initial protocol sketch and performance improvements
Philips Hue - for making pos hardware which drove me to this
Since Hue had its fair share of limitations due to the protocol and it not being well suited for fast Ambilight @Lightning303 and I started working on something similar without all the limitations called AtmoOrb, he completed his one a while back:
[DIY] AtmoOrb - A Hue like mood lamp based on Arduino, ESP8266 wifi module and WS2812B rgb leds
However wanted something that was easier hardware wise to build so waited for the Particle Photon which delay after delay finally arrived in July, afterwards waited a while for the Neo Pixel ring kit which was the last part of the puzzle.
The project is now completed and includes the awesome color smoothing done by @Lightning303.
Description
A Hue like lamp controlled by AtmoLight that takes the average color from your video or audio (VU meter) and displays that on the AtmoOrb lamp via Wi-Fi.
A number of calculations are done to prevent flickering and during dark enough scenes it will turn off, with AtmoLight you can configure all those settings:
Darkness limit
Gamma
Saturation
Position - multiple lamps for different screen areas
Besides AtmoLight it can be controlled from Android and Windows via their own respective apps as well as externally via Hyperion.
Hardware
Comes down to these parts and no actual soldering except maybe the Neopixel headers but Adafruit can probably ship those pre-soldered as well, just stick em together and upload the code:
- Particle Photon - Particle Store
- Neopixel ring kit - Adafruit Particle/Spark NeoPixel Ring Kit - 24 NeoPixels ID: 2268 - $24.95 : Adafruit Industries, Unique & fun DIY electronics and kits
- 5V adapter (1A or higher) with DC jack connector - 5V 2A (2000mA) switching power supply - UL Listed ID: 276 - $7.95 : Adafruit Industries, Unique & fun DIY electronics and kits
- Female DC jack to connect power - Female DC Power adapter - 2.1mm jack to screw terminal block ID: 368 - $2.00 : Adafruit Industries, Unique & fun DIY electronics and kits
- Lamp fixture - Ikea Fado used in videos: FADO Tischleuchte - IKEA
If you want to use other WS2812B / Neopixel leds you can use the Data out connection on the ring kit to do so.
Most of the parts you should be able to get from your local shops however the Neopixel ring kit at least at this time is a Adafruit exclusive.
Connection scheme
NeoPixel ring kit --> Particle Photon (no soldering required)
5V 1A or higher DC adapter --> NeoPixel ring kit 5V DC connector
For testing you can connect the Photon micro USB connector to a PC to power the leds and Photon itself however make sure to disconnect the 5V DC adapter when you do this.
Tutorial
Step 1
For requirements check the Hardware chapter
Recommended Photon firmware is 0.5.3 as 0.6.0 and up don't work properly with the FastLED library as of March 2017.
Obviously first make sure the hardware is connected, basically you need have the Photon and Neopixel ring kit clicked together.
Setup the Particle Photon using their own guide and open your Particle Build environment (build.particle.io), create a new application there and include the Library FastLED from the left side menu
Make sure to use FastLED 3.1.4 or higher as otherwise the app will not compile, select your app after clicking "Include in App" and re-open your app sketch again.
Afterwards use this sketch for Orb UDP multicast (preferred) in the app you created:
AtmoOrb/AtmoOrb_UDP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
Change your Orb ID at the top of the sketch if needed, for multiple Orbs you can assign the same ID to group them or different ones ranging from 1-255 to control them separately.
Now upload that application to your Photon.
In case you run into compile errors due to a FastLED library mismatch (bug in Particle IDE) follow these instructions:
platforms/avr/led_sysdefs_avr.h: No such file or directory · Issue #2 · focalintent/FastLED-Sparkcore · GitHub
Step 2
First you can test if everything works right with either the Android or Windows app, specify the Orb ID there and leave the rest default:
Releases · ambilight-4-mediaportal/AtmoOrbDroid · GitHub (Android app)
Releases · RickDB/AtmoOrbNET · GitHub (Windows app)
Make sure you are in the same network as your lamps, if that works continue onward.
Step 3
You can also use Hyperion to control the AtmoOrb device if you want to and can then skip this step and follow the guide here:
AtmoOrb Device
- Install the latest version of AtmoLight via the Mediaportal Extensions Manager (1.17.0.0 or higher)
- Open Mediaportal configuration and go to Plugins, select AtmoLight and click config
- Enable AtmoOrb and change any Effect Settings you want to use
- Now add the lamp with the ID you used in the sketch from Step 1 and optionally change any gamma / color correction, also if you have an non-standard setup with more than 24 leds you can change the default.
Only need to enter ID / Multicast and change the area you want to use for the average color (used 100% in example), afterwards press Add and Save to exit the AtmoLight configuration.
Step 4
Now start Mediaportal and if everything went alright you now have Orbs that change color based on your Video or Music.
Optional features
Option 1 - Smoothing tweaks
In the Photon Orb sketch you can tweak smoothing, the default is 200ms (50 steps * 4ms).
If you want to change that you can do so at the top of the Photon Orb sketch:
Code:
// SMOOTHING SETTINGS
#define SMOOTH_STEPS 50 // Steps to take for smoothing colors
#define SMOOTH_DELAY 4 // Delay between smoothing steps
#define SMOOTH_BLOCK 0 // Block incoming colors while smoothing
For instance if you wanted 100ms you can change SMOOTH_STEPS to 25.
Option 2 - Other protocol usage
If for some reason you can't or don't like using Multicast the Orb also supports TCP and UDP on IP basis, in the Code / Software section there are sketches for TCP and UDP IP already works with the UDP Multicast sketch
You add them the same way only in AtmoLight you select a different Connection Type and Protocol / IP.
Code / Software
Particle cloud code
TCP
AtmoOrb/AtmoOrb_TCP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
UDP Multicast + UDP IP
AtmoOrb/AtmoOrb_UDP.ino at master · ambilight-4-mediaportal/AtmoOrb · GitHub
Android app to control Orbs (UDP multicast only)
GitHub - ambilight-4-mediaportal/AtmoOrbDroid: Android app for use with AtmoOrb lamps
Releases · ambilight-4-mediaportal/AtmoOrbDroid · GitHub (.apk install)
Windows application to test and calibrate Orb colors (UDP multicast only)
GitHub - RickDB/AtmoOrbNET: Windows application to control and test Orb lamps
Releases · RickDB/AtmoOrbNET · GitHub (binary release)
Credits
@Lightning303 - AtmoLight color smoothing and AtmoLight AtmoOrb core code, probably other things as well that I forgot
Wolph - initial protocol sketch and performance improvements
Philips Hue - for making pos hardware which drove me to this
Last edited: