/Helion

Ambilight clone using the Arduino written in Rust

Primary LanguageRustMIT LicenseMIT

Helion

Ambilight clone for windows written in Rust, meant to be used with an Arduino running LEDstream.

Test video

Config

Helion uses configuration generated by HyperCon. Config must be located in the current working directory, which is same as where the .exe is located when not run from command line.

Notes about config sections:

  • Device:

    • Output: Serial port to use, e.g. "COM2" on windows.

    • Baudrate: Rate to use when sending pixel buffer to Arduino, LEDstream expects this to be 115200.

    • Type: Not read, but must be one where Output and Baudrate fields exist.

  • Construction: Led placement. Everything is read.

  • Image Process: Led capture areas. Blackborder stuff not read.

  • Frame Grabber:

    • Width and Height, REQUIRED: Determines to what resolution frame is resized when analyzing colors, smaller is faster. Works best if dimensions are divisors of the native resolution. If a field is 0, native resolution is used in that dimension.

    • Interval: How often to capture the frame. If no smoothing is enabled, this also decides LED refresh rate. FPS = 1/interval.

  • Smoothing:

    • Type: Type of smoothing to use, currently only Linear smoothing, no direct plans to add anything else.

    • Time [ms]: The time constant to use when smoothing. Larger values gives slower transition.

      • Linear Smoothing: "previous value" + ("value difference" * max("Frame time difference" / "Time constant", 1))
    • Update Freq. [Hz]: How often to update LEDs. Should be higher than FPS of Frame Grabber -> Interval. When no new frame has been captured, just keep smoothing the colors to previous frame.

  • Colors: Everything is read.

  • External: There are no plans to add support for anything under this tab. The stuff here is really just for Raspberry Pis with XBMC and stuff.

Building

cargo build --release

Only Windows is supported at this time, as dxgcap is Windows only and I have not yet added support for any linux screen capturing.