Drawing complex inscribed and circumscribed polygons in TikZ

Much of manual placement which might be coded prettier, but the following comes close to your picture (some font mismatches because I was too lazy to search for a font matching the numbers are apparent):

\documentclass[border=3.14]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\begin{document}
\begin{tikzpicture}
  \draw[fill=gray!50,thick] (-4.5,-4.5) rectangle (4.5,4.5);
  \node[anchor=north, font=\sffamily\bfseries] at (0,4.5) {Heading Display};
  \node[fill,draw, minimum size=5cm, shape=regular polygon, regular polygon
    sides=6] (black) {};
  \node[fill=white, draw, minimum size=2.1cm, shape=regular polygon,
    regular polygon sides=6, rotate=30] at(-90:1.05cm) (innerB)  {};
  \node[fill=white, draw, minimum size=2.1cm, shape=regular polygon,
    regular polygon sides=6, rotate=30] at(30:1.05cm) (innerR)  {};
  \node[fill=white, draw, minimum size=2.1cm, shape=regular polygon,
    regular polygon sides=6, rotate=30] at(150:1.05cm) (innerL)  {};
  \node[anchor=north, font=\color{white}\sffamily\footnotesize, inner sep=5pt]
    at (black.north) {NEXT HEX};
  \begin{scope}[shift=(innerB),x=3mm, y=3mm]
    \filldraw (-.75,-1) -- (.75,-1) -- (0,1) -- cycle;
    \node[anchor=south, font=\sffamily\bfseries\tiny] at(0,1) {CURRENT};
    \node[anchor=north, font=\sffamily\bfseries\tiny] at(0,-1) {HEX};
  \end{scope}
  \foreach[count=\n]\x in {30,60,...,360}
    {
      \begin{scope}[shift=(90-\x:3.2cm),rotate=-\x]
        \draw[fill=white,thick]
          (-.5,-.5) -- (-.5,.5) -- (.5,.5) -- (.5,-.5) -- cycle;
        \draw[thick]
          (-.3,-.4) -- ++(0,.5) -- ++(-.1,0) -- ++(.4,.3) -- ++(.4,-.3)
          -- ++(-.1,0) -- ++(0,-.5) -- cycle
          ;
      \end{scope}
      \path (90-\x:3.2cm) node {\n};
    }
\end{tikzpicture}
\end{document}

enter image description here


Everything has been calculated according to the known dimensions of the regular 6- and 12-sided polygons. The radius is a defined variable that can be modified to enlarge or reduce the figure. \def\rayon{2.5cm}

The arrows are now centered in the squares without touching their sides.

screenshot

\documentclass[tikz,border=5mm]{standalone}

\usetikzlibrary{calc,shapes}
\begin{document}
\def\rayon{2.5cm}
    \begin{tikzpicture}[every label/.style={draw,minimum size=1cm}]
    \node[draw,minimum size={2*\rayon},regular polygon,regular polygon sides=6,fill=black] (a) {};
        \node[circle,minimum size={\rayon * 2}](b){};
        \node[circle,minimum size={\rayon*2+sqrt(2-sqrt(3))*\rayon}](c){};
    \coordinate (i1) at ($(a.side 1)!.5!(a.side 5)$);
    \coordinate (i2) at ($(a.side 1)!.5!(a.side 3)$);
    \coordinate (i3) at ($(a.side 3)!.5!(a.side 5)$);
    \node[draw,minimum size={sqrt(3)/2*\rayon},regular polygon,regular polygon sides=6,rotate=30,fill=white]at(i1){};
    \node[draw,minimum size={sqrt(3)/2*\rayon},regular polygon,regular polygon sides=6,rotate=30,fill=white]at(i2){};
    \node[draw,minimum size={sqrt(3)/2*\rayon},regular polygon,regular polygon sides=6,rotate=30,fill=white]at(i3){};
    \begin{scope}[every label/.style={single arrow,draw,minimum size={sqrt(2-sqrt(3))*\rayon-10pt}}]
    \foreach \a [count=\n] in {60,30,...,-270}{
    \node[draw,minimum size={sqrt(2-sqrt(3))*\rayon},anchor=west,rotate=\a,label={[anchor=west,shift={(\a:5pt)},rotate=\a]west:\phantom{11}}] at (b.\a){};
    \node at (c.\a){\n};    
    }
    \end{scope}

    \end{tikzpicture}
\end{document}