A Tamagotchi P1 emulator for microcontrollers

Overview

MCUGotchi - A Tamagotchi P1 emulator for microcontrollers

Synopsis

MCUGotchi is a Tamagotchi P1 emulator for microcontrollers relying on the hardware agnostic Tamagotchi P1 emulation library TamaLIB.

STM32F072 Discovery Board

For the time being, MCUGotchi only supports the STM32F0 MCU from STMicroelectronics, more precisely the STM32F072 discovery board, with an SPI SSD1306 OLED screen connected to it, but it can basically run on any STM32F0 based board almost out of the box, and on any STM32 MCU with minor modifications.

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.

Build instruction

MCUGotchi depends on several components:

  • the GNU ARM Embedded Toolchain, which can be downloaded there
  • OpenOCD, which can be installed using the package manager of your operating system, or built using a release package provided there
  • the STM32Cube Library, which is provided as submodule
  • TamaLIB, which is also provided as submodule
  • a Tamagotchi P1 ROM, which can be downloaded from there for instance
  • TamaTool to convert the binary ROM into a .h file, which can be downloaded or built from there
  1. Clone MCUGotchi and its submodules:
$ git clone --recursive https://github.com/jcrona/mcugotchi.git
  1. Download/build/install the toolchain, OpenOCD and TamaTool. OpenOCD and the toolchain are expected to be in the parent folder of MCUGotchi, but you can place them wherever you want and adjust the first lines of mcugotchi/Makefile accordingly.
  2. Convert the ROM to rom.h and place it in mcugotchi/src:
$ tamatool -r rom.bin -H > mcugotchi/src/rom.h
  1. Build MCUGotchi:
$ cd mcugotchi
$ make
  1. Connect you board and program it:
$ make flash
  1. Try to keep your Tamagotchi alive !

License

TamaTool is distributed under the GPLv2 license. See the LICENSE file for more information.

Hardware 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) 2021 Jean-Christophe Rona

