Tiny Joypad Une console portable à base d'attiny85 Introduction Tiny Joypad est une console portable à fabriquer soi-même. Elle utilise très peu de composants et ne coute pas très cher à fabriquer, pour autant son créateur Daniel C. ainsi que sa communauté a crée quelques jeux plutôt bien fait si on oublie pas que derrière il n'y a qu'un attiny85. Je trouve que ce projet a beaucoup de potentiels pour apprendre les différentes étapes de la fabrication d'un PCB et la programmation des attiny85. https://www.tinyjoypad.com/tiny-joypad Plusieurs personnes ont crée leur propre design de cette console Picosoft : http://www.picosoft.co.jp/ORANGE-mono1/index.html Brobricius : https://hackaday.io/project/164736-retro-game-console-with-cpu-on-fake-sd-cards Megazoid : https://hackaday.io/megazoid Djamal.UK : https://www.youtube.com/channel/UC68n83FIH9JFEioP06C-qSQ Electronoob : https://electronoobs.com/eng_arduino_tut120.php J'ai choisi le modèle de Brobicius, il est tout petit est a un système de "cartouche" sous la forme de carte microSD Objectif du projet L'objectif est de créer un process pour reproduire efficacement (en terme de temps et de coût) et simplement cette console. Achat des composants Voici une version non définive du "Bill of Materials" pour l'µRetro L'objectif de celle-ci est de limiter les fournisseurs, et la durée de livraison, tout en gardant un prix raisonnable Achat Commande passée : 22/07/2020 Commande reçu le : 24/07/2020 Coût / 5 : 16,478€ Coût totale : 82,39€ Fdp : 9,47€ Aller sur https://www.tme.eu/fr/Profile/QuickBuy/load.html Le schéma indique des résistances / condensateurs de 0805, c'est en faite des 1206 Les boutons débordent un peu Le compartiment de piles est un peu trop grand Les vis (M2 2mm avec entretroîse de 4mm) non commandés Copier cette liste dans "Coller la liste des articles" "symbole du client";"Référence";"Marque du fabricant";"Fabricant";"Quantité";"Unité";"Prix brut";"Valeur brute";"Devise" "";"MCSP-Q-08-A-SG";"MCSP-Q-08-A-SG-T/R";"ADAM TECH";"5";"pcs";"1.06";"5.3";"EUR" "";"MSS-2235";"";"NINIGI";"5";"pcs";"0.54";"2.7";"EUR" "";"CRCW080588K7FKTABC";"CRCW080588K7FKTABC";"VISHAY";"100";"pcs";"0.0301";"3.01";"EUR" "";"AR0805-33K-0.1%";"AR05BTCW3302";"Viking";"10";"pcs";"0.12";"1.2";"EUR" "";"AR0805-10K-0.1%";"AR05BTCW1002";"Viking";"10";"pcs";"0.12";"1.2";"EUR" "";"C0805C104M3RACTU";"C0805C104M3RACTU";"KEMET";"10";"pcs";"0.086";"0.86";"EUR" "";"BC-2001";"BC-2001";"COMF";"10";"pcs";"0.294";"2.94";"EUR" "";"1301.9316";"1301.9316";"SCHURTER";"30";"pcs";"0.3";"9";"EUR" "";"C0603X104K5RAC3316";"C0603X104K5RAC3316";"KEMET";"10";"pcs";"0.089";"0.89";"EUR" "";"BSS123.215";"BSS123.215";"NEXPERIA";"10";"pcs";"0.084";"0.84";"EUR" "";"SMD0805-22K";"0805S8J0223T5E";"ROYAL OHM";"100";"pcs";"0.0132";"1.32";"EUR" "";"LET5020DS-03L";"LET5020DS-03L-4.0-12-R";"Cre-sound Electronics";"5";"pcs";"1.37";"6.85";"EUR" "";"ATTINY85-20SF";"ATTINY85-20SF";"MICROCHIP (ATMEL)";"5";"pcs";"1.28";"6.4";"EUR"   Coût totale (composants + pcb) : 22,3€ par µretro Recherche TME.EU / AMAZON Commande passée : 22/07/2020 Commande reçu le : 24/07/2020 Coût / 5 : 16,478€ Coût totale : 82,39€ Fdp : 9,47€ Composants Quantité Liens Prix / 5pcs Prix Ecran Oled I²C 128x64 (VCC-GND) 1 https://www.amazon.fr/gp/product/B07G4JN2B9/   27,45€ 27,45€ Transistor BSS123 SOT23 1 https://www.tme.eu/fr/details/bss123-yan/transistors-avec-canal-n-smd/yangjie-technology/bss123/ 0,84€ 1,68€ Boutons : SWITCH-MOMENTARY-2SMD-4 6x6x6mm (à partir du PCB) 5 https://www.tme.eu/fr/details/1301.9316/microcommutateurs-tact/schurter/ 7,5€ 9.00€ Support Pile : CR2032THM (holder) BC-2001 1 https://www.tme.eu/fr/details/bc-2001/piles-boites-et-portants/comf/ 1,52€ 3,04€ Condensateur : C_0805 100nf 1 https://www.tme.eu/fr/details/08055c104kat2a/condensateurs-mlcc-smd-0805/avx/ 0,43€ 0,86€ Condensateur : C_0603 100nf 1 https://www.tme.eu/fr/details/c0603x104k5rac3316/ 0,45€ 0,89€ Résistance: R 10K 805 1 https://www.tme.eu/fr/details/ar0805-10k-0.1%25/resistances-de-precision-smd-0805/viking/ar05btcw1002/ 0,625€ 1,25€ Résistance : R 22K 805 2 https://www.tme.eu/fr/details/ar0805-22k-0.1%25/resistances-de-precision-smd-0805/viking/ar05btcw2202/ 2,41€ 2,41€ Résistance : R 33K 805 2 https://www.tme.eu/fr/details/ar0805-33k-0.1%25/resistances-de-precision-smd-0805/viking/ar05btcw3302/ 1,25€ 1,25€ Résistance : R 88k 805 2 https://www.tme.eu/fr/details/crcw080588k7fktabc/resistances-smd-0805/vishay/ 3,01€ 3,01€ Buzzer: Speaker SMD 5MM 1 https://www.tme.eu/fr/details/let5020ds-03l/avertisseurs-electromag-sans-generateur/cre-sound-electronics/let5020ds-03l-4-0-12-r/ 7,08€ 7,08€ µContrôleur : Attiny85 20SF 1 https://www.tme.eu/fr/details/attiny85-20sf/famille-avr-8-bit/microchip-atmel/ 6,66€ 6,66€ Interrupteur : Switch On/Off 1 https://www.tme.eu/fr/details/mss-2235/commutateurs-a-glissiere/ninigi/ 2.82€ 2.82€ Connecteur pour carte micro-SD. 1 https://www.tme.eu/fr/details/mcsp-q-08-a-sg/connecteurs-pour-cartes/adam-tech/mcsp-q-08-a-sg-t-r/ 5,51€ 5,51€ Aliexpress Composants Quantité Liens Prix / 5pcs Prix Ecran Oled I²C 128x64 (VCC-GND) 1 https://www.aliexpress.com/item/32957159545.html   12,30€ 12,30€ Transistor BSS123 SOT23 1 https://www.aliexpress.com/item/32946756209.html   1,40€ 1,40€ Boutons : SWITCH-MOMENTARY-2SMD-4 6x6x6mm (à partir du PCB) 5 https://www.aliexpress.com/item/32789979792.html   0,06€ 6,35€ Support Pile : CR2032THM (holder) BC-2001 1 https://www.aliexpress.com/item/4000829320626.html 0,396€ 2,01€ Condensateur : C_0805 100nf 1 https://www.aliexpress.com/item/32964553793.html 0,06€ 1,87€ Condensateur : C_0603 100nf 1 https://www.aliexpress.com/item/32966526545.html   0,03€ 2,01€ Résistance: R 10K 805 1 https://www.aliexpress.com/item/32868987725.html   0,06€ 1,87€ Résistance : R 22K 805 2 https://www.aliexpress.com/item/32868987725.html 0,06€ 1,87€ Résistance : R 33K 805 2 https://www.aliexpress.com/item/32868987725.html 0,06€ 1,87€ Résistance : R 88k 805 2 https://www.aliexpress.com/item/32868987725.html   0,06€ 1,87€ Buzzer: Speaker SMD 5MM 1 https://www.aliexpress.com/item/32839998961.html   5,05€ 5,05€ µContrôleur : Attiny85 20SF 1 https://www.aliexpress.com/item/4000954990699.html 7,69€ 7,69€ Interrupteur : Switch On/Off 1 https://www.aliexpress.com/item/32795003684.html   0,12€ 2,39€ Connecteur pour carte micro-SD. 1 https://www.aliexpress.com/item/4000245301063.html 0,2€ 2€       Achat des PCB Achat 30.95€ (avec stencyl pour le bottom et livraison DHL) 6,19€ / unité En production le 24/07/2020 Reçu le 29/07/2020 Gerbers / Modèle 3D fusion 360 : https://github.com/usini/uRetro/tree/master/Assembly Suivez la procédure ici : https://doc.labsud.org/books/pads-midi-customisable/page/commande-du-pcb Il faut aussi commander un stencyl de 60x60cm Card_pcb doit être de 0.8mm pas 1.6mm Recherche Une erreur sur les gerbers m'a fait perdre 2 jours (je ferais un tuto sur comment export des gerbers sur eagle) J'ai reçu cette question de JLCPCB sur le stencyl 1 Do you need to cut out the purple pads? If yes, do you need to avoid the yellow hole within them? No 2 Do you need to cut out the green pad at the red framed? No Prix Images       Ancien Modèle mais avec vue du bottom)   Instructions de montage Fabrication du support d'application de la pâte à souder Placement des composants Le placement des composants est relativement simple, toutes les valeurs des résistances sont notés et l'emplacement sans notation est pour le condensateur (0.1µf ou 100nf) Programmateur Deux pistes pour programmer les cartes: Utiliser des pogos pins sur le programmeur AVRISP Créer une carte avec un lecteur microSD et une entrée pour le programmeur AVRISP Programmation USBASP Le plus rapide pour programmer un attiny85 est de passer par un programmeur USBASP Installation des drivers : https://sparks.gogo.co.nz/usbasp_drivers.html avrdude pour windows : avrdude avrdude.exe -c usbasp -p t85 -b19200 -U flash:w:Tiny-Bike.hex Mockup d'une application Python pour automatiser le processus https://gist.github.com/maditnerd/e091b40bf12b1dfa42540ddae65193ec Programmation depuis un Arduino (Uno/Nano) https://www.youtube.com/watch?v=_yuHkiZTCTU "Overclocker votre Attiny" Les jeux sont pensés pour fonctionner en 16Mhz, par défaut l'attiny85 est en 8Mhz Sur Arduino sélectionner comme Programmateur "USBASP" Type de carte : AttinyCore --> Attiny25/45/85 Clock : 16 Mhz (PLL) Graver la séquence d'initialisation     Schéma électronique Schéma simplifié https://www.tinyjoypad.com/tiny-joypad-shematic Prototype   µRetro Schémas et PCB pour Eagle / Fusion 360 :  https://github.com/bobricius/uRetro Schéma Console Schéma Cartouche