A Little Simon Clone Named [Nomis]

[Chris] has been hard at work building his own version of Simon called [Nomis]. Although [HAD] has featured an ATiny Simon clone before, the article does an excellent job explaining how the system works.

The ATTiny85 is used to control this game, which, for now is laid out on a simple breadboard. A PCB version of this game has been ordered from [Seeed], so be sure to check back to see the results of this forthcoming upgrade. It’s really cool that this kind of small scale manufacturing is available to the masses.

A parts list is provided as well as a code overview and schematic. To see it in action, check out the video after the break. There’s an explanation at the beginning, but skip to 1:55 if you’d rather just see the machine in action. The game can reportedly run until a 100 “move” limit is reached. This was arbitrary, but it should be enough for most people!
[youtube http://www.youtube.com/watch?v=NM2AbkHqHag&w=470&h=315%5D

3 thoughts on “A Little Simon Clone Named [Nomis]

  1. I did one by putting each pair of button and led on a single pin ( led to 5V, button to GND).

    In replay mode, pins are configured as outputs with inverted logic to drive the leds. In capture mode, pins are inputs (with pull-ups) and pressing the button activates the pin and make the led brighten.

    No need for R-2R network nor charlie-plexing. It was done on an Arduino, but could be ported to an AtTiny with no problems

    1. That is another way of doing it that is arguably better. I just wanted to experiment with the ADC and basic DACs (the R-2R network), which is what led me to choose this particular option. From there the use of charlieplexing was to limit the pin consumption even further.

      I see how your implementation would work though!

  2. Hey Chris,

    I found my attinyX5’s a little too mighty to sacrifice them for a gift (which my build of your nomis is going to be). So i raped your code a lot and firstly changed led_display() to a lookup table uint8_t led_display[4]={0x03,0x04,0x06,0x01}. That made it easier and smaller because 0 > 13) <= 3. then i had to adjust the get_player_move() function other minor parts. My main goal was to get the final binary below 1K that it fits into an attiny13 and so it did.

    Well my nomis will most likly run out of RAM if you really manage it to keep it working till 50 or so but i guess this is still pretty goo if you manage it so far. Anyway I would be glad if you have a look at it and let me know what you think about it: http://www.putlocker.com/file/841CDB13D76B3C97

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.