Issues
  • Raspberry Pi Pico / RP2040 Support

    Raspberry Pi Pico / RP2040 Support

    Hello, first I'd like to say this is awesome - thank you for the work. I've been playing around with TamaTool and it works perfectly.

    I was curious how hard it would be to get this to run on a Raspberry Pi Pico? Or if its even possible. By combining a Pico with a screen (https://shop.pimoroni.com/products/pico-display-pack) you could get something close to the original form factor with some buttons on the screen. You could even use the screen LED to mirror the attention light, etc.

    Just curious your general opinion on this, to fully understand this is over my head. Thank you.

    opened by spmfox 4
Owner
Jean-Christophe Rona
Jean-Christophe Rona
HD44780 peripheral library for stm32 microcontrollers.

stm32-HD44780 This is a peripheral driver library for interfacing stm32 microcontrollers with the HD44780 display driver. The implementation uses the

Lorenzo Murarotto 17 Jan 20, 2022
This repository is to share the EdgeAI Lab with Microcontrollers Series material to the entire community

This repository is to share the EdgeAI Lab with Microcontrollers Series material to the entire community. We will share documents, presentations and source code of two demo applications.

Machine Learning Tokyo 15 Oct 23, 2021
X-CUBE-AZRTOS-F4 (Azure RTOS Software Expansion for STM32Cube) provides a full integration of Microsoft Azure RTOS in the STM32Cube environment for the STM32F4 series of microcontrollers.

X-CUBE-AZRTOS-F4 Azure RTOS Software Expansion for STM32Cube With Azure RTOS complementing the extensive STM32Cube ecosystem providing free developmen

STMicroelectronics 24 Jul 29, 2022
Gamepad firmware for RP2040 microcontrollers supporting Nintendo Switch, XInput and DirectInput

GP2040 Firmware GP2040 is a gamepad firmware for the RP2040 microcontroller that provides high performance and a rich feature set across multiple plat

null 237 Aug 12, 2022
A small RTOS for ARM Cortex-M3/M4 based Microcontrollers.

A tiny RTOS for ARM Cortex-M3/M4 based Microcontrollers. Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About The Proje

Puranjay Mohan 32 Aug 10, 2022
Library for STM32 microcontrollers with HAL to communicate with absolute orientation sensor Bosh BNO055.

Bosh BNO055 sensor library fro STM32 with HAL Library for STM32 microcontrollers with HAL to communicate with absolute orientation sensor Bosh BNO055.

Eryk Możdżeń 1 Nov 20, 2021
Vectron VGA Plus generates a [email protected] VGA signal and has an interface that works with retro computers or microcontrollers.

Vectron VGA Plus Vectron VGA Plus generates a [email protected] VGA signal and has an interface that works with retro computers or microcontrollers. Screen

Nick Bild 31 Jul 27, 2022
X-CUBE-AZRTOS-F7 (Azure RTOS Software Expansion for STM32Cube) provides a full integration of Microsoft Azure RTOS in the STM32Cube environment for the STM32F7 series of microcontrollers.

X-CUBE-AZRTOS-F7 Azure RTOS Software Expansion for STM32Cube With Azure RTOS complementing the extensive STM32Cube ecosystem providing free developmen

STMicroelectronics 4 Aug 5, 2022
Gesture-Detecting-Macro-Keyboard - Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32.

Gesture detection tldr; Glorified Bluetooth macro keyboard with machine learning (TensorFlow Lite for Microcontrollers) running on an ESP32. Main feat

Jakob Krantz 65 Jul 30, 2022
x86 emulator on Raspberry Pi Pico

picox86 x86 emulator on Raspberry Pi Pico https://user-images.githubusercontent.com/10139098/110543817-13299080-812b-11eb-9c88-674cdae919fc.mp4 PCB fr

null 34 Apr 7, 2022
I2C hardware test terminal/master mode emulator.

I2C Master Mode Emulator The I2C master mode emulator allows communication with I2C devices by sending or receiving data to/from the I2C bus. To issue

Dilshan R Jayakody 17 Jan 26, 2022
a little hobby raspberry pi pico emulator

PICO-EMU a little raspberry pi pico emulator note: we use the provided bootrom from raspberry pi at the repo: https://github.com/raspberrypi/pico-boot

supercyp 24 Aug 3, 2022
Emulator for EvE Online Crucible expansion

EVEmu - An EVE Online Emulator Introduction EVEmu is a work-in-progress server emulator for the space MMO EVE Online. This is an educational project.

EvEmu Project 52 Aug 11, 2022
a Blue Pill Neopixel Emulator

NeoPill a Blue Pill Neopixel Emulator, firmware for STM32F103C8T6. To build with STM32CubeMX (6.1.1), open bluepill_neoemu_clk.ioc, generate code in a

null 20 Dec 13, 2021
BK0010/BK0011 Emulator for Linux

<html><head> <meta http-equiv="content-type" content="text/html;charset=koi8-r"> </head> <body><pre> Этот эмулятор БК-0010 (пока только БК-0010, у мен

Yaroslav Salnikov 7 Apr 1, 2022
A VERY simple Chip8 emulator

Chip8-Emu A VERY simple Chip8 emulator

null 4 Nov 7, 2021
EMUCHIP8, a CHIP-8 emulator.

EMUCHIP8 Chip-8 Demo Video This is a fun retro emulator project of mine. You can download the source code and build with MAKE, then insert your chip-8

Levent Kaya 13 Dec 29, 2021
OpenTibiaBR - Canary Project is a free and open-source MMORPG server emulator written in C++.

OpenTibiaBR - Canary Project is a free and open-source MMORPG server emulator written in C++. It is a fork of the OTServBR-Global project. To connect to the server and to take a stable experience, you can use our own client or tibia client and if you want to edit something, check our customized tools.

OpenTibiaBR 68 Jul 31, 2022
font rendering, Zep vim emulator, microui integration

LabFont This project is an exploration of getting text into a rendeing pipeline based on @floooh's sokol. Frameworks such as Dear ImGui solve text ren

Nick Porcino 13 Jan 23, 2022