Skip to the content
PCBKitNew board
2 layers108.8 × 57.8 mmGamegame, the printed circuit board in 3D

Code and documentation repository for All Hands Active's gameGame4000 hackable solder badge kit

Size
108.8 × 57.8 mm
Copper layers
2
Thickness
1.6 mm
Parts
35
Nets
25
Pads
138
Tracks, vias
292, 14
Pours
3
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
5 May 2018
Updated
10 Aug 2019

Overview

Gamegame is an open-source printed circuit board by allhandsactive, from the allhandsactive/gamegame4000 repository on GitHub. It is a 2-layer board of 108.8 × 57.8 mm with 35 parts on 25 nets, routed with 292 tracks and 14 vias.

It is built around the ESP-12E. Its parts include 12 resistors, 11 switches, 4 capacitors, 3 ICs and 2 connectors. It belongs with the lEDs and displays boards and the ESP8266 boards of this library.

Main components

1

README

README.md

gameGame 4000

This is the gameGame 4000: an ESP8266-based, wifi-enabled "badge" learn-to-solder project designed for anyone who is interested in soldering on a somewhat intermediate level, or how to program these ubiquitous microcontrollers. Along with the ESP8266, it is equipped with an SSD1331 RGB OLED display, video game controller-alike buttons, and a small speaker for bleeps and bloops. This kit is designed by All Hands Active (http://www.allhandsactive.org), a 501(c)(3) not-for-profit hackerspace (http://hackerspaces.org) located in Downtown Ann Arbor, MI, USA. The included Arkanoid demo code here is based, almost verbatim, on code from the ssd1331 library by Alexey Dynda (@lexus2k). We added some tweaks to accommodate our unique button handling library, and adjusted pins to match our OLED screen setup.

As any good hackerspace should, we encourage people to fully tinker with the code and designs, and to find novel uses for this project. We'd love to hear of your projects using our badge -- please get in contact with us if you'd like to share your project!

Since it is based on the same processor, much of this documentation is copied over from our last kit, the mktwo badge (https://github.com/allhandsactive/mktwo-badge/blob/master/README.md)

Build instructions on Imgur

Heads up! There are a few errors in the assembly pictures at the imgur link here. Please follow the instructions in the captions first and foremost: https://imgur.com/gallery/5YhMqiV

Kit parts list

Make sure you have the following in your kit:

1x gameGame 4000 PCB

1x ESP8266 12E or 12F microprocessor

1x SSD1331 OLED display

1x 3-AA battery holder

1x Female battery connector lead with pigtail

1x Male battery connector header

1x Toggle switch

1x Header 7-socket

1x Right-angle header 6-pin

1x Speaker 8-ohm 20mm

1x Linear regulator 1.2A 3.3v STMicroelectronics P/N LDL1117S33R

1x Shift register 8-bit Nexperia USA Inc. P/N 74HC597D,653

2x Electrolytic capacitor 10uF 50V

2x Ceramic capacitor 0.1uF 50V

4x Nylon standoff M2 x 12mm

4x Nylon nut M2

4x Nylon screw M2 x 5mm

10x Push button

12x Resistor 10k Ohm 1/8W 5%

Requirements

Hardware

The safest and more reliable way to load firmware onto your gameGame 4000 is with a USB-serial programming cable. You will need to use an FTDI cable, like the FTDI cable here (https://www.sparkfun.com/products/9717) , OR you can use a cheaper cable with the Prolific PL2303HX chipset (look on eBay! We were able to easily find them from US sellers for under $5). A serial voltage level of 3.3v for programming is recommended, but we've safely done it with 5v, too. NOTE: Windows/Apple users, you will likely have to download a driver to use the PL2303HX. Sorry, we can't provide support on how to do that.

Such cables hook up to the FTDI pin block near the bottom of the gameGame 4000. Take care when hooking up the cable, because the FTDI pins on the badge are not keyed. When you plug it into the badge, make sure the black wire on the FTDI cable faces toward the left side of the badge (assuming you are viewing the front of the badge). In case your cable doesn't have a single plug, but a bunch of individual wires (like the Prolific ones), the pinout should be as follows, assuming the board is facing up toward you, left-to-right (NC = No Connection):

BLACK NC NC GREEN WHITE NC

The red wire from the programming cable should not be connected, which also means you will need to power the badge with the battery when programming it.

Software

We recommend a current version of the Arduino IDE (https://www.arduino.cc/en/Main/Software), either binary or git clone.

Under Arduino's preferences, Additional Boards Manager URLs, you will need to add:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Under Tools|Board:|Boards Manager... search for and install esp8266. NOTE: you will need to add the URL above in preferences first. You will also need some libraries to run the OLED screen. Under Sketch|Include Library|Manage Libraries... search for SSD1331. Any of those should work to varying degrees. Try them out and experiment! If you want to try the included arkanoid8-pcon demo, grab the ssd1306 library, which comes with some cool demo stuff for our SSD1331 OLED screen. Keep in mind that you will have to update the pin settings on the other demos since they are connected differently for this board.

Now restart the Arduino IDE.

Badge Programming

Wired Programming
SETUP

Under the Arduino IDE settings (most of these seem to be defaults):

Board: "NodeMCU 1.0 (ESP-12E Module)"

CPU Frequency: "80 MHz"

Debug Port: "Disabled"

Debug Level: "None"

lwIP Variant: "v2 Lower Memory"

Flash Size: "4M (3M SPIFFS)"

Upload Speed: "460800" (try lowering this if you have issues while programming the board)

Port: (whatever port the programming cable is on. In Linux, it'll be something like /dev/ttyUSB0)

Programmer: "AVRISP mkII"

Erase Flash: "Only Sketch"

PROCEDURE

Let's take a look at the ssd1306 library's demo games. After installing that library, you can load up the arkanoid8-gamegame code from this repo.

To upload your code, you need to put the badge into "write" or "programming" mode. To do this, locate the PRGM and RESET buttons on the badge. Hold the PRGM button. Press and release the RESET button. You may now release PRGM. You will need to repeat this procedure before each firmware upload. You may now compile and upload as you would with any Arduino, using the Arduino IDE.

NOTE: Some FTDI cables might not cause the ESP to reset after successful programming. If you are observing this behavior, just use the RESET button on the badge.

Other notes

The speaker is linked to pin 5, if you wish to make bleeps and bloops with the tone function.

Other pin settings that might be useful:

For the OLED display:

sclk = 14

mosi = 13

cs = 2

rst = 0

dc = 16

For buttons (check out the example code in this repo):

pl/sload = 4

shcp/sck = 0

stcp/clk = 15

shift reg. serial output ("BUTTONS" on schematic) = 10

The board works great with three NiMH AA batteries.

Parts

35
QtyValueFootprintReferences
1210kgglib:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_HorizontalR1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R12, R13
20.1uFgglib:C_Rect_L4.6mm_W2.0mm_P2.50mm_MKS02_FKP02C1, C2
210uFCapacitor_THT:CP_Radial_D5.0mm_P2.50mmC3, C4
174LS597Package_SO:SOIC-16_3.9x9.9mm_P1.27mmU1
1AButton_Switch_THT:SW_PUSH_6mmSW5
1AP1117-33Package_TO_SOT_SMD:SOT-223-3_TabPin2U3
1BButton_Switch_THT:SW_PUSH_6mmSW6
1Batterygglib:PinHeader_1x02_P2.54mm_VerticalBT1
1DOWNButton_Switch_THT:SW_PUSH_6mmSW2
1ESP-12ERF_Module:ESP-12EU2
1FTDIConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_HorizontalJ1
1LEFTButton_Switch_THT:SW_PUSH_6mmSW3
1LOGOpenguiconbadge2:AHA-SILKG***
1PRGMButton_Switch_THT:SW_PUSH_6mmSW10
1RESETButton_Switch_THT:SW_PUSH_6mmSW9
1RIGHTButton_Switch_THT:SW_PUSH_6mmSW4
1SELECTButton_Switch_THT:SW_PUSH_6mmSW8
1SSD1331 SPI OLEDfootprints:SD1131J2
1STARTButton_Switch_THT:SW_PUSH_6mmSW7
1SW_SPDTConnector:FanPinHeader_1x03_P2.54mm_VerticalSW11
1SpeakerConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalLS1
1UPButton_Switch_THT:SW_PUSH_6mmSW1

Questions

How big is the Gamegame PCB?

It measures 108.8 × 57.8 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Gamegame use?

35 parts, built around the ESP-12E. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Gamegame KiCad files?

From the allhandsactive/gamegame4000 repository on GitHub, at the commit this page was made from: the board is pcb/Gamegame.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Gamegame design in my own project?

Its repository states no licence, so its author keeps all rights: ask allhandsactive before reusing the design.

Similar boards

  • 2 layers33.7 × 97.8 mmHAN ESP TSS721, the printed circuit board in 3D

    HAN ESP TSS721

    UtilitechAS/amsreader-firmware

    ESP8266 and ESP32 compatible firmware to read, interpret and publish data to MQTT from smart electrical meters, both DLMS and DSMR is supported

    29 parts470
  • 2 layers43 × 34.3 mmEspway, the printed circuit board in 3D

    Espway

    espway/espway

    Segway-like robot implemented on ESP8266

    37 parts122LGPL-3.0
  • 2 layers25.6 × 23 mmBreakout, the printed circuit board in 3D

    Breakout

    skorokithakis/tiny-ESP8266-breakout

    A very small and basic ESP8266 breakout board

    12 parts115BSD-2-Clause
  • 2 layers104.8 × 72.1 mmSST V2 4, the printed circuit board in 3D

    SST V2 4

    mcbittech/souliss-smart-thermostat-WiFi

    ESP8266 WiFi Smart Thermostat based on Souliss IoT Framework

    53 parts110GPL-2.0
  • 2 layers30 × 65 mmHardpass pcb, the printed circuit board in 3D

    Hardpass pcb

    girst/hardpass-passwordmanager-mirror-of-git.gir.st

    https://git.gir.st/hardpass.git - Seldomly Updated Mirror: Hardpass is a Raspberry Pi Zero based hardware password manager, using passwordstore.org.

    34 parts101GPL-3.0
  • 2 layers82.5 × 22.4 mmWindow Sensor, the printed circuit board in 3D

    Window Sensor

    MakerMeik/Window-Sensor

    Here you will find all the files you need to build an ESP8266-based window sensor whose battery will last for several years. Have a look at my video on Youtube: https://youtu.be/vxbuO1zWo3w

    19 parts67
  • 2 layers49.5 × 30 mmAirpcb smd old, the printed circuit board in 3D

    Airpcb smd old

    issalig/toshiba_air_cond

    AB protocol decoder for toshiba air conditioners

    30 parts65
  • 2 layers100 × 45 mmTranspOtterNG, the printed circuit board in 3D

    TranspOtterNG

    Jana-Marie/transpOtterNG

    Next Generation of TranspOtter.

    63 parts51