AtmoOrb does not work using Hyperion.ng

  • I have been using Hyperion for about eight years now on a Pi 2, which controlled an APA102 strip, one AtmoOrb, and some Hue lamps. It has been working flawlessly ever since. Now I decided to give Hyperion.ng a go (using 2.0.13 at the moment) and have some problems. While the Hue lamps work, the Orb does not.


    The AtmoOrb is discovered automatically using the wizard, but Hyperion is unable to control it, the LEDs just stay dark. Using the Windows AtmoOrbApp it works without problems however using the following settings.


    This is my old config (before upgrading to ng), which also worked:

    These are my current settings for the orb in Hyperion.ng:

    Code
    [
      {
        "hmax": 1,
        "hmin": 0.6,
        "vmax": 1,
        "vmin": 0
      }
    ]

    I cannot seem to find any problems with this config. Also checked the logs, which did not show problems. Anything else I can try to make the orb work?

    • Offizieller Beitrag

    manzel I did a fresh compile and upload of the AtmoOrb sketch my my ESP8266 with the default multicast group (239.255.255.250), as well as with yours (239.15.18.2).
    Both groups work even over PowerLAN (which sometime is a problem for multicast).


    Any chance to show the debug output via a serial device of your AtmoOrb (sketch to be build be debug on)?

    There you could see, if the ESP receives the Color updates
    Sample:




    You could also see what is reported during discovery and identification:


    Did you validate that the LEDs are connected to the correct data PIN in line with the compiled sketch?


    Edit: You might also install Hyperion on your Windows PC and see, if it is working there (similar to the other test tool). Then you could ring-fence the issue hopefully.

  • Thanks a lot for investigating. My AtmoOrb is not built with an ESP, but a Particle Photon. Had to do quite some digging to get the desired log output, but managed in the end.


    When I use the test tool (AtmoOrbApp) on Windows, the Orb lights up and output is as follows:

    When I change colors within Hyperion on the Pi, nothing happens (Orb stays dark and no serial output). I also installed Hyperion on Windows and tried using that. Same behavior as on the Pi. So it does not seem to be related to the Pi, but to Hyperion.

  • I managed to get it figured out. I use this code for my Particle Photon. It is pretty similar to the ESP8266 code, but has one crucial difference. The UDP packets are only evaluated when matching the expected size (line 99)

    Code
        if(packetSize == BUFFER_SIZE){

    This is done to filter out all the talk to the Particle cloud, I assume. On the ESP8266, there is no evaluation of the packet size. This buffer size is set to be dependent on the number of LEDs, however (line 27)

    Code
    #define BUFFER_SIZE  5 + 3 * NUM_LEDS

    This is pretty pointless, since all LEDs are set to the same color anyway. Now, why it works with the Windows test app and the old Hyperion (not ng, how do you refer to this?) is because you can set the LED count in both of those. Hyperion.ng, however, fixes the LED count to 1. This is reasonable, since the rest of the data is never evaluated. Even for the official Windows test app, with LED count set to 24, there was only data present for the first LED and the rest was just filled with zeros.

    Thus, I fixed my problem by adjusting the buffer size to 8 and can now control the orb using Hyperion again.

    Code
    #define BUFFER_SIZE  8

    Since all the (assumed) communication with Particle cloud seems to have packet size 0, one could also adapt line 99 to

    Code
        if(packetSize > 0 && packetSize < BUFFER_SIZE+1){

    I guess, to not lose compatibility with previously configured control devices. But I think adjusting the buffer size and limiting the LED count to 1 just makes more sense, as the sketch has to be changed anyway.

    • Offizieller Beitrag

    manzel Sorry for coming back earlier...
    Great that you resolved the issue with an updated sketch.


    I would like to store it with the other firmware sketched on the Hyperion repository.
    Then others can find it too.

    I did some additional changes, like identification, to align the behaviour to the esp8266 sketch.

    Unfortunately, I cannot compile not test it.


    Would you mind testing the updated sketch and report back?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!