The BASIC Engine is a very low-cost single-board home computer with advanced 2D color graphics and sound capabilities, roughly comparable to late-1980s or early-1990s computers and video game consoles. It can be built at home without special skills or tools and using readily available components for under 10 Euros in parts, or mass-produced for even less.
This repository contains KiCAD schematics and the PCB layout. Gerber files for ordering PCBs can be found in the release section.
Software can be found in the BASIC Engine firmware repository.
- ESP12-E/F module with ESP8266 SoC and 4 MB flash memory
- VS23S010 video controller with 128k RAM and composite video output in PAL or NTSC
- 5-bit PCM sound from I2S controller
- MicroSD card slot
- PS/2 and PS/2-compatible USB keyboard interface
- PlayStation controller port
- PCF8575 I/O extender with 16 GPIO pins
- I2C and SPI busses on I/O expansion connector
- power supplied via Micro-USB socket or pin header
- RCA connectors for video and audio
The BASIC Engine does not use any obsolete components that may be difficult to obtain. Nevertheless, you will have to put in at least three orders to get all required parts.
I would recommend to get the circuit board from JLCPCB or Smart Prototyping, the VS23S010D-L chip from TME, and all other parts from AliExpress. AE usually has the lowest price, and this project is all about the cheap.
You will usually have to order more components than you actually intend to use, because
- they are only offered in larger quantities,
- you may want to save on shipping in case you decide to build more BASIC Engines,
- you are likely to break or lose a few parts while building the device, or
- all of the above.
Note: Unless noted otherwise, all links lead to suppliers and components I have bought myself in the past and that have received the "Good Enough for BASIC Engine" seal of approval. Nevertheless you order at your own risk, and I cannot be held responsible for the quality of the services or products provided to you. I am not affiliated with any of the linked suppliers.
Qty | Name | Package | Where to get it | Links |
---|---|---|---|---|
1 | Circuit Board | Any board house | JLCPCB, Smart Prototyping. | |
1 | VS23S010D-L video controller | TME (small quantities), VLSI (for large orders) | TME, VLSI | |
1 | ESP-12F or ESP-12E microcontroller module | AliExpress, eBay, Amazon, various smaller retailers | AliExpress: 1, 2, 3 | |
8 | Resistor 10K | 1206 | Generic part | AliExpress: 1, 2 |
1 | Resistor 1M | 1206 | Generic part | AliExpress: 1 |
1 | Resistor 75 Ohms | 1206 | Generic part | AliExpress: 1, 2 (untested supplier) |
2 | Resistor 1K | 1206 | Generic part | AliExpress: 1 |
8 | Capacitor 100nF | 1206 | Generic part | AliExpress: 1, 2, 3, 4 |
2 | Capacitor 56pF | 1206 | Generic part | AliExpress: 1 |
1 | Electrolytic capacitor 10uF (Revision 1 board only!) | THT | Generic part | AliExpress: 1, 2 |
2 | Electrolytic Capacitor 220uF (Revision 1 board only!) | THT | Generic part | AliExpress: 1 |
1 | Capacitor 10uF (Revision 2 board only!) | 1206 | Generic part | AliExpress: 1, 2 |
2 | Capacitor 22uF (Revision 2 board only!) | 1206 | Generic part | AliExpress: 1, 2 |
2 | RCA connectors | THT | Generic, but often overpriced part | AliExpress: 1 (untested supplier); no longer available: red, yellow |
1 | Micro-USB connector | SMT | Generic, but often overpriced part | AliExpress: 1, 2, 3, 4 |
1 | Regulator AMS1117 3.3V | SOT-223 | Generic, sometimes overpriced part | AliExpress: 1; eBay DE: 1 |
1 | 74HC04 hex inverter | SOIC-14 | Generic part | AliExpress: 1, 2 |
1 | Crystal 3.579545 MHz (NTSC) or 4.433619 MHz (PAL) | HC49-S | Generic part | AliExpress: NTSC, PAL (untested supplier) |
1 | PS/2 keyboard connector (female) | THT | AliExpress, some distributors | AliExpress: green, purple |
Qty | Name | Package | Who can supply it | Links |
---|---|---|---|---|
1 | Pin header 1x7 (programming header) | Generic part | AliExpress: 1 (1x40 headers, cut them to size) | |
1 | MicroSD socket | SMT | AliExpress, eBay | AliExpress: 1, 2; eBay DE: 1 |
1 | Push button 6x6x4.3 mm | THT | Generic part | AliExpress: 1, 2 |
1 | PCF8575TS I2C I/O extender | SSOP-24 | Generic part; AliExpress recommended for price | AliExpress: 1 |
1 | Raspberry Pi 3 case | Generic part | AliExpress: 1, 2, 3, 4, 5 |
Qty | Name | Package | Who can supply it | Links |
---|---|---|---|---|
1 | Pin header 1x3 pins (alternative power supply) | AliExpress recommended for price | see "Pin header 1x7" | |
1 | USB A connector (alternative keyboard connector) | THT | Generic part | AliExpress: 1, 2 |
1 | Pin header 2x20 pins (expansion connector) | AliExpress recommended for price | AliExpress: 1 (2x40 headers, cut them in half) | |
1 | PlayStation controller connector (female) | AliExpress | AliExpress: 1, 2 |
Used to flash the firmware into the microcontroller module. You only need one set of these.
Qty | Name | Package | Who can supply it | Links |
---|---|---|---|---|
1 | USB-to-serial converter | AliExpress, eBay | AliExpress: 1, 2 | |
7 | Dupont wires female/female (for wiring the converter to the programming header) | AliExpress, eBay | AliExpress: 1 (untested supplier), 2 (untested supplier) |
If you have never had a custom circuit board made, you may find the multitude of options you are presented with on the board house's ordering page confusing. The good news is that you do not have to worry about most of them, because they have been set to reasonable defaults already. If you order with JLCPCB or Smart Prototyping using the links above, all you have to do is upload the ZIP file containing the Gerber files that you can find in the release section and specify the dimensions of the board (85x56 mm). All other options can be left as is.
(Just to be on safe side: At the time of writing these options were: 2 layers, 1.6 mm thickness, HASL with lead, 1oz copper weight, material FR4.)
Even though it uses some small-pitch components, the BASIC Engine has been designed to be easy to assemble.
Click on the thumbnail below to watch a one-hour silent video showing how to build it using a soldering iron, a heat gun, tweezers, solder wire and side cutters, without fancy tools, mad soldering skills and with only a minimal amount of patience:
Revision 2 of the PCB contains one error:
- R6 value is given as "22R", should be "75R".
Revision 1 of the PCB contains two errors:
- R6 value is given as "22R", should be "75R".
- C3 and C4 values are given as "10p", should be "56p".