MCUGotchi is a Tamagotchi P1 emulator for microcontrollers relying on the hardware agnostic Tamagotchi P1 emulation library TamaLIB.
For the time being, MCUGotchi supports the STM32F0 MCU from STMicroelectronics, more precisely the STM32F072 discovery board, and the OpenTama board based on a STM32L072, with either an SPI SSD1306 OLED screen or an SPI UC1701x LCD screen connected to it, but it can basically run on any STM32F0/STM32L0 based board almost out of the box, and on any STM32 MCU with some modifications.
For the STM32F072 discovery board, the expected connections are the following: | Name | PIN |
---|---|---|
SSD1306 CLK PIN | PA5 | |
SSD1306 DIN PIN | PA7 | |
SSD1306 DC PIN | PA1 | |
SSD1306 CE PIN | PA2 | |
SSD1306 RES PIN | PA6 | |
SSD1306 VCC PIN | VDD | |
SSD1306 GND PIN | GND | |
Left Button | PB3/VDD | |
Middle Button | PA0/VDD | |
Right Button | PB2/VDD |
MCUGotchi is also a good example of an embedded implementation of TamaLIB's abstraction layer.
MCUGotchi depends on several components:
$ git clone --recursive https://github.com/jcrona/mcugotchi.git
$ tamatool -r rom.bin -H > mcugotchi/src/rom.h
$ cd mcugotchi
$ make
$ make flash
MCUGotchi is distributed under the GPLv2 license. See the LICENSE file for more information.
The Tamagotchi P1 is based on an E0C6S46 Epson MCU, and runs at 32,768 kHz. Its LCD is 32x16 B/W pixels, with 8 icons.
To my knowledge, the ROM available online has been extracted from a high-res picture of a die. The ROM mask was clear enough to be optically read. The pictures can be seen there (thx asterick for the link !).
I would love to see the same work done on a P2 and add support for it in TamaLIB/MCUGotchi !
__
Copyright (C) 2022 Jean-Christophe Rona