1 puntos por GN⁺ 2024-06-28 | 1 comentarios | Compartir por WhatsApp
  • Forth Deck mini es una versión con carcasa que añade teclado, pantalla y batería a la placa My4TH, creando dentro del dispositivo un pequeño entorno autónomo de desarrollo Forth
  • El núcleo es una CPU de lógica CMOS discreta de 8 bits, con reloj de 8 a 14 MHz, 32 KB de ROM, 32 KB de RAM y hasta 256 KB de EEPROM
  • La entrada y salida están a cargo de una LCD de caracteres 40×4 y un teclado QWERTY de 56 teclas, y funciona durante 6 horas sin recarga con una batería LiPo de 6.6 Wh
  • La expansión usa una placa RS-232 4800 y el bus I2C, y la PCB del teclado está diseñada para ahorrar los limitados pines de E/S necesarios para el control de la LCD y la matriz del teclado
  • El kit de teclado de Budgetronics por sí solo no completa el sistema; para armar un Forth Deck también se necesita una My4TH computer board por separado y una selección de componentes opcionales

Configuración que convierte la placa My4TH en un dispositivo Forth portátil

  • Forth Deck mini es una versión de My4TH computer board a la que se le agregan teclado y pantalla, y se coloca en una carcasa
  • Gracias a la batería recargable integrada, puede usarse sin enchufe de corriente
  • Permite escribir y depurar programas Forth directamente en el propio dispositivo, sin necesidad de terminal serial ni PC
  • La forma de uso es parecida a la de los intérpretes Basic integrados de las computadoras domésticas de los años 70 y 80

Especificaciones de hardware

  • Pantalla y entrada

    • LCD de caracteres 40×4
    • Teclado QWERTY de 56 teclas
  • Energía y tamaño

    • Batería LiPo de 6.6 Wh
    • 6 horas de funcionamiento sin recarga
    • Tamaño de 198×118×35 mm
  • CPU y memoria

    • CPU de lógica CMOS discreta de 8 bits
    • Frecuencia de reloj de 8 a 14 MHz
    • 32 KB de ROM, 32 KB de RAM y hasta 256 KB de EEPROM
    • 17 chips de lógica CMOS serie 74 y 3 transistores
  • Entrada/salida y sistema

    • RS-232, placa 4800
    • Bus I2C para expansión
    • Sistema Forth 2012 de 16 bits

PCB del teclado y kit de construcción

  • El teclado y la pantalla se conectan a la My4TH board mediante un cable plano
  • La PCB del teclado incluye la LCD, 56 pulsadores, un conector USB type B mini, un socket Qwiic, un 74HC574 y otros componentes
  • El circuito de carga de batería es opcional
  • La lista completa de componentes puede consultarse en el Forth Deck construction manual
  • Los materiales necesarios para construirlo pueden descargarse desde download
  • El kit de teclado del Forth Deck puede comprarse en Budgetronics
    • Para reducir costos, no incluye la batería ni el circuito de carga
    • Tampoco incluye algunos conectores opcionales
    • Sí incluye un juego de separadores para apilar las dos placas y crear una versión de escritorio sin carcasa
  • Para completar el Forth Deck, se necesita por separado la My4TH computer board

Cómo se controla la LCD con pines de E/S limitados

  • La LCD funciona en modo de 4 bits para ahorrar pines del conector de E/S del My4TH
  • En el conector de E/S del My4TH solo hay 5 salidas digitales sin usar, y la LCD grande tiene 2 entradas de selección de chip, por lo que faltan 2 salidas respecto a las necesarias
  • Las salidas digitales faltantes se complementan con un 74HC574 octal D-type bus latch
    • Este IC está cableado como un registro de desplazamiento de 4 bits de ancho y 2 de profundidad
    • Como resultado, se obtienen 8 salidas digitales adicionales
  • Para cargar datos en el 74HC574 usando reloj, se utiliza la línea SCL del bus I2C
    • Aunque se use la señal SCL para clockear el 74HC574, los dispositivos del bus no ven una condición de inicio I2C válida
  • Para evitar escrituras no deseadas en registros de la LCD, la pantalla usa la señal de selección OUT3 del puerto de E/S digital del My4TH
  • Las compuertas AND de resistor-diodo de R3/D6 y R4/D8 enmascaran el chip select de la LCD
  • C2 y C3 filtran los glitches generados por el cambio de estado de los pines del 74HC574 y la capacitancia parásita de D6 y D8

