GithubHelp home page GithubHelp logo

microbyte's Introduction

MicroByte is an open-source retro hand-held console which can execute games from classic 8Bit consoles in a colorful and high pixel density IPS screen with a very little dimension. And anyone can modify/improve the firmware, case or PCB because is open source.

In this repo you can find the submodules to all the part of the project (PCB, case and firmware).

Youtube Video

Features

This device is mainly focus run emulators, trying to achieve as best performance as possible. But thanks to the flexibility of the development environment, it was implemented some extra features which will be explained on the next points.

Software.

This hand-held console can emulate for now the next list of 8Bit emulators:

(Clicking the name of the console you can see an image of a game on each console, but it's important to know that my camera is not able to capture the real colors and definition of the mounted display.).

On the other hand, it's possible to execute Arduino Sketches binaries and ESP-IDF binaries in run time in a similar way as an App in a smartphone.

Going deeper into the software, it was designed with a modular structure which simplifies the development and/or performance improvements.

Finally, to control this device we use LVGL as graphical user interface library. This library allows us to create very modern and clean looking interface, with very low memory usage.

Hardware

This is a list of the hardware specifications:

  • CPU: ESP32 Wrover E
  • RAM: 8 MByte
  • Flash: 16MByte
  • Li-Po battery charge and over-discharge circuit protection.
  • USB-C connection.
  • Battery 500 mAh with up to 6 hours of autonomy.
  • Screen: ST7789 IPS display with 1.3" of diagonal and 240x240 pixels of definition (44307 DPI).
  • Digital Audio amplifier (I2S) with SMT speaker. (Behind the top little hole is the speaker).

Once we already see the specifications it worth a special mention to the controllers which has the next configuration:

  • Four dome buttons (Start, Select and R/L Trigger).
  • Eight inductive button with rubber membrane.

The usage rubber membrane and inductive pad is to get a similar GameBoy experience. This give a mix "Clicky" and soft touch.

Customizable

The case was design with being 3D printer friendly. This means that you can 3D print easily to obtain a unique version of your console with you desired filament or resin.

In the next image you can see an example of how it could look in different combinations, in Andy Warhol style.

Q&A

  • Why to use SNES gamepad layout if only emulate 8Bit console?

    • Good question, because it only emulate 8Bit right now, but in future updates, probably it will be added some new 16Bit emulators which needs this gamepad layout and on the other hand if you want to create an application you have enough buttons.
  • Where I can buy?

    • At this moment is not available to sell, because is still a prototype and I need to improve a few things, but very soon it will be available.
  • Will include the case? Will be 3D printed?

    • Yes, a case will be included. And no, the case won't be 3D printed, it will be done with Epoxy Resin.
  • How can I modify the firmware?

    • You can find a document full of detail on the firmware repo.
  • All the game works for each emulator?

    • Unfortunately, the short answer is no. Most of the games works properly but has some glitches or even doesn't start. But I'm working on give support for most of the games.
  • How can I create a custom application?

    • The process will be explained on the use guide.

Guide

WIP

Credits

  • GameBoy & GameBoy Color emulator: This emulator was developed by GNUBoy and adapted by HardKernel to the ESP32
  • NES emulator: Is a modified version of Nofredo emulator. This adaptation to the ESP32 was done by Espressif, but I added some modifications to improve performance.
  • Sega Master System & GameGear: This emulator was original developed by SMS Plus and modified by Espressif to adapt to the ESP32.
  • Graphical User Interface: The GUI was developed using LVGL library.
  • GUI Icons: The icons used on the graphical interface were obtained from www.flaticon.es, with premium license. If requeried can be provided.

microbyte's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.