Он строится на сдвиговых регистрах. Их особенность в том, что они включаются цепочкой. Т.е. сигнал с одной ножки МК раскладывается на сотни ножек. Но на это уходит в сотни раз больше времени - меньше FPS. Зато индивидуальное управление каждым диодом.
Длина цепочки неограничена, т.е. хватит на все, если времени на вывод кадра хватит. Можно и миллион диодов повесить, но один кадр в такую цепочку будет выводиться минуты или часы. На этот счет есть конечно разные уловки, например параллельный вывод на несколько цепочек.
Вобщем берется МК, загоняется в память картинка, и по пикселям выдается на ножку. С этой ножки сигнал через сдвиговые регистры ползет по сотням ножек, каждая из которых управляет своим диодом, т.е. пиксели проходят через цепочку сдвиговых регистров, пока каждый не займет свое место. Как только дополз до последней ножки, т.е. заполнил все регистры - идет их блокировка, и диоды зажигаются согласно сигналам на ножках - кто-то горит, кто-то нет. Получается картинка. Потом цикл повторяется - выводим следующий кадр.
Схема очень простая, но нудная - много сдвиговых регистров, много проводов.
Яркостью тоже просто так не поуправлять, нужно придумывать финты, т.к. ШИМ здесь не прокатит. Впрочем если вдруг получиться выводить по тысяче кадров в секунду - вполне можно запустить ШИМ.
Зато эффектов больше, но не плавных.
Чтоб самому не рисовать картинки по пикселям, многие делают софт для этого, который преобразует кадры в нужный формат и заливает в память. Если картинок много или они большие - можно внешнюю память прицепить.