Teclado de 56 teclas y reset de hardware

  • El teclado está compuesto por un total de 56 teclas
  • La separación entre teclas es de 12 mm, por lo que es difícil usar teclas más grandes y cómodas
  • Se intentó hacer el dispositivo lo más pequeño posible, pero por la pantalla el ancho mínimo terminó siendo de 190 mm
  • Con un paso de 12 mm caben 14 teclas por fila, y con 4 filas se llega a un total de 56 teclas
  • La entrada del teclado se lee usando los 6 pines de entrada sin usar del conector del puerto de E/S del My4TH
    • En combinación con 9 salidas digitales, se lee una matriz de teclas de 6×9=54 teclas
    • Las 2 teclas restantes son teclas especiales: la tecla shift y la tecla reset
  • El reset de hardware se ejecuta presionando la tecla Reset mientras se mantiene pulsada la tecla shift

Circuito de batería, software y separación de la PCB

  • La batería LiPo se usa como alimentación del sistema
  • El circuito de carga se basa en el chip TP5400, ampliamente usado en power banks USB de bajo costo
  • Si soldar componentes SMD pequeños resulta difícil, puede usarse un módulo TP5400 ya ensamblado y conectarlo a la PCB del teclado con fly wires
  • El software de soporte para la PCB del teclado está integrado desde My4TH ROM 1.0
    • Al conectar la placa de expansión del teclado a la placa de computadora My4TH, My4TH detecta automáticamente el teclado y la LCD
  • La PCB está preparada para poder cortarse por la mitad y separar el teclado de la pantalla
    • Así es posible montar la pantalla en un ángulo distinto al del teclado
    • También permite usar un teclado casero más cómodo

Ejemplos y licencia

