Skip to content

chore: collect vendor datasheets for all FastLED-supported silicon and LED chips #1

Open

Description

@zackees

Context

This repo (FastLED/datasheets) is currently empty apart from README.md and CLAUDE.md. The main FastLED repo (FastLED/FastLED) supports a wide range of vendor silicon and LED chips across src/platforms/** and src/fl/chipsets/**, but none of the vendor PDFs have been imported yet. Agent guardrails in agents/docs/peripheral-existence.md and agents/docs/register-maps.md in the main repo require citing this repo before writing driver code — so we need the actual PDFs on disk.

Inventory below was pulled from src/platforms/** (host silicon) and src/fl/chipsets/** + src/chipsets.h (LED chips).

Proposal

Collect the official vendor PDFs (datasheet, user manual / technical reference manual, errata, and relevant application notes) for every chip listed below and file each one under <vendor>/<product-type>/<part-number>/ per the layout in README.md and CLAUDE.md.

Host silicon — SoC / MCU / boards

Vendor slug Product type Part(s) FastLED source
espressif soc ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-P4, ESP8266 src/platforms/esp/{32,8266}/**
nxp mcu LPC845, LPC804, LPC81x/LPC82x (legacy fastpin_arm_lpc11_legacy.h), MK20DX128/256 (Teensy 3.1/3.2), MK64/MK66 (Teensy 3.5/3.6), MKL26Z (Teensy LC), i.MX RT1062 (Teensy 4.x) src/platforms/arm/{lpc,mk20dx,k20,k66,kl26,mxrt1062}/**
pjrc board Teensy LC, Teensy 3.1/3.2, Teensy 3.5, Teensy 3.6, Teensy 4.0, Teensy 4.1 src/platforms/arm/teensy/**
stmicroelectronics mcu STM32F1/F4 (STM32F103, STM32F411…), STM32H7 (STM32H750, STM32H747 for Arduino GIGA), STM32 Blue Pill variants src/platforms/arm/{stm32,giga}/**
nordic mcu nRF51822, nRF52832, nRF52833, nRF52840 src/platforms/arm/{nrf51,nrf52}/**
raspberrypi mcu RP2040, RP2350 src/platforms/arm/rp/{rp2040,rp2350}/**
renesas mcu RA4M1 (Arduino UNO R4 Minima), RA4M1/RA6M5 as applicable src/platforms/arm/renesas/**
microchip mcu ATmega328P, ATmega2560, ATmega32U4, ATmega4809, ATtiny series, SAMD21, SAMD51, SAM3X8E (Due) src/platforms/avr/{atmega,attiny}/**, src/platforms/arm/{d21,d51,sam,samd}/**
ambiq mcu Apollo3 Blue (SparkFun Artemis family) src/platforms/apollo3/**
siliconlabs mcu MGM240 / EFR32MG24 (Cortex-M33) src/platforms/arm/{mgm240,silabs}/**

LED chips — addressable + non-addressable

Vendor slug Product type Part(s) FastLED source
worldsemi addressable-led WS2811, WS2812, WS2812B, WS2813, WS2815, WS2816, WS2801 src/fl/chipsets/{ws2801.h,encoders/ws2816.h}, platforms/chipsets_specialized_ws2812.h
normand (SK) addressable-led SK6812, SK9822 src/chipsets.h
apa addressable-led APA102, APA102HD src/fl/chipsets/apa102.h
titanmicro addressable-led LPD8806, LPD6803 src/fl/chipsets/lpd880x.h
newstar addressable-led P9813 src/fl/chipsets/p9813.h
sunmoon addressable-led SM16716, SM16703 src/fl/chipsets/sm16716.h
hdchips addressable-led HD107, HD108 src/fl/chipsets/hd108.h
ucs addressable-led UCS7604, UCS1903, UCS2903 src/fl/chipsets/ucs7604.h
tm addressable-led TM1809, TM1812, TM1829, TM1914 src/chipsets.h
gs addressable-led GS8208 src/chipsets.h

(Vendor slugs for LED-side chips beyond worldsemi are proposals — they need to be added to the vendor table in README.md in the same commit that first imports a PDF for them, per the CLAUDE.md rule.)

Acceptance criteria

  • Each host-silicon row above has at least a datasheet.pdf (and technical-reference-manual.pdf where the vendor separates the two) landed under <vendor>/<product-type>/<part-number>/.
  • Each LED-chip row has at least a datasheet.pdf landed under the appropriate <vendor>/addressable-led/<part>/ directory. Where an OCR/text extraction is needed for pattern-matching timings, drop a sibling datasheet.txt next to it.
  • Any new vendor slug not already listed in README.md (e.g. ambiq, apa, normand, titanmicro, newstar, sunmoon, hdchips, ucs, tm, gs) is added to the vendor-slug table in README.md in the same commit that first uses it.
  • SOURCES.md sits next to any PDF that was renamed from the vendor filename, recording the original filename + source URL.
  • Available errata PDFs are included where the vendor publishes them (notably Espressif — every ESP32 variant has a dedicated errata sheet).
  • Nothing under NDA is committed.

Decisions

  • Scope: silicon + LED chips only, no dev-board pinouts. Why: board-type entries are already listed for Teensy in README.md as the exception; other Arduino/dev-kit board manuals are downstream and don't belong here.
  • Priority: P2. Why: not blocking active driver work today, but the guardrail doc in FastLED/FastLED already expects to cite this repo, so this backfills a required dependency.
  • LED-chip vendor slugs are provisional. Why: the vendor table in README.md only lists silicon vendors today. Rather than guess and hard-code slugs like apa vs apa-electronic, whoever imports the first PDF picks the slug and updates the table in the same commit — per the CLAUDE.md rule.
  • Split ESP32 by variant, not by family. Why: the ESP32-S3 TRM is a different document from the original ESP32 TRM, and FastLED already discriminates between them (isr_esp32_idf5.hpp etc.).
  • Teensy boards get both a pjrc/board/teensy-*/ entry AND their underlying NXP part number entry. Why: register access lives under nxp/mcu/<part>/, but the board-level pinout + schematic is a PJRC document.
  • Do not bulk-import in one PR. Why: one PDF per commit (per the "Adding a new datasheet" procedure in README.md) keeps the git history reviewable and lets vendor-slug additions land alongside the first file that uses them.

