- Forth Deck mini est une version en boîtier qui ajoute un clavier, un écran et une batterie à la carte My4TH, afin de constituer dans l’appareil un petit environnement autonome de développement Forth
- Son élément central est un CPU 8 bits en logique CMOS discrète, avec une horloge de 8 à 14 MHz, 32 KB de ROM, 32 KB de RAM et jusqu’à 256 KB d’EEPROM
- L’entrée et la sortie reposent sur un LCD texte 40×4 et un clavier QWERTY de 56 touches, avec une autonomie de 6 heures grâce à une batterie LiPo de 6,6 Wh sans recharge
- L’extension passe par une carte RS-232 4800 et le bus I2C, et le PCB du clavier est conçu pour économiser les broches d’E/S limitées afin de piloter le LCD et la matrice du clavier
- Le kit clavier Budgetronics ne suffit pas à lui seul, et la construction du Forth Deck nécessite une carte ordinateur My4TH distincte ainsi qu’une sélection de composants optionnels
Une configuration qui transforme la carte My4TH en appareil Forth portable
- Forth Deck mini est une version qui ajoute un clavier et un écran à la My4TH computer board et l’intègre dans un boîtier
- Grâce à sa batterie rechargeable intégrée, il peut être utilisé sans prise secteur
- Il permet d’écrire et de déboguer des programmes Forth directement sur l’appareil, sans terminal série ni PC
- Son mode d’utilisation rappelle les interpréteurs Basic intégrés des micro-ordinateurs domestiques des années 1970 et 1980
Caractéristiques matérielles
-
Écran et saisie
- LCD texte 40×4
- clavier QWERTY de 56 touches
-
Alimentation et dimensions
- batterie LiPo de 6,6 Wh
- 6 heures d’autonomie sans recharge
- dimensions : 198×118×35 mm
-
CPU et mémoire
- CPU 8 bits en logique CMOS discrète
- fréquence d’horloge de 8 à 14 MHz
- 32 KB de ROM, 32 KB de RAM, jusqu’à 256 KB d’EEPROM
- 17 puces logiques CMOS série 74 et 3 transistors
-
Entrées/sorties et système
- RS-232, carte 4800
- bus I2C pour l’extension
- système Forth 2012 16 bits
PCB du clavier et kit de fabrication
- Le clavier et l’écran sont reliés à la My4TH board par un câble nappe
- Le PCB du clavier comprend le LCD, 56 boutons-poussoirs, un connecteur USB type B mini, un socket Qwiic, un 74HC574, etc.
- Le circuit de charge de la batterie est optionnel
- La liste complète des composants est disponible dans le Forth Deck construction manual
- Les ressources nécessaires à la fabrication peuvent être téléchargées depuis download
- Le kit clavier Forth Deck peut être acheté chez Budgetronics
- pour réduire les coûts, la batterie et le circuit de charge ne sont pas inclus
- certains connecteurs optionnels sont également absents
- un jeu d’entretoises est inclus pour empiler les deux cartes et créer une version de bureau sans boîtier
- Pour terminer un Forth Deck, une My4TH computer board distincte est nécessaire
Comment piloter le LCD avec un nombre limité de broches d’E/S
- Le LCD fonctionne en mode 4 bits afin d’économiser les broches du connecteur E/S du My4TH
- Le connecteur E/S du My4TH ne dispose que de 5 sorties numériques inutilisées, alors que le grand LCD a 2 entrées de sélection de puce, soit 2 sorties de moins que nécessaire
- Les sorties numériques manquantes sont compensées par un bus latch octal D-type 74HC574
- Ce circuit intégré est câblé comme un registre à décalage de largeur 4 bits et de profondeur 2
- Il permet ainsi d’obtenir 8 sorties numériques supplémentaires
- Lors de l’injection des données dans le 74HC574 via l’horloge, la ligne SCL du bus I2C est utilisée
- Même en utilisant le signal SCL pour cadencer le 74HC574, les périphériques du bus ne voient pas de condition de démarrage I2C valide
- Pour éviter des écritures non souhaitées dans les registres du LCD, l’écran utilise le signal de sélection OUT3 du port d’E/S numérique du My4TH
- Les portes AND à résistances-diode de R3/D6 et R4/D8 masquent le chip select du LCD
- C2 et C3 filtrent les glitches provoqués par le basculement des broches du 74HC574 et par les capacités parasites de D6 et D8
Clavier 56 touches et réinitialisation matérielle
- Le clavier est composé de 56 touches au total
- L’espacement des touches est de 12 mm, ce qui rend difficile l’utilisation de touches plus grandes et plus confortables
- L’objectif était de rendre l’appareil aussi compact que possible, mais l’écran impose une largeur minimale de 190 mm
- Avec un espacement de 12 mm, 14 touches tiennent sur une rangée, soit 56 touches réparties sur 4 rangées
- La lecture des touches utilise les 6 broches d’entrée inutilisées du connecteur de port E/S du My4TH
- En combinaison avec 9 sorties numériques, cela permet de lire une matrice de touches 6×9=54
- Les 2 touches restantes sont des touches spéciales :
shiftetreset
- La réinitialisation matérielle s’effectue en appuyant sur la touche Reset tout en maintenant la touche
shift
Circuit batterie, logiciel et séparation du PCB
- Une batterie LiPo alimente le système
- Le circuit de charge repose sur la puce TP5400, largement utilisée dans les batteries externes USB bon marché
- Si la soudure de petits composants SMD est difficile, il est possible d’utiliser un module TP5400 déjà assemblé et de le relier au PCB du clavier avec des fly wires
- Le logiciel de prise en charge du PCB clavier est intégré depuis My4TH ROM 1.0
- Lorsque la carte d’extension clavier est connectée à la carte ordinateur My4TH, My4TH détecte automatiquement le clavier et le LCD
- Le PCB est prévu pour pouvoir être coupé en deux afin de séparer le clavier et l’écran
- Il devient alors possible de monter l’écran avec un angle différent de celui du clavier
- Il est aussi possible d’utiliser un clavier maison plus confortable
Exemples et licence
- Il existe un exemple d’éditeur de texte Forth intégré
- Le jeu 2048 peut être téléchargé comme exemple
- Le cross-assembleur myca utilise la licence GNU General Public License, Version 3
1 commentaires
Avis de Hacker News
Le CPU de cet ordinateur est basé sur du microcode et construit avec quelques puces logiques discrètes et de l’EEPROM
Les bus de données/adresses sont en 8 bits, mais l’unité NOR ne traite qu’un seul bit ; pour faire une addition sur 8 bits, le microcode doit donc boucler
Je pensais qu’il faudrait un shifter matériel pour accéder aux bits D1 à D7 et j’ai regardé le schéma, mais en réalité il n’y en a pas : les décalages sont gérés par des tables de correspondance dans l’EEPROM
Si les conceptions de CPU intéressantes vous attirent, le Novix NC4000, ou encore le RTX2000, valent aussi le détour. Les bits des instructions contrôlent presque directement plusieurs multiplexeurs et unités à l’intérieur de la puce, avec quasiment aucun décodage
Adolescent, j’étais obsédé par Forth et les CPU à composants discrets ; en cherchant bien, on doit encore pouvoir trouver de vieux webrings de CPU faits maison à partir de composants discrets
Cette obsession m’a conduit à mon métier actuel de concepteur de matériel numérique, et voir ce genre d’article en haut de HN me fait vraiment plaisir
J’aime lire des histoires de CPU à composants discrets optimisés comme celui-ci
Il n’y a que 16 circuits intégrés logiques, et même pas d’additionneur. La seule fonction d’ALU est une porte NOR 1 bit
Plus de détails ici : http://mynor.org/my4th.htm
Je me demande quels sont aujourd’hui les obstacles à la fabrication, en hobby, de quelque chose comme un TRS-80 Model 100
Un LCD 40x8, l’un des meilleurs claviers de tous les temps, et la communauté des claviers custom semble capable de fabriquer à peu près n’importe quel clavier souhaité
Sur le Model 100, le clavier occupait la majeure partie de l’espace, mais il était aussi réellement utilisable. L’écran 40x8 était suffisamment grand et facile à lire, ce qui compte ; les decks dotés de petits écrans 640x480 sont difficiles à lire, surtout pour des yeux plus âgés
Le Psion 5 avait lui aussi un clavier assez utilisable et un écran meilleur que celui du M100, mais je ne sais pas si un amateur pourrait fabriquer un tel clavier. On pourrait aussi en démonter un pour le réutiliser, même si ce serait un sacrilège pour certains
Les « decks » avec matrices de boutons qu’on voit aujourd’hui ne peuvent guère être appelés de vrais claviers, et je pense que le PET 2001 l’avait déjà montré. J’ai beaucoup codé sur PET autrefois
Je me demande pourquoi on ne voit pas apparaître quelque chose de « vrai » et de « bon », même si le produit n’a pas besoin d’être commercialisable. Vu l’argent que les gens dépensent dans leurs hobbies, dire que c’est une question d’argent ne semble pas tout expliquer
La densité de pixels a beaucoup augmenté, donc les grands écrans sont haute résolution, ce qui nécessite un appareil bien plus rapide pour les piloter. À ce stade, le contrôleur d’affichage devient beaucoup plus puissant que l’ordinateur lui-même, ce qui donne une impression un peu absurde
C’est l’obstacle auquel je me suis heurté. C’est tout à fait possible, mais le résultat devient plus maladroit que prévu
Il n’y a aucune raison de limiter le choix : il suffit d’acheter et d’utiliser le clavier que l’on veut. Rien n’empêche d’utiliser le clavier de son choix, et à mon sens c’est ça, le progrès
J’ai fabriqué 5 cartes My4th Light. Si ça vous intéresse, contactez-moi via mon profil
S’il y a des intéressés, j’envisage aussi de produire un petit lot de Forth Deck mini
Je prévois de faire une courte vidéo de démonstration de Forth, mais je n’ai pas encore eu le temps de m’y mettre
En résumé, ça ressemble plutôt à un AlphaSmart pour la programmation
Si vous ne connaissez pas l’AlphaSmart, c’était une sorte de machine à écrire avec un petit écran LCD. Il fonctionnait pendant des heures sur batterie, avec un espace de stockage limité, et permettait d’enregistrer des brouillons en le connectant à un gros ordinateur
Où est donc la version pour programmer ? C’est la réflexion que je me suis faite récemment en voyant sur HN l’article sur le Mac 128k qui tourne sur un RPI2040. En théorie, on pourrait réellement travailler sur ce genre de système, mais ce ne serait pas très intéressant comme machine de loisir
L’AlphaSmart du low-power computing aurait besoin d’un vrai clavier, d’un écran basse consommation, si possible d’un écran e-ink plus grand, et d’une absence de connexion à Internet
Je ne parle pas de calculatrices comme les TI-83, TI-92 ou les NumWorks récentes. Elles sont faites pour le calcul et leur format de calculatrice est inconfortable
https://en.wikipedia.org/wiki/AlphaSmart
https://news.ycombinator.com/item?id=40699684
https://axio.ms/projects/2024/06/16/MicroMac.html
https://en.wikipedia.org/wiki/TI-83_series
https://en.wikipedia.org/wiki/TI-92_series
https://www.numworks.com/
Il pourrait alors fonctionner uniquement à l’énergie solaire, sans batterie, et pour le stockage de masse on pourrait utiliser de la flash NAND parallèle à faible taux d’utilisation
Je ne suis pas allé plus loin que les premiers prototypes, et les notes de conception du zorzpad sont pour la plupart en espagnol sur http://canonical.org/~kragen/sw/zorzpad.git/. za3k vance travaille sur un zorchpad qui s’en inspire : https://blog.za3k.com/tag/zorchpad/
L’objectif principal du zorzpad est une utilisation longue durée, avec une durée de vie de 53 ans. Pour atteindre cet objectif, je considère qu’il ne faut pas utiliser de batterie, de port de charge ni de key switches du commerce. Cela impose donc beaucoup de compromis dans la conception du système, et je n’ai pas encore trouvé de processeur fonctionnant sous le milliwatt tout en disposant d’une MMU
« zorzpad » est un jeu de mots sur « thinkpad » et, dans certains dialectes espagnols, cela se prononce comme « thorthpad » ; c’est donc une blague qui en fait une sorte d’opposé de thinkpad
Je pense qu’un écran e-ink risque fort de consommer trop d’énergie. Je cherche depuis des années des chiffres fiables de consommation, mais en divisant l’autonomie d’un Amazon Kindle par la capacité de sa batterie, on obtient une estimation d’environ 100 milliwatts
L’écran alternatif à l’e-ink du zorzpad fait environ un dixième de cette taille et consomme un millième de cette puissance, soit environ 100 microwatts ; la fiche technique ne garantit que 20 Hz, mais un rafraîchissement à 60 Hz est possible
Si l’on ne se soucie pas de supprimer la batterie ou si l’on n’envisage pas une production en série, on peut littéralement acheter un AlphaSmart Neo et connecter son clavier et son écran à quelque chose comme un ESP32
Il a BASIC, un traitement de texte et un tableur en ROM, ainsi qu’un écran adressable au pixel et un excellent clavier au regard de sa taille. Il dispose aussi de RS-232 et d’un modem 300 bps
Le Clockwork-PI récent évoque cette impression, mais son clavier fait jouet et, au final, ce n’est qu’un portable Linux avec toutes sortes de distractions
Le Model 100 a encore été utilisé jusque dans les années 90 par des journalistes qui l’emportaient avec eux pour rédiger des articles et les téléverser vers leur bureau de service
Pour moi, les fonctions clés étaient le clavier Mac et les raccourcis, ce qui faisait que je n’avais pas à y penser pendant que je l’utilisais
https://www.dannysalzman.com/2024/06/20/modding-alphasmart-n...
Parmi les précédents d’ordinateurs dotés d’un interpréteur Forth intégré, il y a le Jupiter Ace : https://en.wikipedia.org/wiki/Jupiter_Ace
Et Open Firmware, utilisé notamment sur Sun, les Mac PowerPC et One Laptop per Child, exploitait aussi Forth. Il pouvait également être utilisé dans les ROM de cartes d’extension, ce qui les rendait moins dépendantes du CPU : https://en.wikipedia.org/wiki/Open_Firmware
Si les petits ordinateurs vous intéressent mais que Forth ou la soudure ne vous attirent pas vraiment, on peut acheter pour 30 dollars une box ESP32 plutôt correcte : https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5...
Cela dit, il est bien plus puissant que l’Amiga que j’ai émulé ce week-end, et l’Amiga avait un bureau graphique complet, un compilateur et plusieurs outils.
Je me demande ce qu’on peut faire avec en sortie de boîte.
Édit : peu importe, je l’ai commandé. Je le saurai quand il arrivera, mais d’ici là je me demande toujours à quoi m’attendre.
C’est un appareil couramment utilisé avec Meshtastic.
Hum… il y a aussi le Forth de Collapse OS : http://collapseos.org/forth.html
Ça me fait penser à l’Oric-1.
https://en.m.wikipedia.org/w/index.php?title=Oric_(computer)...