1 comentarios

 
GN⁺ 2024-06-28
Opiniones de Hacker News
  • La CPU de esta computadora usa microcódigo y está hecha con unos pocos chips lógicos discretos y EEPROM.
    El bus de datos/direcciones es de 8 bits, pero la unidad NOR solo procesa 1 bit, así que para hacer una suma de 8 bits el microcódigo tiene que ejecutar un bucle.
    Pensé que haría falta un shifter por hardware para acceder a los bits D1~D7 y revisé el esquemático, pero en realidad no hay ninguno; el desplazamiento se maneja con una tabla de consulta en la EEPROM.
    Si te interesan los diseños de CPU interesantes, también vale la pena ver el Novix NC4000 o el RTX2000. Los bits de las instrucciones controlan casi directamente varios multiplexores y unidades dentro del chip, así que prácticamente no hay decodificación.

  • De adolescente estaba obsesionado con Forth y las CPU de componentes discretos, y si buscas bien probablemente encuentres viejos webrings de CPU caseras hechas con componentes discretos.
    Esa obsesión me llevó a mi trabajo actual como diseñador de hardware digital, y me alegra mucho ver artículos así en la portada de HN.

  • Me gusta leer sobre CPU de componentes discretos optimizadas de este tipo.
    Solo tiene 16 IC lógicos, y ni siquiera tiene sumador. La única función de la ALU es una compuerta NOR de 1 bit.
    Hay más detalles aquí: http://mynor.org/my4th.htm

  • Me pregunto cuál será el obstáculo para hacer hoy en día algo como una TRS-80 Model 100 para aficionados.
    Tenía una LCD de 40x8 y uno de los mejores teclados de todos los tiempos; la comunidad de teclados personalizados parece capaz de fabricar casi cualquier teclado que uno quiera.
    En la Model 100 el teclado ocupaba la mayor parte del espacio, pero al mismo tiempo era realmente usable. Lo importante era que la pantalla de 40x8 era lo bastante grande y fácil de leer, mientras que las decks con pantallas pequeñas de 640x480 son difíciles de leer, especialmente para ojos de más edad.
    La Psion 5 también tenía un teclado bastante usable y una pantalla mejor que la M100, pero no sé si un aficionado podría fabricar un teclado así. También se podría desarmar una y reutilizarlo, aunque para alguien eso podría ser una herejía.
    Las “decks” con matrices de botones que se ven hoy en día difícilmente pueden llamarse teclados reales; creo que la PET 2001 ya demostró eso. En su momento programé mucho en una PET.
    No tiene por qué ser un producto comercialmente viable, pero me pregunto por qué no aparece algo “real” y “bueno”. Decir que es por dinero no parece explicarlo todo, viendo lo que la gente gasta en sus hobbies.

    • Conseguir un display grande de baja resolución es un dolor de cabeza.
      La densidad de píxeles subió mucho, así que las pantallas grandes son de alta resolución, y eso exige un dispositivo mucho más rápido para manejarlas. Llegado a ese punto, el controlador de display termina siendo mucho más potente que la computadora real, y se siente un poco ridículo.
      Ese fue el obstáculo con el que me topé. Es totalmente posible, pero termina siendo más incómodo de lo previsto.
    • No hay nada que impida hacer hoy una TRS-80 Model 100 para aficionados: https://www.clockworkpi.com/home-devterm
    • Me pregunto por qué habría que hacerlo así. Antes el teclado no era un periférico, pero hoy sí lo es.
      No hay motivo para limitar las opciones; uno puede comprar y usar el teclado que quiera. Nada te impide usar el teclado que quieras, y creo que así se ve el progreso.
  • Hice 5 placas My4th Light. Si a alguien le interesa, puede contactarme por mi perfil.
    Si hay gente interesada, también estoy pensando en hacer un lote de Forth Deck mini.
    Tengo pensado hacer un video corto de demostración de Forth, pero todavía no me he puesto con eso.

  • En resumen, parece orientado a algo parecido a un AlphaSmart para programación
    Si no conoces AlphaSmart, era un dispositivo como una máquina de escribir con una pequeña pantalla LCD. Funcionaba durante horas con batería, tenía almacenamiento limitado y podía conectarse a una computadora grande para guardar borradores
    ¿Dónde está la versión de eso para programación? Pensé en eso hace poco al ver en HN el artículo sobre correr una Mac 128k en un RPI2040. En teoría, incluso en un sistema así se podría hacer trabajo real, pero no sería muy bueno para entretenimiento
    Un AlphaSmart de computación de bajo consumo necesita un teclado de verdad, una pantalla de bajo consumo, si es posible una pantalla de tinta electrónica más grande, y no estar conectado a internet
    No me refiero a calculadoras como la TI-83, la TI-92 o la NumWorks reciente. Esas son para calcular y su factor de forma tipo calculadora resulta incómodo
    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/

    • Yo también llevo años queriendo algo así, y gracias a la Memory LCD de Sharp y a los microcontroladores ARM con lógica subumbral de Ambiq, ya es posible hacer que funcione con menos de 1 milivatio
      Entonces podría funcionar solo con energía solar, sin batería, y para el almacenamiento masivo bastaría usar flash NAND paralela con un ciclo de uso bajo
      No pasé de las primeras etapas de prototipo, y la mayoría de las notas de diseño de zorzpad están en español en http://canonical.org/~kragen/sw/zorzpad.git/. za3k vance está construyendo zorchpad, inspirado en eso: https://blog.za3k.com/tag/zorchpad/
      El objetivo principal de zorzpad es el uso a largo plazo, con una vida útil de 53 años. Para lograrlo, creo que no se deben usar baterías, puertos de carga ni keyswitches comerciales. Por eso el diseño del sistema implica muchos compromisos, y todavía no he encontrado un procesador con MMU que funcione con menos de 1 milivatio
      “zorzpad” es un juego de palabras con “thinkpad”, y como en algunos dialectos del español se pronuncia como “thorthpad”, es una especie de broma como si fuera lo opuesto de thinkpad
      Creo que es muy probable que una pantalla de tinta electrónica consuma demasiada energía. Llevo años buscando cifras claras de consumo, y si divides la duración de batería de un Amazon Kindle por la capacidad de su batería, se estima en alrededor de 100 milivatios
      La pantalla alternativa a tinta electrónica del zorzpad tiene aproximadamente una décima parte del tamaño y una milésima parte del consumo, es decir, unos 100 microvatios; la hoja de datos solo garantiza 20 Hz, pero también puede actualizar a 60 Hz
      Si no te preocupa eliminar la batería o no estás pensando en producción en masa, literalmente podrías comprar un AlphaSmart Neo y conectar su teclado y pantalla a algo como un ESP32
    • Creo que lo más cercano a lo que pides es Cardputer: https://docs.m5stack.com/en/core/Cardputer
    • La TRS-80 Model 100 realmente encaja muy bien con esos requisitos
      Trae BASIC, procesador de textos y hoja de cálculo en ROM, además de una pantalla direccionable por píxeles y un teclado excelente para su tamaño. También tiene RS-232 y un módem de 300 bps
      La Clockwork-PI reciente recuerda a esa idea, pero el teclado parece de juguete y al final no es más que una laptop con Linux llena de distracciones
      La Model 100 la siguieron usando periodistas hasta los 90 para escribir notas y subirlas a bureaus de servicio
    • Con solo tener una AlphaSmart con tinta electrónica ya sería genial
      Para mí, la función clave era el teclado y los atajos de Mac, así que no tenía que pensar en nada mientras la usaba
    • Uso una Alphasmart Neo para escribir mi diario. Hace poco la modifiqué agregándole un ESP32 para poder transferir archivos de forma inalámbrica, y estoy muy satisfecho
      https://www.dannysalzman.com/2024/06/20/modding-alphasmart-n...
  • Como antecedente de una computadora con intérprete Forth integrado está la Jupiter Ace: https://en.wikipedia.org/wiki/Jupiter_Ace
    Además, Open Firmware, usado en Sun, PowerPC Mac, One Laptop per Child y otros, también aprovechaba Forth. También podía usarse en ROM de tarjetas de expansión para hacerlas menos dependientes de la CPU: https://en.wikipedia.org/wiki/Open_Firmware

  • Si te interesan las computadoras pequeñas pero Forth o soldar no te atraen mucho, por 30 dólares puedes comprar una caja ESP32 bastante decente: https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5...

    • Me da curiosidad cómo será el sistema operativo. No creo que arranque en un escritorio Wayland
      Aun así, es mucho más potente que la Amiga que emulé el fin de semana, y la Amiga tenía un escritorio GUI completo, compilador y varias herramientas
      Me pregunto qué se puede hacer con él tal como viene de fábrica
      Edit: no importa, lo pedí igual. Ya me enteraré cuando llegue, pero mientras tanto sigo con curiosidad por saber qué debería esperar
    • Aun así, hay Forth para este dispositivo: https://github.com/ryu10/M5CardForth
    • Todos los productos de M5Stack parecen bastante buenos por el precio. Por 30 dólares, estaría bueno que tuviera funciones cercanas a las de Flipper Zero
    • También se puede conseguir por unos 28 dólares una placa ESP32S3 con GPS, radio LoRa, cargador LiPo y pantalla OLED
      Es un dispositivo que se usa comúnmente en Meshtastic
  • Mmm… también está el Forth de Collapse OS: http://collapseos.org/forth.html

  • Me recuerda a la Oric-1
    https://en.m.wikipedia.org/w/index.php?title=Oric_(computer)...