NabuCasa / yellow

Home Assistant Yellow - hardware for Home Assistant which grows with your needs.
Other
73 stars 11 forks source link

Fan header and RGB lights #61

Closed t3hk0d3 closed 1 year ago

t3hk0d3 commented 1 year ago

Is there any reason why they are not mentioned anywhere in documentation?

agners commented 1 year ago

They aren't soldered on, so we didn't deem to document those. Especially the controller for the RGB lights wouldn't be easy to populate for most people. And folks who can do it are probably fine looking at the schematics/layout directly :smile:

t3hk0d3 commented 1 year ago

@agners Just out of curiosity - what is a point having these on PCB, but never soldering them? Base for future versions/modifications?

I've had manually soldered SD card, RGB lights, Fan header and microHDMI port, but that wasn't easy at all. Especially microHDMI and 0408 resistors. I am still trying to figure out how to make them work with device tree :D

agners commented 1 year ago

@agners Just out of curiosity - what is a point having these on PCB, but never soldering them? Base for future versions/modifications?

Essentially component shortage fallout. It was late to implement PCB modifications so we just went for assembly options. We did consider adding it later, but it seems a bit late at this point, since people are used to and documentation has been written etc. etc..

agners commented 1 year ago

I am still trying to figure out how to make them work with device tree :D

Yeah that was the other problem: I think it requires kernel source modifications as well :sweat_smile:

This is the device tree modifications I've used in prototypes:

    lp5569: lp5569@32 {
        #address-cells = <1>;
        #size-cells = <0>;
        compatible = "ti,lp5569";
        label = "led";
        reg = <0x32>;
        clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */

        multi-led@9 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x9>;
            color = <LED_COLOR_ID_RGB>;

            led@0 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x0>;
                color = <LED_COLOR_ID_RED>;
            };

            led@1 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x1>;
                color = <LED_COLOR_ID_GREEN>;
            };

            led@2 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x2>;
                color = <LED_COLOR_ID_BLUE>;
            };
        };

        multi-led@10 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x10>;
            color = <LED_COLOR_ID_RGB>;

            led@3 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x3>;
                color = <LED_COLOR_ID_RED>;
            };

            led@4 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x4>;
                color = <LED_COLOR_ID_GREEN>;
            };

            led@5 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x5>;
                color = <LED_COLOR_ID_BLUE>;
            };
        };

        multi-led@11 {
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0x11>;
            color = <LED_COLOR_ID_RGB>;

            led@6 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x6>;
                color = <LED_COLOR_ID_RED>;
            };

            led@7 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x7>;
                color = <LED_COLOR_ID_GREEN>;
            };

            led@8 {
                led-cur = /bits/ 8 <175>;
                max-cur = /bits/ 8 <175>;
                reg = <0x8>;
                color = <LED_COLOR_ID_BLUE>;
            };
        };
    };

And patches:

lp5569-support.zip

(that was quite a while ago, ontop of 5.10, applies on raspberrypi-kernel_1.20210201-1 tag of the Raspberry Pi Linux kernel)

t3hk0d3 commented 1 year ago

@agners Just out of curiosity - what is a point having these on PCB, but never soldering them? Base for future versions/modifications?

Essentially component shortage fallout. It was late to implement PCB modifications so we just went for assembly options. We did consider adding it later, but it seems a bit late at this point, since people are used to and documentation has been written etc. etc..

Any chance for Home Assistant Yellow Max version? 😉