Arcade Button Pressing Game

When every month brings out a fresh console blockbuster game that breaks new boundaries of cinematic immersion in its gameplay, it’s easy to forget that sometimes the simplest of game interfaces can be rewarding.

Hele Norges Knapp” (“All of Norway’s Button”), is a good example. As you might expect, it’s a button, a large arcade-style one, and the gameplay is simple. Press the button as many times as you can in 30 seconds. It’s a project from Norwegian Creations, and it was produced as a promotion that toured the country for one of Norway’s debit card payment systems.

The blog post and video is frustratingly light on hardware or software details, and their is nothing about it in their GitHub presence. But they tell us that at its heart is a Teensy 3.2 with an audio board, driving the big 7-segment displays for the scoreboard and the WS2801 LED lighting.

The button itself is Adafruit’s 100mm Massive Arcade Button, and given that it was pressed over a million times by eager Norwegians it would seem this project has proved its robustness.

The video below the break has details of construction and of the game in action, and there is another far more corporate promotional video on Facebook featuring a host of Bright Young People honing their button action in a sun-kissed Norway that looks almost tropical. The game itself does look as though it could be an amusing diversion in the same vein as those fairground strength tests.

There hasn’t been anything quite like this game here before. We think it would make a great festival installation, like Fire Pong, or the life-size Katamari Damacy ball.

17 thoughts on “Arcade Button Pressing Game

    1. A: Detect event, wait n microseconds before continuing, log event, goto A

      n is determined by testing the bouncing behavior of the button with an addition of a safety margin.

      Debouncing isn’t interesting and it is trivial.

      1. Regarding interesting/trivial I think HaD would beg to differ -> http://hackaday.com/2015/12/10/embed-with-elliot-debounce-your-noisy-buttons-part-ii/

        If you wait n microseconds then this limits the amount of presses that can be detected in 30 seconds. This means that the competition that is won by the person that can get to the debounce limit… And if anything debouncing is the MOST interesting thing about count the number of presses in 30 seconds.

        1. re: switch bounce — It’s one of those spring-loaded microswitches inside. They have pretty good bounce performance straight out of the box. The spring snap makes them pretty reliable.

          But if they _were_ using a simple tactile switch and not debouncing, that would suggest an interesting strategy…

          OTOH, a 5ms debounce timeout is 200 presses per second. I wonder what the high score was. I’m guessing it’s lower by at least a factor of ten?

          1. 5mS is arbitrary.

            Bounce increases with age and >50mS (near the end of life) is common. So a 100mS timeout is frequently chosen.

            This would limit the high score to 10 presses per second.

            A 5ms timeout would trigger ten times assuming the above weak debounce code was used with 50mS of noise.

            I would like to know how many activation that switch is rated for. Most are 100k to 1M electrical or mechanical.

          2. @[Do it in hardware]

            5ms isn’t really arbitrary unless your coding to suite any switch that may be connected.

            In this case a low bounce period switch was chosen to suite the intended purpose.

        2. Micro second – One *millionth* of a second. How many times can a human press a button in even one thousandth of a second.

          Switch bounce is at a far far greater frequency than a human could ever achieve pressing a button.

          1. 5mSec is arbitrary because datasheets for cheap switches don’t list a maximum debounce time.
            “Designed for obsolescence” is less of a reason for failure than just poor design.

            “How many times can a human press a button in even one thousandth of a second?”
            Dumb question.

            Better question would be how much pressure are you applying to the switch. There’s a reason switch manufacturers list electrical and mechanical activations separately.

          2. This is like arguing about how long 25 Volt electrolytic capacitor will last 30 Volts.

            There is no point to the argument when you can just use a 50 Volt cap.

            The switch used here has mechanical hysteresis and high velocity contact actuation to dramatically reduce switch bounce period *because* that is the better design choice.

            For those who would use a knife switch …

    2. The debounce was done with the “Bounce2” Arduino library. I think the record score was about 450-500 presses in 30 seconds, which gives a lot of time to debounce without affecting the score (i dont remember the exact time used). And by the way, of course we care about the debounce, the entire game was based on accurate counting :)

      Some additional details about the project:
      We used a teensy audio board to manage sound. The Teensy AudioPlaySdWav class was used to play wav files from a SD card. The audio board uses SPI, I2C and I2S, which leaves us with very few serial ports for leds and display.
      We used the “DigitalIO” lib for software SPI for the display, and the FastLED lib for software SPI to the leds, which were 4 pin WS2801 modules (GND,VCC,DATA,CLK).
      The functionality was implemented on state machines and timers from the Metro Arduino lib.

  1. Back when having a digital watch with a stopwatch feature was the hottest thing in wearables, used to play several games with them with buddies.

    i) See how fast you can start and stop it.
    ii) See how many times you can start and stop it in 1.00 secs or under, go over you lose.
    iii) Attempt to stop it at 1.00 exactly.

    Now in the case of i) a good regular repeatable score would be 0.15 or 0.16, if you were well practiced and on good days you could get 0.12 repeatably with down to 0.09 on the odd try. The flukey best was 0.03, you could do that once per session maybe.

    In the case of ii) it depended how good your average was 6 or 7 times was normal, 8 good, 9 godly and 10 near impossible.

    iii) probably not got so much relevance here, but after you’d got your eye in for a few 0.12s on i) you’d probably mash the button as soon as you saw the 9 roll round and have a 1 in 3 shot of nailing it.

    Anyway, single handed, in this 30 second game, you could probably repeatably mash it 7 times a second with a little practice, and improve to a steady 8 times a second. So you’d be getting good in the 200s, and really good in mid-high 200s. If you were super co-ordinated, and could interleave right and left hand presses, then hitting 500 should not be unpossible. More likely is that you’ll only get a 50% improvement.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s