\documentclass[12pt,border=5pt]{standalone}
\pagestyle{empty}
\usepackage{amsmath,amsfonts,euler}
\usepackage{tikz}
\usetikzlibrary{calc}
\usetikzlibrary{backgrounds}
\usepackage[american,siunitx]{circuitikz}
\begin{document}

\begin{circuitikz}[background rectangle/.style={fill=white}, show background rectangle]
    \definecolor{Dyellow}{rgb}{0.9,0.9,0.3}

    % arduino schematic
    \node(set) at (11.5,15){};
    \draw[black,thick] (set.center) rectangle node[align=center]{Arduino Uno}($(set.center)+(7,18)$);
    \node(Arduinoa5)[right] at ($(set.center)+(0,1)$){A5};
    \node(Arduinoa4)[right] at ($(set.center)+(0,2)$){A4};
    \node(Arduinoa3)[right] at ($(set.center)+(0,3)$){A3};
    \node(Arduinoa2)[right] at ($(set.center)+(0,4)$){A2};
    \node(Arduinoa1)[right] at ($(set.center)+(0,5)$){A1};
    \node(Arduinoa0)[right] at ($(set.center)+(0,6)$){A0};

    \node(ArduinoVin)[right] at ($(set.center)+(0,7)$){5V in};
    \node(ArduinoGND1)[right] at ($(set.center)+(0,8)$){GND};
    \node(ArduinoGND2)[right] at ($(set.center)+(0,9)$){GND};
    \node(Arduino5V)[right] at ($(set.center)+(0,10)$){5V};
    \node(Arduino3V)[right] at ($(set.center)+(0,11)$){3.3V};
    \node(ArduinoRESET)[right] at ($(set.center)+(0,12)$){RESET};
    \node(ArduinoIOREF)[right] at ($(set.center)+(0,13)$){IOREF};

    \node(ArduinoUSBVin)[below] at ($(set.center)+(2,18)$){USB 5V in};
    \node(ArduinoUSBGND)[below] at ($(set.center)+(5,18)$){USB GND};

    \node(Arduinop0)[left] at ($(set.center)+(7,1)$){D0};
    \node(Arduinop1)[left] at ($(set.center)+(7,2)$){D1};
    \node(Arduinop2)[left] at ($(set.center)+(7,3)$){D2};
    \node(Arduinop3)[left] at ($(set.center)+(7,4)$){D3};
    \node(Arduinop4)[left] at ($(set.center)+(7,5)$){D4};
    \node(Arduinop5)[left] at ($(set.center)+(7,6)$){D5};
    \node(Arduinop6)[left] at ($(set.center)+(7,7)$){D6};
    \node(Arduinop7)[left] at ($(set.center)+(7,8)$){D7};
    \node(Arduinop8)[left] at ($(set.center)+(7,9)$){D8};
    \node(Arduinop9)[left] at ($(set.center)+(7,10)$){D9};
    \node(Arduinop10)[left] at ($(set.center)+(7,11)$){D10};
    \node(Arduinop11)[left] at ($(set.center)+(7,12)$){D11};
    \node(Arduinop12)[left] at ($(set.center)+(7,13)$){D12};
    \node(Arduinop13)[left] at ($(set.center)+(7,14)$){D13};
    \node(Arduinopgnd)[left] at ($(set.center)+(7,15)$){GND};
    \node(Arduinoparef)[left] at ($(set.center)+(7,16)$){AFRE};

    % power source
    \draw ($(set.center)+(2,18)$)
    to[short,*-*] ($(set.center)+(2,20)$)
    to[V=$5 V$,/tikz/circuitikz/bipoles/length=2cm] ($(set.center)+(5,20)$)
    to[short,*-*] ($(set.center)+(5,18)$);

    % push buttons
    \draw ($(set.center)+(10,5)$) to[push button=BEAM] ($(set.center)+(12,5)$);
    \draw ($(set.center)+(10,6)$) to[push button=WAVE] ($(set.center)+(12,6)$);
    \draw ($(set.center)+(10,7)$) to[push button=ICE] ($(set.center)+(12,7)$);
    \draw ($(set.center)+(10,8)$) to[push button=PLASMA] ($(set.center)+(12,8)$);

    % H bridge schematics
    \newcommand{\HB}{HB1}
    \node(set) at (-1,2){};
    \draw[black,thick] (set.center) rectangle node[align=center]{H-Bridge 1\\SN754410}($(set.center)+(3.5,9)$);
    \node(\HB p1)[right] at ($(set.center)+(0,8)$){1};
    \node(\HB p2)[right] at ($(set.center)+(0,7)$){2};
    \node(\HB p3)[right] at ($(set.center)+(0,6)$){3};
    \node(\HB p4)[right] at ($(set.center)+(0,5)$){4};
    \node(\HB p5)[right] at ($(set.center)+(0,4)$){5};
    \node(\HB p6)[right] at ($(set.center)+(0,3)$){6};
    \node(\HB p7)[right] at ($(set.center)+(0,2)$){7};
    \node(\HB p8)[right] at ($(set.center)+(0,1)$){8};
    \node(\HB p9)[left] at ($(set.center)+(3.5,1)$){9};
    \node(\HB p10)[left] at ($(set.center)+(3.5,2)$){10};
    \node(\HB p11)[left] at ($(set.center)+(3.5,3)$){11};
    \node(\HB p12)[left] at ($(set.center)+(3.5,4)$){12};
    \node(\HB p13)[left] at ($(set.center)+(3.5,5)$){13};
    \node(\HB p14)[left] at ($(set.center)+(3.5,6)$){14};
    \node(\HB p15)[left] at ($(set.center)+(3.5,7)$){15};
    \node(\HB p16)[left] at ($(set.center)+(3.5,8)$){16};

    \renewcommand{\HB}{HB2}
    \node(set) at (6.5,2){};
    \draw[black,thick] (set.center) rectangle node[align=center]{H-Bridge 2\\SN754410}($(set.center)+(3.5,9)$);
    \node(\HB p1)[right] at ($(set.center)+(0,8)$){1};
    \node(\HB p2)[right] at ($(set.center)+(0,7)$){2};
    \node(\HB p3)[right] at ($(set.center)+(0,6)$){3};
    \node(\HB p4)[right] at ($(set.center)+(0,5)$){4};
    \node(\HB p5)[right] at ($(set.center)+(0,4)$){5};
    \node(\HB p6)[right] at ($(set.center)+(0,3)$){6};
    \node(\HB p7)[right] at ($(set.center)+(0,2)$){7};
    \node(\HB p8)[right] at ($(set.center)+(0,1)$){8};
    \node(\HB p9)[left] at ($(set.center)+(3.5,1)$){9};
    \node(\HB p10)[left] at ($(set.center)+(3.5,2)$){10};
    \node(\HB p11)[left] at ($(set.center)+(3.5,3)$){11};
    \node(\HB p12)[left] at ($(set.center)+(3.5,4)$){12};
    \node(\HB p13)[left] at ($(set.center)+(3.5,5)$){13};
    \node(\HB p14)[left] at ($(set.center)+(3.5,6)$){14};
    \node(\HB p15)[left] at ($(set.center)+(3.5,7)$){15};
    \node(\HB p16)[left] at ($(set.center)+(3.5,8)$){16};

    \renewcommand{\HB}{HB3}
    \node(set) at (14,2){};
    \draw[black,thick] (set.center) rectangle node[align=center]{H-Bridge 3\\SN754410}($(set.center)+(3.5,9)$);
    \node(\HB p1)[right] at ($(set.center)+(0,8)$){1};
    \node(\HB p2)[right] at ($(set.center)+(0,7)$){2};
    \node(\HB p3)[right] at ($(set.center)+(0,6)$){3};
    \node(\HB p4)[right] at ($(set.center)+(0,5)$){4};
    \node(\HB p5)[right] at ($(set.center)+(0,4)$){5};
    \node(\HB p6)[right] at ($(set.center)+(0,3)$){6};
    \node(\HB p7)[right] at ($(set.center)+(0,2)$){7};
    \node(\HB p8)[right] at ($(set.center)+(0,1)$){8};
    \node(\HB p9)[left] at ($(set.center)+(3.5,1)$){9};
    \node(\HB p10)[left] at ($(set.center)+(3.5,2)$){10};
    \node(\HB p11)[left] at ($(set.center)+(3.5,3)$){11};
    \node(\HB p12)[left] at ($(set.center)+(3.5,4)$){12};
    \node(\HB p13)[left] at ($(set.center)+(3.5,5)$){13};
    \node(\HB p14)[left] at ($(set.center)+(3.5,6)$){14};
    \node(\HB p15)[left] at ($(set.center)+(3.5,7)$){15};
    \node(\HB p16)[left] at ($(set.center)+(3.5,8)$){16};

    \renewcommand{\HB}{HB4}
    \node(set) at (21.5,2){};
    \draw[black,thick] (set.center) rectangle node[align=center]{H-Bridge 4\\SN754410}($(set.center)+(3.5,9)$);
    \node(\HB p1)[right] at ($(set.center)+(0,8)$){1};
    \node(\HB p2)[right] at ($(set.center)+(0,7)$){2};
    \node(\HB p3)[right] at ($(set.center)+(0,6)$){3};
    \node(\HB p4)[right] at ($(set.center)+(0,5)$){4};
    \node(\HB p5)[right] at ($(set.center)+(0,4)$){5};
    \node(\HB p6)[right] at ($(set.center)+(0,3)$){6};
    \node(\HB p7)[right] at ($(set.center)+(0,2)$){7};
    \node(\HB p8)[right] at ($(set.center)+(0,1)$){8};
    \node(\HB p9)[left] at ($(set.center)+(3.5,1)$){9};
    \node(\HB p10)[left] at ($(set.center)+(3.5,2)$){10};
    \node(\HB p11)[left] at ($(set.center)+(3.5,3)$){11};
    \node(\HB p12)[left] at ($(set.center)+(3.5,4)$){12};
    \node(\HB p13)[left] at ($(set.center)+(3.5,5)$){13};
    \node(\HB p14)[left] at ($(set.center)+(3.5,6)$){14};
    \node(\HB p15)[left] at ($(set.center)+(3.5,7)$){15};
    \node(\HB p16)[left] at ($(set.center)+(3.5,8)$){16};

    % Motors
    \draw (0.75,-5) node[elmech,/tikz/circuitikz/bipoles/length=4cm](M1){} (M1.center) node[align=center]{Stepper 1\\Plasma};
    \draw (8.25,-5) node[elmech,/tikz/circuitikz/bipoles/length=4cm](M2){} (M2.center) node[align=center]{Stepper 2\\Ice};
    \draw (15.75,-5) node[elmech,/tikz/circuitikz/bipoles/length=4cm](M3){} (M3.center) node[align=center]{Stepper 3\\Wave Left};
    \draw (23.25,-5) node[elmech,/tikz/circuitikz/bipoles/length=4cm](M4){} (M4.center) node[align=center]{Stepper 4\\Wave Right};

    % H bridge motor Wires
    \draw[blue] (HB1p6.west) to[short,*-] ($(HB1p6.west)+(-0.75,0)$)
      to[short] ($(M1.north)+(-2.5,0.25)$)
      to[short] ($(M1.north)+(-0.5,0.25)$)
      to[short,-*] ($(M1.north)+(-0.5,0)$);
    \draw[blue] (HB2p6.west) to[short,*-] ($(HB2p6.west)+(-0.75,0)$)
      to[short] ($(M2.north)+(-2.5,0.25)$)
      to[short] ($(M2.north)+(-0.5,0.25)$)
      to[short,-*] ($(M2.north)+(-0.5,0)$);
    \draw[blue] (HB3p6.west) to[short,*-] ($(HB3p6.west)+(-0.75,0)$)
      to[short] ($(M3.north)+(-2.5,0.25)$)
      to[short] ($(M3.north)+(-0.5,0.25)$)
      to[short,-*] ($(M3.north)+(-0.5,0)$);
    \draw[blue] (HB4p6.west) to[short,*-] ($(HB4p6.west)+(-0.75,0)$)
      to[short] ($(M4.north)+(-2.5,0.25)$)
      to[short] ($(M4.north)+(-0.5,0.25)$)
      to[short,-*] ($(M4.north)+(-0.5,0)$);

    \draw[blue] (HB1p3.west) to[short,*-] ($(HB1p3.west)+(-0.25,0)$)
      to[short] ($(M1.north)+(-2,0.5)$)
      to[short] ($(M1.north)+(-0.25,0.5)$)
      to[short,-*] ($(M1.north)+(-0.25,0)$);
    \draw[blue] (HB2p3.west) to[short,*-] ($(HB2p3.west)+(-0.25,0)$)
      to[short] ($(M2.north)+(-2,0.5)$)
      to[short] ($(M2.north)+(-0.25,0.5)$)
      to[short,-*] ($(M2.north)+(-0.25,0)$);
    \draw[blue] (HB3p3.west) to[short,*-] ($(HB3p3.west)+(-0.25,0)$)
      to[short] ($(M3.north)+(-2,0.5)$)
      to[short] ($(M3.north)+(-0.25,0.5)$)
      to[short,-*] ($(M3.north)+(-0.25,0)$);
    \draw[blue] (HB4p3.west) to[short,*-] ($(HB4p3.west)+(-0.25,0)$)
      to[short] ($(M4.north)+(-2,0.5)$)
      to[short] ($(M4.north)+(-0.25,0.5)$)
      to[short,-*] ($(M4.north)+(-0.25,0)$);

    \draw[blue] (HB1p14.east) to[short,*-] ($(HB1p14.east)+(0.5,0)$)
      to[short] ($(M1.north)+(2.25,0.5)$)
      to[short] ($(M1.north)+(0.25,0.5)$)
      to[short,-*] ($(M1.north)+(0.25,0)$);
    \draw[blue] (HB2p14.east) to[short,*-] ($(HB2p14.east)+(0.5,0)$)
      to[short] ($(M2.north)+(2.25,0.5)$)
      to[short] ($(M2.north)+(0.25,0.5)$)
      to[short,-*] ($(M2.north)+(0.25,0)$);
    \draw[blue] (HB3p14.east) to[short,*-] ($(HB3p14.east)+(0.5,0)$)
      to[short] ($(M3.north)+(2.25,0.5)$)
      to[short] ($(M3.north)+(0.25,0.5)$)
      to[short,-*] ($(M3.north)+(0.25,0)$);
    \draw[blue] (HB4p14.east) to[short,*-] ($(HB4p14.east)+(0.5,0)$)
      to[short] ($(M4.north)+(2.25,0.5)$)
      to[short] ($(M4.north)+(0.25,0.5)$)
      to[short,-*] ($(M4.north)+(0.25,0)$);

    \draw[blue] (HB1p11.east) to[short,*-] ($(HB1p11.east)+(0.75,0)$)
      to[short] ($(M1.north)+(2.5,0.25)$)
      to[short] ($(M1.north)+(0.5,0.25)$)
      to[short,-*] ($(M1.north)+(0.5,0)$);
    \draw[blue] (HB2p11.east) to[short,*-] ($(HB2p11.east)+(0.75,0)$)
      to[short] ($(M2.north)+(2.5,0.25)$)
      to[short] ($(M2.north)+(0.5,0.25)$)
      to[short,-*] ($(M2.north)+(0.5,0)$);
    \draw[blue] (HB3p11.east) to[short,*-] ($(HB3p11.east)+(0.75,0)$)
      to[short] ($(M3.north)+(2.5,0.25)$)
      to[short] ($(M3.north)+(0.5,0.25)$)
      to[short,-*] ($(M3.north)+(0.5,0)$);
    \draw[blue] (HB4p11.east) to[short,*-] ($(HB4p11.east)+(0.75,0)$)
      to[short] ($(M4.north)+(2.5,0.25)$)
      to[short] ($(M4.north)+(0.5,0.25)$)
      to[short,-*] ($(M4.north)+(0.5,0)$);

    % H bridge control Wires
    \draw[green] ($(HB1p1.west)+(-0.5,1.5)$) to[short] ($(HB4p1.west)+(-0.5,1.5)$);
      \draw[green] ($(HB1p1.west)+(-0.5,1.5)$) to[short,*-] ($(HB1p2.west)+(-0.5,0)$) to[short,-*] (HB1p2.west);
      \draw[green] ($(HB2p1.west)+(-0.5,1.5)$) to[short,*-] ($(HB2p2.west)+(-0.5,0)$) to[short,-*] (HB2p2.west);
      \draw[green] ($(HB3p1.west)+(-0.5,1.5)$) to[short,*-] ($(HB3p2.west)+(-0.5,0)$) to[short,-*] (HB3p2.west);
      \draw[green] ($(HB4p1.west)+(-0.5,1.5)$) to[short,*-] ($(HB4p2.west)+(-0.5,0)$) to[short,-*] (HB4p2.west);

    \draw[green] ($(HB1p1.west)+(-1,2)$) to[short] ($(HB4p1.west)+(-1,2)$);
      \draw[green] ($(HB1p1.west)+(-1,2)$) to[short,*-] ($(HB1p7.west)+(-1,0)$) to[short,-*] (HB1p7.west);
      \draw[green] ($(HB2p1.west)+(-1,2)$) to[short,*-] ($(HB2p7.west)+(-1,0)$) to[short,-*] (HB2p7.west);
      \draw[green] ($(HB3p1.west)+(-1,2)$) to[short,*-] ($(HB3p7.west)+(-1,0)$) to[short,-*] (HB3p7.west);
      \draw[green] ($(HB4p1.west)+(-1,2)$) to[short,*-] ($(HB4p7.west)+(-1,0)$) to[short,-*] (HB4p7.west);
    \draw[green] ($(HB1p16.east)+(0.5,2.5)$) to[short] ($(HB4p16.east)+(0.5,2.5)$);
      \draw[green] ($(HB1p16.east)+(0.5,2.5)$) to[short,*-] ($(HB1p15.east)+(0.5,0)$) to[short,-*] (HB1p15.east);
      \draw[green] ($(HB2p16.east)+(0.5,2.5)$) to[short,*-] ($(HB2p15.east)+(0.5,0)$) to[short,-*] (HB2p15.east);
      \draw[green] ($(HB3p16.east)+(0.5,2.5)$) to[short,*-] ($(HB3p15.east)+(0.5,0)$) to[short,-*] (HB3p15.east);
      \draw[green] ($(HB4p16.east)+(0.5,2.5)$) to[short,*-] ($(HB4p15.east)+(0.5,0)$) to[short,-*] (HB4p15.east);
    \draw[green] ($(HB1p16.east)+(1,3)$) to[short] ($(HB4p16.east)+(1,3)$);
      \draw[green] ($(HB1p16.east)+(1,3)$) to[short,*-] ($(HB1p10.east)+(1,0)$) to[short,-*] (HB1p10.east);
      \draw[green] ($(HB2p16.east)+(1,3)$) to[short,*-] ($(HB2p10.east)+(1,0)$) to[short,-*] (HB2p10.east);
      \draw[green] ($(HB3p16.east)+(1,3)$) to[short,*-] ($(HB3p10.east)+(1,0)$) to[short,-*] (HB3p10.east);
      \draw[green] ($(HB4p16.east)+(1,3)$) to[short,*-] ($(HB4p10.east)+(1,0)$) to[short,-*] (HB4p10.east);

    \draw[green] let \p1=(HB1p1.west), \p2=(Arduinop0.east) in (Arduinop0.east)
      to[short,*-] ($(Arduinop0.east)+(0.5,0)$)
      to[short,-*] ($(\x2,\y1)+(0.5,1.5)$);
    \draw[green] let \p1=(HB1p1.west), \p2=(Arduinop1.east) in (Arduinop1.east)
      to[short,*-] ($(Arduinop1.east)+(1,0)$)
      to[short,-*] ($(\x2,\y1)+(1,2)$);
    \draw[green] let \p1=(HB1p1.west), \p2=(Arduinop2.east) in (Arduinop2.east)
      to[short,*-] ($(Arduinop2.east)+(1.5,0)$)
      to[short,-*] ($(\x2,\y1)+(1.5,2.5)$);
    \draw[green] let \p1=(HB1p1.west), \p2=(Arduinop3.east) in (Arduinop3.east)
      to[short,*-] ($(Arduinop3.east)+(2,0)$)
      to[short,-*] ($(\x2,\y1)+(2,3)$);

    % H bridge logic power Wires
    \draw[red] ($(HB1p1.west)+(-0.25,3.5)$) to[short] ($(HB4p1.west)+(-0.25,3.5)$);
      \draw[red] ($(HB1p1.west)+(-0.25,3.5)$) to[short,*-] ($(HB1p1.west)+(-0.25,0)$) to[short,-*] (HB1p1.west);
      \draw[red] ($(HB2p1.west)+(-0.25,3.5)$) to[short,*-] ($(HB2p1.west)+(-0.25,0)$) to[short,-*] (HB2p1.west);
      \draw[red] ($(HB3p1.west)+(-0.25,3.5)$) to[short,*-] ($(HB3p1.west)+(-0.25,0)$) to[short,-*] (HB3p1.west);
      \draw[red] ($(HB4p1.west)+(-0.25,3.5)$) to[short,*-] ($(HB4p1.west)+(-0.25,0)$) to[short,-*] (HB4p1.west);

    \draw[red] ($(HB1p1.west)+(-0.25,1.25)$) to[short,*-*] ($(HB1p16.east)+(0.25,1.25)$);
    \draw[red] ($(HB2p1.west)+(-0.25,1.25)$) to[short,*-*] ($(HB2p16.east)+(0.25,1.25)$);
    \draw[red] ($(HB3p1.west)+(-0.25,1.25)$) to[short,*-*] ($(HB3p16.east)+(0.25,1.25)$);
    \draw[red] ($(HB4p1.west)+(-0.25,1.25)$) to[short,*-*] ($(HB4p16.east)+(0.25,1.25)$);

    \draw[red] (HB1p9.east) to[short,*-] ($(HB1p9.east)+(0.25,0)$) to[short] ($(HB1p16.east)+(0.25,1.25)$);
    \draw[red] (HB2p9.east) to[short,*-] ($(HB2p9.east)+(0.25,0)$) to[short] ($(HB2p16.east)+(0.25,1.25)$);
    \draw[red] (HB3p9.east) to[short,*-] ($(HB3p9.east)+(0.25,0)$) to[short] ($(HB3p16.east)+(0.25,1.25)$);
    \draw[red] (HB4p9.east) to[short,*-] ($(HB4p9.east)+(0.25,0)$) to[short] ($(HB4p16.east)+(0.25,1.25)$);

    \draw[red] (HB1p16.east) to[short,*-*] ($(HB1p16.east)+(0.25,0)$);
    \draw[red] (HB2p16.east) to[short,*-*] ($(HB2p16.east)+(0.25,0)$);
    \draw[red] (HB3p16.east) to[short,*-*] ($(HB3p16.east)+(0.25,0)$);
    \draw[red] (HB4p16.east) to[short,*-*] ($(HB4p16.east)+(0.25,0)$);

    \draw[red] let \p1=(HB1p1.west), \p2=(Arduino5V.west) in ($(Arduino5V.west)+(-2,0)$)
      to[short,*-*] ($(\x2,\y1)+(-2,3.5)$);

    % H bridge ground Wires
    \draw[black] ($(HB1p1.west)+(-0.75,4)$) to[short] ($(HB4p1.west)+(-0.75,4)$);
      \draw[black] ($(HB1p1.west)+(-0.75,4)$) to[short,*-] ($(HB1p4.west)+(-0.75,0)$) to[short,-*] (HB1p4.west);
      \draw[black] ($(HB2p1.west)+(-0.75,4)$) to[short,*-] ($(HB2p4.west)+(-0.75,0)$) to[short,-*] (HB2p4.west);
      \draw[black] ($(HB3p1.west)+(-0.75,4)$) to[short,*-] ($(HB3p4.west)+(-0.75,0)$) to[short,-*] (HB3p4.west);
      \draw[black] ($(HB4p1.west)+(-0.75,4)$) to[short,*-] ($(HB4p4.west)+(-0.75,0)$) to[short,-*] (HB4p4.west);
    \draw[black] let \p1=(HB1p1.west), \p2=(ArduinoGND2.west) in ($(ArduinoGND2.west)+(-1,0)$)
      to[short,*-*] ($(\x2,\y1)+(-1,4)$);

    \draw[black] let \p1=(HB1p8.west), \p2=(ArduinoUSBVin.north) in ($(HB4p8.west)+(-0.5,-1.5)$)
    to[short] ($(HB1p8.west)+(-2,-1.5)$)
    to[short] ($(HB1p8.west)+(-2,-1.5)$)
    to[short] ($(\x1,\y2)+(-2,2)$)
    to[short,-*] ($(\x2,\y2)+(0,2)$);

    \draw[black] (HB1p5.west) to[short,*-] ($(HB1p5.west)+(-0.5,0)$) to[short,-*] ($(HB1p5.west)+(-0.5,-4.5)$);
    \draw[black] (HB2p5.west) to[short,*-] ($(HB2p5.west)+(-0.5,0)$) to[short,-*] ($(HB2p5.west)+(-0.5,-4.5)$);
    \draw[black] (HB3p5.west) to[short,*-] ($(HB3p5.west)+(-0.5,0)$) to[short,-*] ($(HB3p5.west)+(-0.5,-4.5)$);
    \draw[black] (HB4p5.west) to[short,*-] ($(HB4p5.west)+(-0.5,0)$) to[short,-*] ($(HB4p5.west)+(-0.5,-4.5)$);

    % Switch Wires
    \draw[red] (Arduino5V.west)
        to[short,*-] ($(Arduino5V.west)+(-2,0)$)
        to[short] ($(Arduino5V.west)+(-2,15)$)
        to[short] ($(Arduino5V.west)+(13,15)$)
        to[short] ($(Arduino5V.west)+(13,-5)$);

    \draw[red] ($(Arduino5V.west)+(12,-5)$) to[short,*-*] ($(Arduino5V.west)+(13,-5)$);
    \draw[red] ($(Arduino5V.west)+(12,-4)$) to[short,*-*] ($(Arduino5V.west)+(13,-4)$);
    \draw[red] ($(Arduino5V.west)+(12,-3)$) to[short,*-*] ($(Arduino5V.west)+(13,-3)$);
    \draw[red] ($(Arduino5V.west)+(12,-2)$) to[short,*-*] ($(Arduino5V.west)+(13,-2)$);

    \draw[Dyellow] (Arduinop4.east) to[short,*-*] ($(Arduinop4.east)+(3,0)$);
    \draw[Dyellow] (Arduinop5.east) to[short,*-*] ($(Arduinop5.east)+(3,0)$);
    \draw[Dyellow] (Arduinop6.east) to[short,*-*] ($(Arduinop6.east)+(3,0)$);
    \draw[Dyellow] (Arduinop7.east) to[short,*-*] ($(Arduinop7.east)+(3,0)$);

    \draw[black] (ArduinoGND2.west)
        to[short,*-] ($(Arduino5V.west)+(-1,-1)$)
        to[short] ($(Arduino5V.west)+(-1,14)$)
        to[short] ($(Arduino5V.west)+(9.5,14)$);

    \draw[black] ($(ArduinoGND2.west)+(8,-4)$) to[short,*-*] ($(ArduinoGND2.west)+(8,13)$) to[R=$10^5$\ \SI{}{\ohm}] ($(ArduinoGND2.west)+(8,15)$);
    \draw[black] ($(ArduinoGND2.west)+(8.5,-3)$) to[short,*-*] ($(ArduinoGND2.west)+(8.5,13)$) to[R] ($(ArduinoGND2.west)+(8.5,15)$);
    \draw[black] ($(ArduinoGND2.west)+(9,-2)$) to[short,*-*] ($(ArduinoGND2.west)+(9,13)$) to[R] ($(ArduinoGND2.west)+(9,15)$);
    \draw[black] ($(ArduinoGND2.west)+(9.5,-1)$) to[short,*-*] ($(ArduinoGND2.west)+(9.5,13)$) to[R] ($(ArduinoGND2.west)+(9.5,15)$);

    % MOSFET schematic
    \draw ($(Arduinop8.east)+(9,0.25)$) node[nigfete,bodydiode](T1){} ($(T1)+(8,0)$) node{FQP30N06L};
    \draw ($(Arduinop9.east)+(11,0.25)$) node[nigfete,bodydiode](T2){} ($(T2)+(6,0)$) node{FQP30N06L};
    \draw ($(Arduinop10.east)+(13,0.25)$) node[nigfete,bodydiode](T3){} ($(T3)+(4,0)$) node{FQP30N06L};
    \draw ($(Arduinop11.east)+(15,0.25)$) node[nigfete,bodydiode](T4){} ($(T4)+(2,0)$) node{FQP30N06L};

    \draw[red] ($(ArduinoUSBGND.north)+(0,2)$) to[short,*-*] ($(ArduinoUSBGND.north)+(17,2)$);
    \draw[red] (T1.drain) to[short,-*] ($(T1.drain)+(0,10)$);
    \draw[red] (T2.drain) to[short,-*] ($(T2.drain)+(0,9)$);
    \draw[red] (T3.drain) to[short,-*] ($(T3.drain)+(0,8)$);
    \draw[red] (T4.drain) to[short,-*] ($(T4.drain)+(0,7)$);

    \draw (T1.gate) to[R,/tikz/circuitikz/bipoles/length=0.5cm,name=R1] (T1.source) ($(R1)+(-.1,-0.5)$) node{$10^5$\ \SI{}{\ohm}};
    \draw (T2.gate) to[R,/tikz/circuitikz/bipoles/length=0.5cm,name=R2] (T2.source) ($(R2)+(-.1,-0.5)$) node{$10^5$\ \SI{}{\ohm}};
    \draw (T3.gate) to[R,/tikz/circuitikz/bipoles/length=0.5cm,name=R3] (T3.source) ($(R3)+(-.1,-0.5)$) node{$10^5$\ \SI{}{\ohm}};
    \draw (T4.gate) to[R,/tikz/circuitikz/bipoles/length=0.5cm,name=R4] (T4.source) ($(R4)+(-.1,-0.5)$) node{$10^5$\ \SI{}{\ohm}};

    \draw[Dyellow] (Arduinop8.east) to[short,*-*] (T1.gate);
    \draw[Dyellow] (Arduinop9.east) to[short,*-*] (T2.gate);
    \draw[Dyellow] (Arduinop10.east) to[short,*-*] (T3.gate);
    \draw[Dyellow] (Arduinop11.east) to[short,*-*] (T4.gate);

    \draw[red] let \p1=(T1.source), \p2=(HB4p8.west) in (T1.source) to[short,*-] ($(\x1,\y2)+(0,-2)$)
      to[short] ($(HB4p8.west)+(-1.25,-2)$)
      to[short] ($(HB4p8.west)+(-1.25,0)$)
      to[short,-*] (HB4p8.west);
    \draw[red] let \p1=(T2.source), \p2=(HB3p8.west) in (T2.source) to[short,*-] ($(\x1,\y2)+(0,-3)$)
      to[short] ($(HB3p8.west)+(-1.25,-3)$)
      to[short] ($(HB3p8.west)+(-1.25,0)$)
      to[short,-*] (HB3p8.west);
    \draw[red] let \p1=(T3.source), \p2=(HB2p8.west) in (T3.source) to[short,*-] ($(\x1,\y2)+(0,-4)$)
      to[short] ($(HB2p8.west)+(-1.25,-4)$)
      to[short] ($(HB2p8.west)+(-1.25,0)$)
      to[short,-*] (HB2p8.west);
    \draw[red] let \p1=(T4.source), \p2=(HB1p8.west) in (T4.source) to[short,*-] ($(\x1,\y2)+(0,-5)$)
      to[short] ($(HB1p8.west)+(-1.25,-5)$)
      to[short] ($(HB1p8.west)+(-1.25,0)$)
      to[short,-*] (HB1p8.west);


\end{circuitikz}


\end{document}
