@@ -89,7 +89,8 @@ def contents(self) -> None:
8989
9090
9191class Sk6805_Ec15 (Neopixel , JlcPart , FootprintBlock ):
92- """SK6805-EC15 Neopixel RGB LED in 1.5x1.5 (0606)."""
92+ """SK6805-EC15 Neopixel RGB LED in 1.5x1.5 (0606).
93+ No longer allowed for JLC economic assembly."""
9394 def __init__ (self ) -> None :
9495 super ().__init__ ()
9596 self .vdd .init_from (VoltageSink (
@@ -123,6 +124,41 @@ def contents(self) -> None:
123124 self .assign (self .actual_basic_part , False )
124125
125126
127+ class Ws2812c_2020 (Neopixel , JlcPart , FootprintBlock ):
128+ """WS2812C low-power Neopixel RGB LED in 2.0x2.0. 3.3v logic-level signal compatible."""
129+ def __init__ (self ) -> None :
130+ super ().__init__ ()
131+ self .vdd .init_from (VoltageSink (
132+ voltage_limits = (3.7 , 5.3 ) * Volt ,
133+ current_draw = (0.001 , 0.001 + 5 * 3 ) * mAmp , # 1 uA static + up to 5mA/ch
134+ ))
135+ self .gnd .init_from (Ground ())
136+ self .din .init_from (DigitalSink .from_supply (
137+ self .gnd , self .vdd ,
138+ voltage_limit_tolerance = (- 0.3 , 0.7 ),
139+ input_threshold_abs = (0.7 , 2.7 ),
140+ ))
141+ self .dout .init_from (DigitalSource .from_supply (
142+ self .gnd , self .vdd ,
143+ current_limits = 0 * mAmp (tol = 0 ),
144+ ))
145+
146+ def contents (self ) -> None :
147+ self .footprint (
148+ 'D' , 'LED_SMD:LED_WS2812B-2020_PLCC4_2.0x2.0mm' ,
149+ {
150+ '1' : self .dout ,
151+ '2' : self .gnd ,
152+ '3' : self .din ,
153+ '4' : self .vdd ,
154+ },
155+ mfr = 'Worldsemi' , part = 'WS2812C-2020-V1' ,
156+ datasheet = 'https://cdn.sparkfun.com/assets/e/1/0/f/b/WS2812C-2020_V1.2_EN_19112716191654.pdf'
157+ )
158+ self .assign (self .lcsc_part , 'C2976072' ) # note, -V1 version
159+ self .assign (self .actual_basic_part , False )
160+
161+
126162class Sk6812_Side_A (Neopixel , FootprintBlock ):
127163 """SK6812-SIDE-A side-emitting Neopixel LED."""
128164 def __init__ (self ) -> None :
0 commit comments