To be honest i was wondering how deep you was going to go with it <| sep |> Gorillaz has traditionally contained a lot of messages , admittedly , to the American people , specifically the youth of America . Watch Bananaz . <| sep |> Don ' t declare too early because tuition rises for LSA students wanting to do CS . Take all your prerequisites the first two years and then declare . <| sep |> So right now I have two states , On and Off . What I ' d like is have 4 click throughs , All LEDs on , Off , Some LEDs on , Off . Since everybody else covered the digital logic vs uC thingy , here ' s how this would be done with digital logic . There are probably more optimal designs . but here ' s just my thoughts . I ' d use a 4 bit shiftregister , with the output looping back to the input . initialization , I ' d initialize Q 0 to 1 , and all other bits to 0 . Each button click would hit the shiftright pin , shifting the 1 to Q 1 , Q 2 , and Q 3 respectively . A shiftright after that will loop back around if you connect Q 4 to DSL . Done and done . Kind of a hard sell though , since the ATTiny 10 costs like $ 0 . 80 . detailenatmelATTINY 10 TSHRATTINY 10 TSHRCTND 2136158 I am seeing ~$ 0 . 10 per shiftregister though . A lot of the cheap shiftregisters are 8 bit however this can be solved by having two copies of the 4 input states . So its not that big of a deal . So its still cheaper to do this with shiftregisters .