\begin{tikzpicture} \node (rect_hw) [rectangle, draw, anchor=south west, minimum width=6 cm, minimum height=1 cm, label={[anchor=south]center:ESP8266 Hardware}] at (0, 0) {}; \draw[thick] (-0.5, 1.25) -- (6.5, 1.25) ; \node [rectangle, draw, anchor=south west, minimum width=4 cm, minimum height=1 cm, label={[anchor=south]center:ESP SDK}] at (0, 1.5) {}; \node [rectangle, draw, anchor=south west, minimum width=2 cm, minimum height=1 cm, label={[align=center, text width=1cm]center:GCC libc}] at (4, 1.5) {}; \node [rectangle, draw, anchor=south west, minimum width=6 cm, minimum height=1 cm, label={[anchor=south]center:ESP interface}] at (0, 2.5) {}; \node [rectangle, draw, anchor=south west, minimum width=2 cm, minimum height=1 cm, label={[align=center, text width= 2cm]center:Generic Arduino}] at (0, 3.5) {}; \node [rectangle, draw, anchor=south west, minimum width=2 cm, minimum height=1 cm, label={[align=center, text width= 2cm]center:Ethernet}] at (2, 3.5) {}; \node [rectangle, draw, anchor=south west, minimum width=2 cm, minimum height=1 cm, label={[align=center, text width= 2cm]center:ESP APIs}] at (4, 3.5) {}; \draw [decorate, decoration={brace,amplitude=5pt, raise=-4pt}] (-0.5,2.5) -- (-0.5,4.5) node [black,midway,rotate=90, above] {Arduino}; \end{tikzpicture}