Cíle
Na fóru oldcomp.cz jsem náhodou narazil na informaci o tomto projektu, který mě zaujal tím, jak spojuje dohromady svět osmibitů (zapni počítač a tu máš editor BASICu) a moderních SBC typu Raspberry Pi (malé, levné, nízká spotřeba). Dalším faktorem, proč jsem to chtěl vyzkoušet, je práce s ESP8266 a osazování SMD. Před tímto projektem jsem se SMD montáží praktickou zkušenost neměl, tak jsem do toho šel po hlavě.
Popis
Obecné info
Popisovat, co vše to umí nebo neumí, by bylo nošení dříví do lesa – vše je perfektně popsáno na stránkách projektu. Shrnu jen to nejdůležitější:
- Srdcem celého stroje je ESP12E, ve kterém je kompletně custom firmware, implementující zejména:
- interpretr BASICu
- softwarovou grafiku včetně spritů
- softwarovou zvukovou syntézu
- Z ESP12E nezůstalo nic bezdrátového, celý prostor na firmware požralo výše uvedené. Existuje i experimentální verze, ve které wifi funguje, ale není odladěná.
- Rozhraní:
- Vstupy:
- PS/2 nebo USB klávesnice
- PlayStation2 controller konektor
- MicroUSB napájení
- pin header – alternativní napájení (5V)
- Výstupy:
- audio (RCA cinch)
- kompozitní video (RCA cinch)
- Další:
- Sériová linka na komunikaci (flashování) ESP8266
- GPIO header – vyvedený z I2C IO Expanderu PCF8575
- Vstupy:
Konstrukce
Velmi detailní dokumentace včetně videa s osazováním je na stránce BasicEngine Hardware Page. Mám jen pár připomínek/rad/podnětů:
- Rezistor R6/22R má být osazen hodnotou 75 R – to je ale v dokumentaci popsáno.
- Orientace IO je značena podivně, místo klasické tečky u prvního pinu je tam číslo obvodu – např. U3. Pokud IO osadíte podle orientace názvu obvodu (např. PCF8575), vyjde to opačně.
- V dodávce z TME jsem u jednoho kusu MicroSD slotu měl mírně ohnutý jeden pin uvnitř slotu. Vidět to není, při osazování to ničemu nevadí, ale při oživení je problém, když to je zrovna napájecí pin – a zkratuje tak 3.3V na zem…
- Místo PS/2 konektoru na klávesnici se dá osadit USBčko, případně se dá k PS/2 přidat čtyřpinový header a USBčko si vyvést jinam. Ale v zásadě pro to asi není důvod, protože USB tady slouží opravdu jen pro klávesnici.
- Zvláště konektory jsou trochu zrada, protože v konstrukci se počítalo s bůhvíkde dostupnými součástkami. Dovoluji si zde nabídnout parts list pro objednávku u TME, ať to máte jednodušší.
Seznam součástek z TME
Název | Počet | Objednací číslo | Přibližná cena za ks |
VS23S010D-L video controller | 1 | VS23S010D-L | 126,74 Kč |
Resistor 10K | 8 | SMD1206-10K | 0,56 Kč |
Resistor 1M | 1 | HP06-1M5% | 1,23 Kč |
Resistor 75 Ohms | 1 | SMD1206-75R | 0,56 Kč |
Resistor 1K | 2 | SMD1206-1K | 0,56 Kč |
Capacitor 100nF | 8 | VJ1206Y104KXACW1BC | 1,80 Kč |
Capacitor 56pF | 2 | VJ1206A560JXBCW1BC | 1,86 Kč |
Capacitor 10uF (Revision 2 board only!) | 1 | GRM31CR70J106KA01L | 6,65 Kč |
Capacitor 22uF (Revision 2 board only!) | 2 | GRM31CR61C226ME15L | 6,82 Kč |
Micro-USB connector | 1 | KEYS940 | 31,83 Kč |
Regulator AMS1117 3.3V | 1 | LD1117AS33 | 6,73 Kč |
74HC04 hex inverter | 1 | SN74HC04D | 5,90 Kč |
Crystal 3.579545 MHz (NTSC) or 4.433619 MHz (PAL) | 1 | 4.433619M-HC49R | 32,60 Kč |
PS/2 keyboard connector (female) | 1 | TM0508A/6 | 33,84 Kč |
Pin header 1×7 (programming header) | 1 | 77311-818-07LF | 7,65 Kč |
MicroSD socket | 1 | MCC-SDMICRO/3 | 40,00 Kč |
Push button 6x6x4.3 mm | 1 | TACT-64N-F | 1,39 Kč |
PCF8575TS I2C I/O extender | 1 | PCF8575TS/F1 | 57,75 Kč |
USB A connector (alternative keyboard connector) | 1 | USB-A-S-RA | 10,18 Kč |
Oživení
Uvedení celé věci do provozuschopného stavu je otázkou naflashování firmwaru do ESP12. Flashoval jsem pomocí linuxového esptool s touto příkazovou řádkou:
sudo esptool -vvv -cd ck -cb 921600 -cp /dev/ttyUSB0 -ca 0 -cf ttbasic-0.88-alpha.bin
Je třeba ale ve „správný okamžik“ stisknout na desce BasicEngine reset.
Status projektu
HW dokončen, čas pustit se do portování her 🙂
Zdroje
- BasicEngine – oficiální stránka – basicengine.org
- TME – zdroj součástek – www.tme.eu