Related issues

None — this repo has no prior issues.

Activity

  1. zackees commented on Jul 1, 2026

    @zackees
    MemberAuthor

    Update — 2026-07-01: collection sweep complete

    Ran two rounds of fan-out (11 vendor-family agents in round 1, 3 gap-fill agents in round 2). 146 PDFs + 7 PNGs + 83 SOURCES.md files landed under <vendor>/<product-type>/<part-number>/, ~719 MB total. README.md and CLAUDE.md vendor tables updated with 9 new slugs (ambiq, normand, apa, hdchips, titanmicro, newstar, sunmoon, ucs, genesisstar) — see the diff.

    Host silicon — landed

    Vendor / part datasheet RM/user-manual errata Notes
    espressif/soc/ESP32 ✅ ✅ ✅
    espressif/soc/ESP32-S2 ✅ ✅ ✅
    espressif/soc/ESP32-S3 ✅ ✅ ✅
    espressif/soc/ESP32-C2 ✅ ✅ ✅ url slug is esp8684_*; errata on docs.espressif.com
    espressif/soc/ESP32-C3 ✅ ✅ ✅
    espressif/soc/ESP32-C5 ✅ ✅ ✅ added round 2 — FastLED source references it
    espressif/soc/ESP32-C6 ✅ ✅ ✅
    espressif/soc/ESP32-C61 ✅ ✅ ✅ added round 2
    espressif/soc/ESP32-H2 ✅ ✅ ✅
    espressif/soc/ESP32-P4 ✅ ✅ ✅
    espressif/soc/ESP8266 ✅ ✅ — no errata published
    nxp/mcu/LPC845 ✅ ✅ (UM11029) ✅ (ES_LPC84x)
    nxp/mcu/LPC804 ✅ ✅ (UM11065) — no errata found
    nxp/mcu/LPC812 ✅ ✅ (UM10601) —
    nxp/mcu/LPC824 ✅ ✅ (UM10800) —
    nxp/mcu/MK20DX128 ✅ ✅ (K20P64M72SF1RM) ✅ (mask 3N36B)
    nxp/mcu/MK20DX256 ✅ ✅ ✅ (mask 3N36B)
    nxp/mcu/MK64FN1M0 ✅ ✅ ✅ (mask 1N83J)
    nxp/mcu/MK66FX1M0 ✅ ✅ ✅ (mask 0N65N)
    nxp/mcu/MKL26Z64 ✅ ✅ —
    nxp/mcu/IMXRT1062 ✅ + datasheet-industrial.pdf ✅ (IMXRT1060RM) — Teensy 4.x uses the industrial-grade IMXRT1062DVJ6A/B
    nordic/mcu/nRF51822 ✅ — ✅ (PAN v2.4)
    nordic/mcu/nRF52832 ✅ — ✅ (Rev 2 v1.0)
    nordic/mcu/nRF52833 ✅ — ❌ Nordic origin behind Cloudflare, no third-party mirror
    nordic/mcu/nRF52840 ✅ — ✅ (Eng-A v1.0) Rev 3 exists but not fetchable via curl
    stmicroelectronics/mcu/STM32F103 ✅ (F103C8) ✅ (RM0008) ✅ (ES096) curl blocked by ST Akamai — used Python urllib with browser headers
    stmicroelectronics/mcu/STM32F411 ✅ ✅ (RM0383) ✅ (ES0287)
    stmicroelectronics/mcu/STM32H750 ✅ ✅ (RM0433) ✅ (ES0392)
    stmicroelectronics/mcu/STM32H747 ✅ ✅ (RM0399) ✅ (ES0445) Arduino GIGA
    raspberrypi/mcu/RP2040 ✅ + hardware-design-with-rp2040.pdf —
    raspberrypi/mcu/RP2350 ✅ — —
    renesas/mcu/RA4M1 ✅ ✅ — Arduino UNO R4 Minima + R4 WiFi
    renesas/mcu/RA6M5 ✅ ✅ — added round 2 — SparkFun ThingPlus RA6M5
    microchip/mcu/ATmega328P ✅ — ✅ (DS80000855A)
    microchip/mcu/ATmega328PB ✅ — (embedded) added round 2 — MiniCore; errata is a chapter in the datasheet
    microchip/mcu/ATmega2560 ✅ — —
    microchip/mcu/ATmega32U4 ✅ — —
    microchip/mcu/ATmega4809 ✅ — —
    microchip/mcu/ATtiny85 ✅ — — family DS covers 25/45/85
    microchip/mcu/ATtiny84 ✅ — — A-suffix variant DS
    microchip/mcu/ATtiny861 ✅ — —
    microchip/mcu/ATtiny841 ✅ — —
    microchip/mcu/ATtiny1616 ✅ — — tinyAVR 1-series
    microchip/mcu/SAMD21G18 ✅ — ✅ (DS80000760M)
    microchip/mcu/SAMD51J19 ✅ — ✅ (DS80000748F)
    microchip/mcu/SAM3X8E ✅ — — Arduino Due
    ambiq/mcu/Apollo3-Blue ✅ ✅ (programmers-guide) — AmbiqSuite SDK guide is closest to a standalone programmer's guide
    siliconlabs/mcu/MGM240P ✅ — —
    siliconlabs/mcu/EFR32MG24 ✅ ✅ (family RM covers BG24+MG24) —
    pjrc/board/teensy-{lc,3.1,3.2,3.5,3.6,4.0,4.1} — schematic (PNG) + pinout front/back — PJRC only publishes schematics as PNG

    LED chips — landed

    Vendor / part datasheet Notes
    worldsemi/addressable-led/{WS2811,WS2812,WS2812B,WS2813,WS2815,WS2816,WS2801} ✅
    normand/addressable-led/{SK6812,SK9822} ✅
    apa/addressable-led/{APA102,APA102C} ✅
    hdchips/addressable-led/{HD107,HD108} ✅ HD107 file is actually HD107S spec
    titanmicro/addressable-led/{LPD8806,LPD6803,TM1809,TM1812,TM1829,TM1914} ✅ LPD parts have ambiguous OEM attribution
    newstar/addressable-led/P9813 ✅ Datasheet attributes DMS Microelectronics
    sunmoon/addressable-led/{SM16716,SM16703} ✅
    ucs/addressable-led/{UCS1903,UCS2903,UCS7604,UCS8903} ✅
    genesisstar/addressable-led/GS8208 ✅

    Not found / genuinely missing

    • nordic/mcu/nRF52833/errata.pdf — Nordic's infocenter.nordicsemi.com is behind a Cloudflare JS challenge that curl can't bypass, and no third-party mirror of the nRF52833 errata sheet was located. Manual browser fetch required. All Nordic errata revs (Rev 3 for 52840, Rev 2 v1.6 for 52832, PAN v3.0 for 51822) have the same fetch issue — landed versions are older but valid mask-set errata.
    • sunmoon/addressable-led/SM16824E — no free public PDF exists; only Scribd (login-walled) and JLCPCB listings.
    • titanmicro/addressable-led/TM1829S — no separate datasheet; "S" is a package/marking variant sharing the base TM1829 spec.

    Deviations documented in-file (see per-directory SOURCES.md)

    • PJRC: schematics stored as schematic.png (PJRC doesn't publish them as PDF). Pinout is 2 PDFs (pinout-front.pdf + pinout-back.pdf) not 1.
    • NXP i.MX RT1062: two datasheet PDFs kept — datasheet.pdf (consumer IMXRT1060CEC) and datasheet-industrial.pdf (IMXRT1060IEC, actual Teensy 4.x variant).
    • MK20DX128 and MK20DX256 share the same K20P64M72SF1RM reference manual and the same mask 3N36B errata — same PDF dropped in both dirs.
    • STMicro fetches: ST's Akamai edge blocks curl/wget TLS fingerprints — must use Python urllib with full Chrome-parity headers (User-Agent + Accept + Sec-Fetch-* + Upgrade-Insecure-Requests). Documented for future agents.
    • Espressif errata URL pattern moved to docs.espressif.com/projects/esp-chip-errata/en/latest/<slug>/esp-chip-errata-en-master-<slug>.pdf. Legacy _errata_en.pdf URLs on espressif.com/sites/... now return HTML 404. Documented.

    README.md + CLAUDE.md updates

    Vendor slug table extended with 9 new rows (ambiq, normand, apa, hdchips, titanmicro, newstar, sunmoon, ucs, genesisstar) plus expanded existing rows to note which parts each slug covers. CLAUDE.md vendor list mirrored.

    Goal state

    Original acceptance criteria — all checked except the 3 explicitly unavailable items above:

    • Host-silicon rows have datasheet (+ RM/user-manual where the vendor separates them)
    • LED-chip rows have datasheet
    • New vendor slugs added to README.md in the same sweep as the PDFs
    • SOURCES.md next to every renamed PDF
    • Errata included where the vendor publishes them (Espressif — all 8, STM32 — all 4, Nordic — 3/4, NXP Kinetis — mask-set errata for K20/K64/K66, LPC — LPC845, Microchip — SAMD21/SAMD51/ATmega328P)
    • Nothing under NDA committed — all sources are public vendor URLs or long-standing community mirrors (Adafruit CDN, PJRC, SparkFun)

    Repo went from 0 PDFs (only README.md + CLAUDE.md) to a full working reference. Ready to close after commit-and-push.

  2. zackees commented on Jul 1, 2026

    @zackees
    MemberAuthor

    Update — 2026-07-01: Playwright browser-fetch pass

    Ran a targeted Playwright pass to close the 3 gaps left after the original sweep. Result: 2 solid wins, 1 confirmed genuine gap.

    Results

    • ✅ nordic/mcu/nRF52840/errata.pdf — upgraded from Engineering-A v1.0 (2016, 212 KB) → Rev 3 v1.4 (2026-05-11, 617 KB, 44 pages). Fetched via Playwright-driven Chromium session; direct curl returns HTTP 403 from infocenter.nordicsemi.com.
    • ✅ nordic/mcu/nRF52832/errata.pdf — upgraded from Rev 2 v1.0 (2017, 506 KB) → Rev 2 v2.0 (2026-05-11, 660 KB, 50 pages). Same Playwright approach.
    • ❌ nordic/mcu/nRF52833/errata.pdf — still not fetchable via automation. Nordic no longer serves this errata as a downloadable PDF; the content lives HTML-only at docs.nordicsemi.com/bundle/errata_nRF52833_Rev2/page/ERR/nRF52833/Rev2/latest/err_833.html, gated behind reCAPTCHA on their Zoomin platform. Multiple attempts (direct URL guesses, Wayback Machine, Nordic product downloads page, Zoomin content-frame render, page.pdf() of the HTML index) all failed to produce a real errata PDF. nRF52833/SOURCES.md documents this + links the interactive HTML for reference.
    • ❌ sunmoon/addressable-led/SM16824E/datasheet.pdf — confirmed no free public PDF exists. Only Scribd-login-walled copies + JLCPCB listings reference the part. Not an obtainable artifact.

    Method notes (for future agents)

    • Nordic's infocenter.nordicsemi.com/pdf/*.pdf URLs work only from a real browser with Cloudflare's cf_clearance cookie. Playwright headless Chromium suffices when warmed with a prior navigation to docs.nordicsemi.com root before requesting the PDF.
    • Playwright's page.request.get() after warming does NOT work for /pdf/ on infocenter — even with the CF cookie present, the request fingerprint differs from a real navigation and CF returns 403. Full top-level page.goto() with content-body extraction is what works.
    • Wayback Machine has patchy Nordic coverage: nRF52840_Rev_3_Errata_v1.2 and nRF52832_Rev_2_Errata_v1.1 are archived (both 2024) but no nRF52833_Rev_*_Errata_v* archives exist at all — Nordic likely never served the 52833 errata as a discoverable PDF URL.
    • Nordic's Zoomin platform (docs.nordicsemi.com/bundle/*) does not publish PDF exports of individual errata bundles. The "PDF version is available as an attachment" text on the intro page is a legacy note that no longer resolves to an actual download link.

    Updated goal state

    Combining round 1 + round 2 + Playwright:

    • 148 PDFs + 7 PNGs + 83+ SOURCES.md on disk
    • All originally-listed parts + 5 discovered variants landed (ESP32-C2/C5/C61 with datasheet+TRM+errata each, ATmega328PB, RA6M5)
    • Only 2 concrete "gone" items remain: nRF52833 errata (Nordic HTML-only, no PDF export) and SM16824E datasheet (never published publicly). Both documented in-place.

    Ready for commit + push.

  3. zackees commented on Jul 1, 2026

    @zackees
    MemberAuthor

    Update — 2026-07-01: hunt pass for the last 3 problematic datasheets

    Fanned out 3 hunt sub-agents (curl-first, Playwright-second, wall-circumvention scripts). All 3 resolved.

    1. nordic/mcu/nRF52833/errata.pdf — ✅ LANDED

    • Rev 2 v1.4 (Doc. ID 4452_363 v1.4 / 2026-05-11), 33 pages, 478,595 bytes — current production silicon
    • Source: docs.nordicsemi.com/bundle/errata_nRF52833_Rev2/page/ERR/nRF52833/Rev2/latest/err_833.html → Fluidtopics khub attachment /api/khub/maps/5uTPHCvkwlkDEtoKhQqDwg/attachments/~xGAvjJ2nHWeCP7n4mojNQ-5uTPHCvkwlkDEtoKhQqDwg/content?download=true
    • The working recipe: load the Zoomin bundle landing page; the SPA fetches /api/khub/maps/{mapId}/attachments (returns JSON with map + attachment IDs even for anonymous sessions); then page.expect_download() + a[href*='<attachmentId>'].click(force=True) to trigger an in-DOM anchor download. Chromium treats khub as application/pdf and fires the download event. Neither curl nor Playwright's context.request.get() work — even in a CF-warmed context, both return 403 because their fingerprints differ from a real navigation.
    • Same recipe successfully re-fetched nRF52840 Rev 3 v1.4 and nRF52832 Rev 2 v2.0 (both dated 2026-05-11) — those are the current versions.
    • Wayback CDX index confirms: Nordic never published Rev 1/2/3 nRF52833 errata as static PDFs on infocenter — they jumped straight from Engineering A (last archived: v1.4, 2022) to Fluidtopics HTML bundles. This khub endpoint is now the only route.

    2. sunmoon/addressable-led/SM16824E/datasheet.pdf — ✅ LANDED

    • 13 pages, 736,066 bytes, V1.2 Chinese with English protocol section
    • Source: linkage.cn/uploads/allimg/20231204/2-2312041HP44W.pdf (original filename: SM16824E明微产品说明书.pdf)
    • Manufacturer identity correction: the true fab is Shenzhen Zhengmingke Electronics (深圳市钲铭科电子有限公司), English brand "Linkage" — NOT Sunmoon. JLCPCB and community naming attribute it to Sunmoon (part C5173616), matching how SM16703/SM16716 are catalogued. The die is co-branded. Filing under sunmoon/ preserves the existing convention; SOURCES.md documents the true fab.
    • The reason prior sweeps missed it: the vendor's Chinese brand 钲铭科 isn't a searchable synonym of "Sunmoon" unless you first know to look. The winning search was 钲铭科 SM16824E on Baidu, which returned linkage.cn, whose /quancai/ (all-color LED IC) index has SM16824E with a direct href.
    • Curl was sufficient — Playwright not needed once the vendor was identified.

    3. titanmicro/addressable-led/TM1829S/ — ✅ RESOLVED (tombstone)

    • Verdict: not a distinct part. "TM1829S" is board-house shorthand for the SOP-8 packaged TM1829 (versus the DIP-8 packaged one). No separate silicon revision exists.
    • Evidence: TM1829 datasheet V1.4 lists ONLY Package: SOP8, DIP8 with no S-variant / ordering-code table. Advatek pixel-protocol registry has no TM1829S entry. LCSC (C5174518) has no TM1829S SKU. Zero PDF hits across "TM1829S" filetype:pdf, TM1829S datasheet, TM1829S 天微.
    • Left a discoverability tombstone titanmicro/addressable-led/TM1829S/README.md pointing to the base spec.

    Discovered — worth adding to the collection

    • TM1929 — a distinct sibling of TM1829 in the Titan Micro addressable-LED family (LCSC part 5826915). Not a rename of TM1829 — a separate part. Worth a follow-up sweep to add titanmicro/addressable-led/TM1929/datasheet.pdf.

    Final tally

    • 148 PDFs + 7 PNGs + 84 SOURCES.md on disk
    • All original acceptance criteria met, plus round-2 additions (ESP32-C2/C5/C61, ATmega328PB, RA6M5) and Playwright-fetched Nordic current-production errata (52833 Rev 2 v1.4, 52840 Rev 3 v1.4, 52832 Rev 2 v2.0), plus SM16824E via vendor-identity detective work
    • 1 remaining known gap (informational): nRF51822 PAN v3.0 (upgrade from v2.4). v3.0 is not on the modern docs.nordicsemi.com portal and no third-party mirror indexes it — current v2.4 is the best publicly available copy. Not a blocker.
    • 1 discoverable follow-up: TM1929 datasheet — new part surfaced during the hunt.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions