component
NCD0402B1
Public Made by Adomby adom
Foshan NationStar Optoelectronics LED Indication - Discrete, 0402. Pinout cross-checked by two models against the datasheet, KiCad symbol/footprint/3D.
← Commit history
Correct resistor hero binding to LED; add gentle one-shot preview and descriptive component identity
3 files changed
+3−3
HERO-PROVENANCE.md+2−2@@ -3,9 +3,9 @@ Authored by Codex Astra for Adom, 2026-09-16. New animation code is CC0-1.0; upstream body licensing remains in LED-SOURCE-LICENSE.md. Input: `ncd0402b1-mpn-led-on.glb`, SHA-256 `7968479557fcc60e7dc616ad1987586e9ac96104688e3971ab92487301c498ea`.-Output: `ncd0402b1-hero.glb`, SHA-256 `c2f83ca12df572adc3819949a6840e7629f9e468730976eb15746a40c57fd968`.+Output: `ncd0402b1-hero.glb`, SHA-256 `a97dc9fff28b3203edf91b0bfc7a8d850897e6aabc9fefbd202a4e6a861080f5`. -[Generator](generate-hero.py) adds standard glTF rotation and KHR_animation_pointer channels for material emission, base color and KHR_lights_punctual intensity. Ten seconds, one fade down/up, 36-degree eased turn ending at +18 degrees, final light on. No additional spill light. Model units remain metres, Adom Z-up; source physical geometry is unchanged. Initial/static frame is lit. Use static downloads for engineering assemblies.+[Generator](generate-hero.py) adds standard glTF rotation and KHR_animation_pointer channels for material emission, base color and KHR_lights_punctual intensity. Ten seconds, one fade down/up, 36-degree eased turn ending at +198 degrees for readable MPN orientation, final light on. No additional spill light. Model units remain metres, Adom Z-up; source physical geometry is unchanged. Initial/static frame is lit. Use static downloads for engineering assemblies. [Base geometry and optical assumptions](LED-STATES.md). The source remains a generic KiCad LED; these changes do not establish exact manufacturer package fidelity or electrical/thermal qualification.
generate-hero.py+1−1@@ -16,7 +16,7 @@ for slug in ['ncd0402g1','ncd0402b1']: # Lit at initial/static frame, fade down once and gently back up, then hold. level=[1-smooth((t-1)/2.5) if t<3.5 else smooth((t-4)/3) for t in times] root=len(j['nodes']);roots=j['scenes'][j.get('scene',0)]['nodes'];j['nodes'].append({'name':'Adom.Hero.Presentation','children':roots,'extras':{'adomRole':'hero-presentation','nonphysical':True}});j['scenes'][j.get('scene',0)]['nodes']=[root]- angles=[math.radians(-18+36*smooth(t/8)) for t in times]+ angles=[math.radians(162+36*smooth(t/8)) for t in times] chan([[0,0,math.sin(v/2),math.cos(v/2)] for v in angles],'VEC4',{'node':root,'path':'rotation'}) for i,m in enumerate(j['materials']): if m.get('name','').startswith('Adom.LED.Emissive'):
ncd0402b1-hero.glb⋯ 1 unchanged line ⋯