
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

Code and documentation repository for All Hands Active's gameGame4000 hackable solder badge kit
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.
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)
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
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%
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.
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.
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"
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.
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.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 12 | 10k | gglib:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R12, R13 |
| 2 | 0.1uF | gglib:C_Rect_L4.6mm_W2.0mm_P2.50mm_MKS02_FKP02 | C1, C2 |
| 2 | 10uF | Capacitor_THT:CP_Radial_D5.0mm_P2.50mm | C3, C4 |
| 1 | 74LS597 | Package_SO:SOIC-16_3.9x9.9mm_P1.27mm | U1 |
| 1 | A | Button_Switch_THT:SW_PUSH_6mm | SW5 |
| 1 | AP1117-33 | Package_TO_SOT_SMD:SOT-223-3_TabPin2 | U3 |
| 1 | B | Button_Switch_THT:SW_PUSH_6mm | SW6 |
| 1 | Battery | gglib:PinHeader_1x02_P2.54mm_Vertical | BT1 |
| 1 | DOWN | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | ESP-12E | RF_Module:ESP-12E | U2 |
| 1 | FTDI | Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_Horizontal | J1 |
| 1 | LEFT | Button_Switch_THT:SW_PUSH_6mm | SW3 |
| 1 | LOGO | penguiconbadge2:AHA-SILK | G*** |
| 1 | PRGM | Button_Switch_THT:SW_PUSH_6mm | SW10 |
| 1 | RESET | Button_Switch_THT:SW_PUSH_6mm | SW9 |
| 1 | RIGHT | Button_Switch_THT:SW_PUSH_6mm | SW4 |
| 1 | SELECT | Button_Switch_THT:SW_PUSH_6mm | SW8 |
| 1 | SSD1331 SPI OLED | footprints:SD1131 | J2 |
| 1 | START | Button_Switch_THT:SW_PUSH_6mm | SW7 |
| 1 | SW_SPDT | Connector:FanPinHeader_1x03_P2.54mm_Vertical | SW11 |
| 1 | Speaker | Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_Vertical | LS1 |
| 1 | UP | Button_Switch_THT:SW_PUSH_6mm | SW1 |
It measures 108.8 × 57.8 mm and has 2 copper layers, 1.6 mm thick.
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.
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.
Its repository states no licence, so its author keeps all rights: ask allhandsactive before reusing the design.

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


skorokithakis/tiny-ESP8266-breakout
A very small and basic ESP8266 breakout board

mcbittech/souliss-smart-thermostat-WiFi
ESP8266 WiFi Smart Thermostat based on Souliss IoT Framework

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.

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

