Skip to content

Commit

Permalink
Merge pull request #44 from esp-cpp/feature/cad-update
Browse files Browse the repository at this point in the history
CAD Version 2
  • Loading branch information
finger563 committed Dec 18, 2023
2 parents 9753e80 + 4a62e95 commit 2af6a66
Show file tree
Hide file tree
Showing 50 changed files with 24,071 additions and 634,715 deletions.
231 changes: 66 additions & 165 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,53 @@
# esp-box-emu

Emulator(s) running on ESP BOX with custom pcb and 3d printed enclosure :)
![rendered shot](./images/gbc_2023-Dec-17_06-18-11PM-000_CustomizedView36611443813.png)

The ESP-BOX-EMU is a gameboy-inspired add-on for the ESP32-S3-BOX and
ESP32-S3-BOX-3 which provides:
- Game Controller (gamepad input with a/b/x/y, start/select, d-pad)
- LiPo battery (1000 mAh) with charging over USB-C
- Micro-SD card for storing roms, boxart, and savegames
- Volume +/- buttons
- USB-C port for charging and programming
- Haptics (using LRA powered by DRV2605)
- Custom software stack including:
- NES Emulator (nofrendo)
- Gameboy / Gameboy Color emulator (gnuboy)
- LVGL main menu with rom select (including boxart display) and settings page
(all generated from Squareline Studio)
- LVGL emulation paused menu with save slot select, save slot image display,
and configuration (sound, brightness, display, etc.). (all generated from
Squareline Studio)

https://github.com/esp-cpp/esp-box-emu/assets/213467/3b77f6bd-4c42-417a-9eb7-a648f31b4008

https://user-images.githubusercontent.com/213467/236730090-56c3bd64-86e4-4b9b-a909-0b363fab4fc6.mp4
https://github.com/esp-cpp/esp-box-emu/assets/213467/a3d18d03-c6a1-4911-89d1-e18119e8cc03

As of https://github.com/esp-cpp/esp-box-emu/pull/34 I am starting to add
initial support for the new ESP32-S3-BOX-3.
This project is designed to be in the same form factor as the Gameboy Color and
to reuse the same button plastics and membranes for a good play feel.

## Description
The housing is designed to be 3d printed (I use PLA or PETG on Prusa i3 mk3+),
and assembled with M3 screws.

This project is a little retro game emulation system running on ESP32-S3-BOX. It
is built using the following:
These are the parts / sources I'm using for stock / replacement GBC membranes
and buttons.

