GEX thesis source code, full text, references
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
gex-thesis/ch.unit.npx.tex

67 lines
1.7 KiB

\section{NeoPixel Unit}
The NeoPixel unit implements the protocol needed to control a digital \gls{LED} strip with WS2812, WS2811, or compatible \gls{LED} driver chips. The protocol timing is implemented in software, therefore it is available on any GPIO pin of the module.
The color data can be loaded in five different format: as packed bytes, or as the little-endian or big-endian encoding of colors in the 32-bit format 0x00RRGGBB or 0x00BBGGRR. This data format is convenient when the colors are already represented by an array of 32-bit integers.
\subsection{NeoPixel Configuration}
\begin{inicode}
[NPX:neo@3]
# Data pin
pin=A0
# Number of pixels
pixels=32
\end{inicode}
\subsection{NeoPixel Commands}
\begin{cmdlist}
0 & \cname{CLEAR}
Switch all \glspl{LED} off (sets them to black) & \\
1 & \cname{LOAD}
Load a sequence of R,G,B bytes
& \begin{cmdreq}
\item For each LED:
\begin{pldlist}
\cfield{u8} red
\cfield{u8} green
\cfield{u8} blue
\end{pldlist}
\end{cmdreq} \\
4 & \cname{LOAD\_U32\_ZRGB}
Load 32-bit big-endian 0xRRGGBB (0,R,G,B)
& \begin{cmdreq}
\cfield{u32[]} color data BE
\end{cmdreq} \\
5 & \cname{LOAD\_U32\_ZBGR}
Load 32-bit big-endian 0xBBGGRR (0,B,G,R)
& \begin{cmdreq}
\cfield{u32[]} color data BE
\end{cmdreq} \\
6 & \cname{LOAD\_U32\_RGBZ}
Load 32-bit little-endian 0xBBGGRR (R,G,B,0)
& \begin{cmdreq}
\cfield{u32[]} color data LE
\end{cmdreq} \\
7 & \cname{LOAD\_U32\_BGRZ}
Load 32-bit little-endian 0xRRGGBB (B,G,R,0)
& \begin{cmdreq}
\cfield{u32[]} color data LE
\end{cmdreq} \\
10 & \cname{GET\_LEN}
Get number of \glspl{LED} in the strip
& \begin{cmdresp}
\cfield{u16} number of \glspl{LED}
\end{cmdresp} \\
\end{cmdlist}