- [ESPP](http://github.com/esp-cpp/espp)
- [LVGL](http://github.com/lvgl/lvgl)
- [Squareline Studio](http://squareline.io) (for designing and generating LVGL)
- Nofrendo (NES emulator)
- GNUBoy (GB / GBC emulator)
- [Silicone pads for gameboy color (1)](https://funnyplaying.com/collections/product/products/gbc-replacement-silicone-pads)
- [Silicone pads for gameboy color (2)](https://www.retromodding.com/products/game-boy-color-silicone-pads)
- [Gameboy Color Button Plastics](https://funnyplaying.com/collections/product/products/cgb-custom-buttons?variant=39333911920701)

## Features

Note: for the ECAD + MCAD I'm using the free version of Fusion360.
<table style="padding:10px">
<tr>
<td><img src="https://user-images.githubusercontent.com/213467/216842344-b3a26c7e-69c4-4527-8d84-0c0c46ac766e.png" alt="Prototype" width = 400px ></td>
<td><img src="https://github.com/esp-cpp/esp-box-emu/blob/main/images/box-emu-cad.png" alt="CAD" width = 400px ></td>
</tr>
</table>
Link to Fusion 360 CAD (Free Version):

Link to Fusion 360 CAD:
[![a360_mcad](./images/a360_mcad.png)](https://a360.co/3le5oCQ)
[![CleanShot 2023-12-17 at 11 52 10@2x](https://github.com/esp-cpp/esp-box-emu/assets/213467/da8a5d3b-a015-4a34-a58a-ef6c1c635c9c)](https://a360.co/3le5oCQ)

The printable files can be found in the [./mcad](./mcad) folder or can be downloaded from [printables](https://www.printables.com/model/396931-esp-box-emu).
The printable files can be found in the [./mcad](./mcad) folder or can be
downloaded from
[printables](https://www.printables.com/model/396931-esp-box-emu).

The electrical files can be found in the [./ecad](./ecad) folder.

## Features

This project has the following features (still WIP):

- [x] Squareline Studio design files for generating boilerplate LVGL ([SLS files](./squareline), [Generated files](./components/gui/generated))
Expand Down Expand Up @@ -85,25 +96,42 @@ This project has the following features (still WIP):
- [ ] Use same audio + video tasks for both NES and GB/C emulation
- [ ] Graphics in black borders next to rom display during NES / GB/C emulation

## Filsystem / Storage
## Cloning

Since this repo contains a submodule, you need to make sure you clone it
recursively, e.g. with:

``` sh
git clone --recurse-submodules <your repo name>
```

The emu-box supports external FAT filesystems on a uSD card connected via SPI
(this is the DEFAULT option):
Alternatively, you can always ensure the submodules are up to date after cloning
(or if you forgot to clone recursively) by running:

| uSD SPI | ESP32 GPIO (exposed via PMOD header) |
|---------|--------------------------------------|
| CS | 10 |
| MOSI | 11 |
| MISO | 13 |
| SCLK | 12 |
``` sh
git submodule update --init --recursive
```

## Build and Flash

Build the project and flash it to the board, then run monitor tool to view serial output:

```
idf.py -p PORT flash monitor
```

(Replace PORT with the name of the serial port to use.)

(To exit the serial monitor, type ``Ctrl-]``.)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

## Rom Setup and Configuration (uSD Card)

Format your uSD card as a FAT filesystem and add your roms (.nes, .gb, .gbc),
images (.jpg), and metadata.csv. (See next section for more info about Rom
Images and the metadata file). Make sure the uSD card is plugged into the socket
and the wires are properly connected to the pins (including 3.3V and GND) listed
above.
images (.jpg), and metadata.csv.

## ROM Images
### ROM Images

For ease of use, there is a
[./boxart/source/resize.bash](./boxart/source/resize.bash) script which will
Expand Down Expand Up @@ -137,84 +165,6 @@ links_awakening.gbc, boxart/tloz_links_awakening_dx.jpg, The Legend of Zelda: Li

## References and Inspiration:

### ESP32 S3 Box Info:

It uses GPIO_NUM_46 to control power to the speaker, so if you do not set that
as output HIGH, then you will never hear anything T.T

The ESP32 S3 Box has two PMOD headers, PMOD1 and PMOD2, which have the following
pins:

* PMOD1
* IO40 (I2C_SCL)
* IO41 (I2C_SDA)
* IO38
* IO39
* IO42
* IO21
* IO19 (USB_D-, U1RTS, ADC2_CH8)
* IO20 (USB_D+, U1CTS, ADC2_CH9)
* PMOD2
* IO09 (FSPIHD, TOUCH9, ADC1_CH8)
* IO10 (FSPICS0, TOUCH10, ADC1_CH9)
* IO11 (FSPID, TOUCH11, ADC2_CH0)
* IO12 (FSPICLK, TOUCH12, ADC2_CH1)
* IO13 (FSPIQ, TOUCH13, ADC2_CH2)
* IO14 (FSPIWP, TOUCH14, ADC2_CH3)
* IO44 (U0RXD)
* IO43 (U0TXD)

#### LCD

The LCD is a ST7789 320x240 BGR display connected via SPI.

ESP32s3 LCD Pinout:

| LCD Function | ESP I/O Pin |
|----------------|-------------|
| Data / Command | 4 |
| Chip Select | 5 |
| Serial Data | 6 |
| Serial Clock | 7 |
| Reset | 48 |
| Backlight | 45 |

#### Touch

The ESP32S3 Box uses a capacitive touch controller connected via I2C.

The touch driver can be either the TT21100 or Ft5x06 chip.

NOTE: it appears the one I have is the regular ESP32 S3 BOX which has the red
circle at the bottom of the display (the `HOME` button) and uses the TT21100
chip.

#### Audio

The ESP32s3 Box has a few audio codec coprocessors connected simultaneously to
I2S (data) and I2C (configuration). It uses an encoder codec chip (ES7210) for
audio input from the multiple mics on-board, and a decoder chip (es8311) for
audio output to the speaker (output power controlled by GPIO 46).

ESP32s3 Audio Pinout:

| Audio Function | ESP I/O Pin |
|----------------|-------------|
| I2S MCLK | 2 |
| I2S SCLK | 17 |
| I2S LRCK | 47 |
| I2S Data Out | 15 |
| I2S Data In | 16 |
| Speaker Power | 46 |
| Mute Button | 1 |

I2C Pinout (shared with touchscreen chip above):

| I2C Function | ESP I/O Pin |
|--------------|-------------|
| SCL | 18 |
| SDA | 8 |

### Other NES Emulators
* https://github.com/nesemu/NESemu
* https://github.com/NiwakaDev/NIWAKA_NES
Expand Down Expand Up @@ -243,52 +193,3 @@ I2C Pinout (shared with touchscreen chip above):
* [NES Signal Reference](https://wiki.nesdev.com/w/index.php/Standard_controller)
* [Genesis Signal Reference](https://www.raspberryfield.life/2019/03/25/sega-mega-drive-genesis-6-button-xyz-controller/)
* [DIY Gameboy](https://learn.adafruit.com/pigrrl-raspberry-pi-gameboy/overview)

## Videos

https://user-images.githubusercontent.com/213467/220791336-eb24116d-0958-4ab7-88bd-f6a5bd6d7eb1.mp4

### Gameboy Color

This video shows settings page (with audio control and video scaling control), and then Links Awakening DX. While running the ROMs, the video scaling can be toggled through the three options (Original, Fit, and Fill) using the BOOT button on the side of the ESP-S3-BOX and the audio output can be toggled on / off using the MUTE button on the top.

https://user-images.githubusercontent.com/213467/202577104-da104296-c888-47f4-bb69-e1dcac7f3a08.mp4

### NES (Super Mario Bros. and Zelda, turning audio up for zelda :) )

https://user-images.githubusercontent.com/213467/200666734-d5fdd27e-d335-462b-9f27-c93c5750de01.mp4

https://user-images.githubusercontent.com/213467/201548463-9870a1c1-886c-4540-b1c6-c7ed3b49d8a5.mp4

### Gameboy (Pokemon and Links Awakening)

https://user-images.githubusercontent.com/213467/200667103-71425aa6-3e77-41b1-83d1-c2072a1a0ecb.mp4

Older Videos:
* [heavily compressed](https://user-images.githubusercontent.com/213467/200664203-46058c44-3025-4e81-973f-27ada573d5d2.mp4)
* [just zelda](https://user-images.githubusercontent.com/213467/199843965-1bf38a5f-2cc6-4ff0-adba-bbd67b366bc3.mp4)

## Images

<table style="padding:10px">
<tr>
<td><img src="./images/romgui_tloz.jpg" alt="Rom GUI: Zelda (NES)" width = 400px ></td>
<td><img src="./images/zelda.jpeg" alt="Zelda (NES) emulated" width = 400px ></td>
</tr>
<tr>
<td><img src="./images/zelda_its_dangerous.jpeg" alt="It's Dangerous To Go Alone, Take This!" width = 400px ></td>
<td><img src="./images/zelda_sword.jpeg" alt="Zelda (NES) Get Sword" width = 400px ></td>
</tr>
<tr>
<td><img src="./images/settingsgui.jpg" alt="Settings Screen (Audio Volume for now)" width = 400px></td>
<td><img src="./images/romgui_smb3.jpg" alt="Super Mario Bros. 3 (NES)" width = 400px ></td>
</tr>
<tr>
<td><img src="./images/romgui_pokemon_yellow.jpg" alt="Pokemon Yellow (GBC)" width = 400px ></td>
<td><img src="./images/romgui_tloz_links_awakening.jpg" alt="Link's Awakening (GB)" width = 400px ></td>
</tr>
<tr>
<td><img src="./images/squareline_studio.png" alt="Squareline Studio Design" width = 400px ></td>
</tr>
</table>

53 changes: 53 additions & 0 deletions box_notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
### ESP32 S3 Box Info:

It uses GPIO_NUM_46 to control power to the speaker, so if you do not set that
as output HIGH, then you will never hear anything T.T

The ESP32 S3 Box has two PMOD headers, PMOD1 and PMOD2, which have the following
pins:

* PMOD1
* IO40 (I2C_SCL)
* IO41 (I2C_SDA)
* IO38
* IO39
* IO42
* IO21
* IO19 (USB_D-, U1RTS, ADC2_CH8)
* IO20 (USB_D+, U1CTS, ADC2_CH9)
* PMOD2
* IO09 (FSPIHD, TOUCH9, ADC1_CH8)
* IO10 (FSPICS0, TOUCH10, ADC1_CH9)
* IO11 (FSPID, TOUCH11, ADC2_CH0)
* IO12 (FSPICLK, TOUCH12, ADC2_CH1)
* IO13 (FSPIQ, TOUCH13, ADC2_CH2)
* IO14 (FSPIWP, TOUCH14, ADC2_CH3)
* IO44 (U0RXD)
* IO43 (U0TXD)

#### LCD

The LCD is a ST7789 320x240 BGR display connected via SPI.

ESP32s3 LCD Pinout:

| LCD Function | ESP I/O Pin |
|----------------|-------------|
| Data / Command | 4 |
| Chip Select | 5 |
| Serial Data | 6 |
| Serial Clock | 7 |
| Reset | 48 |
| Backlight | 45 |

#### Touch

The ESP32S3 Box uses a capacitive touch controller connected via I2C. On the
ESP32-S3-BOX it is a TT21100, and on the ESP32-S3-BOX-3 it is a GT911.

#### Audio

The ESP32s3 Box has a few audio codec coprocessors connected simultaneously to
I2S (data) and I2C (configuration). It uses an encoder codec chip (ES7210) for
audio input from the multiple mics on-board, and a decoder chip (es8311) for
audio output to the speaker (output power controlled by GPIO 46). It also uses
32 changes: 32 additions & 0 deletions ecad/Box Electronics v25.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"Qty";"Value";"Device";"Package";"Parts";"Description";"ARROW_PART_NUMBER";"ARROW_PRICE-STOCK";"CATEGORY";"COLOR";"COPYRIGHT";"CREATED_BY";"CURRENT_RATING";"DESCRIPTION";"DIGI_KEY_PART_NUMBER";"FORWARD_CURRENT";"HEIGHT";"MANUFACTURER";"MANUFACTURER_NAME";"MANUFACTURER_PART_NUMBER";"MFR_NAME";"MOUSER";"MOUSER_PART_NUMBER";"MOUSER_PRICE-STOCK";"MPN";"OPERATING_TEMP";"PART_STATUS";"PROD_ID";"RATING";"REVERSE_VOLTAGE";"ROHS_COMPLIANT";"SERIES";"SF_ID";"SF_SKU";"SUB-CATEGORY";"THERMALLOSS";"TOLERANCE";"TYPE";"VALUE";"VOLTAGE_RATING";"ZENER_VOLTAGE";
"3";".1uF";"C_CHIP-0603(1608-METRIC)";"CAPC1608X85";"C1, C3, C7";"Capacitor - Generic";"";"";"Capacitor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"100k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R15";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"18";"10k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R20, R21, R22, R23, R24, R25, R26";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"2";"10uF";"C_CHIP-0603(1608-METRIC)";"CAPC1608X85";"C2, C5";"Capacitor - Generic";"";"";"Capacitor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"2";"1k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R17, R18";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"1";"1uH";"L_CHIP-0805(2012-METRIC)";"INDC2009X120";"L1";"Inductor Fixed - Generic";"";"";"Inductor";"";"";"";"";"";"";"";"";"";"";"";"";"https://www.mouser.com/ProductDetail/TDK/MLZ2012A1R0WT000?qs=%2FPzWLGNeQ%252BjNsoWh9l1QhQ%3D%3D";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"1";"2.0k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R19";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"2";"22uF";"C_CHIP-0805(2012-METRIC)";"CAPC2012X110";"C4, C6";"Capacitor - Generic";"";"";"Capacitor";"";"";"";"";"";"";"";"";"";"";"";"";"https://www.mouser.com/ProductDetail/Samsung-Electro-Mechanics/CL21A226MQQNNNF?qs=sGAEpiMZZMs7ZEmUmaUL0wnmEc5iLKHP2isAklsGkAs%3D";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"3";"5.1k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R12, R13, R27";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"1";"61300211121";"61300211121";"61300211121";"MOTOR";"CONN HEADER VERT 2POS 2.54MM";"";"";"";"";"";"PCBLayout.com";"";"";"732-5315-ND";"";"";"Wurth Electronics Inc.";"";"";"";"";"";"";"61300211121";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"629722000214";"629722000214SMD";"USB4110GFA";"USB-C";"WR-COM USB 2.0 Type C Plug Vertical SMT";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"732k";"R-US_CHIP-0603(1608-METRIC)";"RESC1608X60";"R14";"Resistor Fixed - ANSI";"";"";"Resistor";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"Fixed";"";"";"";"";"";"";
"1";"AW9523BTQR";"AW9523BTQR";"QFN50P400X400X80-25N";"IC1";"16 MULTI-FUNCTION LED DRIVER AND GPIO CONTROLLER WITH I2C INTERFACE";"";"";"";"";"";"";"";"16 MULTI-FUNCTION LED DRIVER AND GPIO CONTROLLER WITH I2C INTERFACE";"";"";"0.8mm";"";"AWINIC";"AW9523BTQR";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"DRV2605L";"DRV2605L";"VSSOP-10";"HAPTIC";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"IC-13504";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"JSTPH2";"JSTPH2";"JSTPH2";"BATT";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"LED_RED";"CHIP-FLAT-R_0805";"LEDC2012X110N_FLAT-R";"D2";"";"";"";"LED";"RED";"";"";"";"CHIP LED FLAT";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"CHIP";"";"";"FLAT_TOP";"LED_RED";"";"";
"1";"LIPO-OUTLINE1100";"LIPO-OUTLINE1100";"LIPO-1000";"BT1";"LiPo Battery Outlines";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"BATT-13243";"";"";"";"";"";"PRT-13813";"";"";"";"";"";"";"";
"1";"MAX17048G+T1021-0168E_T822-3_MXM";"MAX17048G+T1021-0168E_T822-3_MXM";"21-0168E_T822-3_MXM";"U1";"";"";"";"";"";"Copyright (C) 2023 Ultra Librarian. All rights reserved.";"";"";"";"";"";"";"";"";"MAX17048G+T10";"Analog Devices / Maxim Integrated";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"MBR0520LT1G";"SCHOTTKY_MBR0520LT1GDO-219";"SODFL3718X115";"D1";"Schottky Diode - Popular parts";"";"";"Diode";"";"";"";"";"DIODE SCHOTTKY 20V 500MA SOD123";"";"";"";"ON Semiconductor";"";"";"";"";"";"";"MBR0520LT1G";"";"";"";"";"";"";"";"";"";"Schottky";"";"";"";"MBR0520LT1G";"";"";
"1";"MCP73831/OT";"MCP73831/OT";"SOT23-5L";"IC2";"MCP73831/2";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"MICRO-SD_CARD_SOCKET";"MICRO-SD_CARD_SOCKET";"MICRO-SD-SOCKET";"J2";"microSD Socket for Transflash";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"CONN-07820";"";"";"";"";"PRT-00127";"";"";"";"";"";"";"";"";
"1";"PINHD-2X2REVERSED";"PINHD-2X2REVERSED";"2X02/EDGE_REVERSED";"JP3";"PIN HEADER";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"https://www.mouser.com/ProductDetail/Amphenol-FCI/10129383-904001BLF?qs=0lQeLiL1qyZnX0KFA9qZpw%3D%3D";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"2";"PINHD-2X6REVERSED";"PINHD-2X6REVERSED";"2X06/EDGE_REVERSED";"PMOD1, PMOD2";"PIN HEADER";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"2";"SILKSCREENGBC_A/B";"SILKSCREENGBC_A/B";"GAMEBOY_COLOR_A/B_BUTTON_MEMBRANE";"U$3, U$4";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"SILKSCREENGBC_D-PAD";"SILKSCREENGBC_D-PAD";"GAMEBOY_COLOR_DPAD_SILK";"U$1";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"SILKSCREENGBC_START/SELECT";"SILKSCREENGBC_START/SELECT";"GAMEBOY_COLOR_START_SELECT_SILK";"U$2";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"4";"SWITCH_MOMENTARYCONTACTIVE_6MM_2";"SWITCH_MOMENTARYCONTACTIVE_6MM_2";"BUTTON-CONDUCTIVE_6MM_2";"DOWN, LEFT, RIGHT, UP";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"4";"SWITCH_MOMENTARYDMG-BTN-A/B";"SWITCH_MOMENTARYDMG-BTN-A/B";"DMG_BTN3";"A, B, X, Y";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"2";"SWITCH_MOMENTARYDMG-BTN-START/SELECT";"SWITCH_MOMENTARYDMG-BTN-START/SELECT";"DMG_BTN1_W2";"SELECT, START";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"2";"TL3340AF160QG";"TL3340AF160QG";"TL3340";"S1, S2";"E-SWITCH - TL3340AF160QG. - SWITCH, TACTILE SPST 50mA, SMD GULL WING";"";"";"";"";"";"";"";"E-SWITCH - TL3340AF160QG. - SWITCH, TACTILE SPST 50mA, SMD GULL WING";"";"";"mm";"";"E-Switch";"TL3340AF160QG";"";"";"612-TL3340AF160QG";"https://www.mouser.co.uk/ProductDetail/E-Switch/TL3340AF160QG?qs=Cv1v43EOJpo402rrfE5MlQ%3D%3D";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
"1";"TPS61070";"TPS61023";"SOT563";"REGULATOR";"Synchronous Boost Converter With 600-mA Switch";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";"";
Binary file added ecad/Box Electronics v25.pdf
Binary file not shown.
Loading

0 comments on commit 2af6a66

Please sign in to comment.