miércoles, 15 de octubre de 2025

Macro Keyboard ESP32 con TFT ILI9488 conexión paralelo 8bits

Muy buenas a todas y todos!!!

Seguramente tengas alguno de estos viejos modelos de pantalla que tienen la configuración en formato "sombrero" para los microcontroladores Arduino UNO .

Un display TFT 3,4" de 8 bits conectado en paralelo con el driver ILI9488 y táctil resistivo.

Esta manera de conectar los pines con 8bits más similitudes con un LCD 16x2 que con las modernas pantallas SPI que se manejan con menos hilos de control.

Es decir esta pantalla necesita 8 lineas para la transferencia de datos y otras 5 para la conexiones que manejan la pantalla TFT.


Librería TFT_eSPI

TFT_eSPI es una librería de alto rendimiento específicamente optimizada para controlar pantallas TFT a color con microcontroladores ESP32, ESP8266 y placas STM32.

Está diseñada desde cero para exprimir al máximo el hardware, utilizando SPI con DMA, transacciones asíncronas y manipulación directa de registros.

Su configuración manual permite un rendimiento máximo del display. 

A diferencia de librerías "plug-and-play", requiere que editemos un archivo de configuración "User_Setup.h" para especificar exactamente tu hardware: tipo de controlador, pines GPIO, frecuencia SPI, etc.

También dispone de configuraciones especificas según el tipo de microcontrolador ubicadas en la carpeta "/Users_Setups".

Es, sin duda, la librería más rápida para pantallas TFT con microcontroladores de tipo ESP32/ESP8266.

El uso directo de SPI DMA y transacciones optimizadas hace que la diferencia sea abismal frente a alternativas como Adafruit_GFX.

Aunque parece complejo, el sistema de archivos de configuración permite afinar hasta el último detalle de tu pantalla específica.

Dispone de un soporte masivo de controladores ya que es compatible con más de 50 controladores TFT diferentes. Desde los comunes ILI9341, ST7789, hasta modelos más exóticos.

Características Avanzadas de TFT_eSPI

  • Sprites en memoria para animaciones fluidas
  • Fuentes anti-aliadas con calidad profesional
  • Rotaciones eficientes de pantalla
  • Operaciones de dibujo aceleradas por hardware

ESP32 y TFT ILI9488 paralelo

La conexión de la pantalla con el ESP32 hay que seleccionar las lineas que se describen en la siguiente tabla:

Señal TFT GPIO ESP32
LCD_RST GPIO 15
LCD_CS GPIO 2
LCD_RS (DC) GPIO 32
LCD_WR GPIO 33
LCD_RD GPIO 4
LCD_D0 GPIO 12
LCD_D1 GPIO 13
LCD_D2 GPIO 26
LCD_D3 GPIO 25
LCD_D4 GPIO 17
LCD_D5 GPIO 16
LCD_D6 GPIO 27
LCD_D7 GPIO 14

Configuración de la librería TFT_eSPI

Hay que saber que esta librería tiene 2 archivos principales de configuración:

  • Setup70d_ILI9488_S3_Parallel.h

    Es el archivo de configuración ubicado en la carpeta "/Users_Setups" donde pondremos los pines personalizados tanto del ESP32 como de la pantalla con el controlador ILI9488 que hemos dispuesto en la tabla anterior:


    
        
    #define USER_SETUP_ID 146
    
    #define TFT_PARALLEL_8_BIT
    
    //#define ILI9341_DRIVER
    //#define ST7796_DRIVER
    #define ILI9488_DRIVER
    
    // ESP32 S3 pins used for the parallel interface TFT
    #define TFT_CS    2
    #define TFT_DC   32  // Data Command control pin - must use a GPIO in the range 0-31
    #define TFT_RST  15
    
    #define TFT_WR    33  // Write strobe control pin - must use a GPIO in the range 0-31
    #define TFT_RD    4
    
    #define TFT_D0   12  // Must use GPIO in the range 0-31 for the data bus
    #define TFT_D1   13  // so a single register write sets/clears all bits
    #define TFT_D2   26
    #define TFT_D3   25
    #define TFT_D4   17
    #define TFT_D5   16
    #define TFT_D6   27
    #define TFT_D7   14
    
    #define LOAD_GLCD
    #define LOAD_FONT2
    #define LOAD_FONT4
    #define LOAD_FONT6
    #define LOAD_FONT7
    #define LOAD_FONT8
    #define LOAD_GFXFF
    
    #define SMOOTH_FONT
    
    
  • User_Setup_Select.h
    Este es el archivo que maneja las configuraciones de la librería TFT_eSPI y que hará referencia al archivo "Setup70d_ILI9488_S3_Parallel.h" que acabamos de configurar.
    tenemos que comentar la linea donde esta la referencia al archivo "User_Setup.h":
    
        // Archivo User_Setup_Select.h
        
        // #include <User_Setup.h>  // Default setup is root library folder
        
        #include <User_Setups/Setup70d_ILI9488_S3_Parallel.h> // Setup file for ESP32 S3 with SPI ILI9488
    
        

Recuerda que una vez configuradas las conexiones correctamente, el rendimiento es óptimo porque la librería está compilada exactamente para tu hardware.

Ahora ya podemos probar el ejemplo que proporciona la misma librería como puede ser "Demo_3D_Cube.ino"

IMAGEN DEL CUBO 3D

Problemas con colores en pantalla TFT

Si se tienes problemas con los colores inserta esta línea en el setup() después de haber inicializado la pantalla (tft.begin())


tft.invertDisplay(true);

Con este comando se invierten los colores que se muestran en la pantalla TFT.


Otro problema que podemos encontrar es que no compile bien la librería, prueba a cambiar la versión de la placa antes de compilar. La versión de placa que estamos utilizando es la versión 2.0.17 de ESPressif Systems.

Librería LittleFS.

Sobre LittleFS ya hemos hablado antes en este blog pero enfocado al microcontroladores ESP8266.

Esta vez la usaremos para subir los iconos que se mostrarán posteriormente en la pantalla en formato .png.

Subir archivos a la memoria flash del ESP32 con Arduino IDE 2

Subiremos los archivos siguiendo unos pocos pasos:

  • Primero cerramos el IDE 2 de Arduino.

  • Después necesitamos descargar el archivo: arduino-littlefs-upload-1.x.x.vsix desde GitHub

  • Ahora nos situamos en la carpeta .ArduinoIDE y creamos un directorio llamado "plugins". Rcuerda que esta carpeta .ArduinoIDE puede estar oculta.

  • Finalmente solo tenemos que compiar el archivo "arduino-littlefs-upload-1.x.x.vsix" a la carpeta ".ArduinoIDE/plugins"

Abrimos el IDE de Arduino y pulsamos "Ctrl + Mayus + P" para buscar en la barra "upload", tal y como se muestra en la imagen:


Archivos PNG con librería LittleFS

Al pulsar sobre la opción "Upload LittleFS to Pico/ESP8266/ESP32" se copiarán todos los archivos que estén en la carpeta "data" dentro de la carpeta del sketch a la memoria flash del dispositivo ESP32 DOIT DEVKIT V1.

La memoria flash disponible es de 4MB, suficiente para unos cuantos archivos  con formato .png con un tamaño reducido.


Librería PNGdec

Esta librería fue una gran sorpresa, de uso sencillo y muy rápida pese a ser una pantalla tft con conexión en paralelo. Puedes encontrar la librería PNGdec en GitHub.

Como siempre no estaría bien que algo funcionará a la primera así que el una vez abierto el ejemplo de la librería llamado LittleFS_PNG.ino podemos compilar y nos aparecerá el siguiente error:


Compilation error: 
  invalid conversion from 'void (*)(PNGDRAW*)' {aka 'void (*)(png_draw_tag*)'} 
  to 'int (*)(PNGDRAW*)' {aka 'int (*)(png_draw_tag*)'} [-fpermissive]

Para solucionar este error solo hay que buscar la función "int pngDraw(PNGDRAW *pDraw)" y añadir "return 1; al final tal y como se muestra en el siguiente fragmento de código:


int pngDraw(PNGDRAW *pDraw) 
{
  uint16_t lineBuffer[MAX_IMAGE_WIDTH];
  png.getLineAsRGB565(pDraw, lineBuffer, PNG_RGB565_BIG_ENDIAN, 0xffffffff);
  tft.pushImage(xImage, yImage + pDraw->y, pDraw->iWidth, 1, lineBuffer);
  return 1;
}


Librería Adafruit TouchScreen

Esta ha sido la parte con la que más tiempo he perdido. Todo se ha complicado por no encontrar los pines que corresponden a XP y XM debido a que cada panel tiene una configuración de pines diferente.

También por que uno de los cabnles estaba en mal estado y, aunque permitia el encendido de la pantalla, no hací un buen contacto al hacer la lectura analógica.

Puedes descargar la librería Adafruit TouchScreen en GitHub.

La solución la encontré gracias a un Arduino UNO junto con la librería MCUFRIEND_kbv y el ejemplo: "TouchScreen_Calibr_native".

Con la pantalla en el Arduino UNO, cargamos el sketch TouchScreen_Calibr_native y esperamos a la salida serial


TouchScreen.h GFX Calibration
Making all control and bus pins INPUT_PULLUP
Typical 30k Analog pullup with corresponding pin
would read low when digital is written LOW
e.g. reads ~25 for 300R X direction
e.g. reads ~30 for 500R Y direction

Testing : (A2, D8) = 35
Testing : (A3, D9) = 25

ID = 0x9488

Nos interesan las lineas "Testing" con la que podemos realizar la siguiente conversión:

Arduino UNO TFT ESP32 Touch
A2 RS GPIO 32 YP
A3 CS GPIO 2 XM
D8 D0 GPIO 12 YM
D9 D1 GPIO 13 XP

Esto datos los pasaremos al programa principal en el apartado "Configuración TouchScreen":


// Configuración TouchScreen

#define YP 32  // Tiene que ser un pin analógico, usa la notación "ADC" 
#define XM 2   // Tiene que ser un pin analógico, usa la notación "ADC"

#define YM 12
#define XP 13


Ahora con la certeza de que el panel resistivo funcionaba, sustituimos los 4 cables que le corresponden al panel y volvemos a probar con el ESP32

Esta configuración puede cambiar

Otro de los problemas que surgió fue la lectura de la pulsación Z que corresponde a la variable "p.z" daba lecturas muy "extrañas" debido a la resolución de la lectura analógica del que dispone el ESP32 que es de 12bits frente a los 10bits que tiene, por ejemplo, el Arduino UNO.



Arduino UNO ESP32
Resolución ADC 10 bits 12 bits
Valores Posibles 0 - 1023
(2¹⁰ = 1024)
0 - 4095
(2¹² = 4096)

Una vez tenemos este dato, vamos al archivo "TouchScreen.cpp" que estará en la carpeta de las librerías /Adafruit_TouchScreen y buscamos las siguientes lineas en la función "TSPoint TouchScreen::getPoint(void)" y las sustituimos por esta:


// Función: TSPoint TouchScreen::getPoint(void)
// rtouch /= 1024;
rtouch /= 4096;

y

// z = (1023 - (z2 - z1));
z = (4095 - (z2 - z1));


Y aquí es donde daba el fallo al leer la . Para esta pantalla solo hay que cambiar estos parámetros en la función "TSPoint TouchScreen::getPoint(void)", pero para otras también cambiamos todos los valores 1024 y 1023 por 4095 y 4096 de todas las funciones en las que aparezcan dichos valores.

Ahora sí, la pantalla táctil funciona perfectamente y lo podemos comprobar en el monitor serial


Hasta aquí la primera parte para la configuración de la pantalla TFT y conexión paralela de 8bits con un microcontrolador ESP32, este es un pequeño resumen de lo que hemos realizado hasta ahora:

  • Configuración de la librería TFT_eSPI para pantalla de 8 bits.

  • Repaso a la librería LittleFS y la instalación de LittleFS upload en el IDE de Arduino.

  • Instalación de la librería PNGdec y la solución a posibles problemas.

  • Por último la librería Adafruit_TouchScreen y su configuración para el panel resistivo junto con pruebas con MCUFRIEND_kbv

Configuración para la lectura de teclas

Ahora tenemos que configurar el sistema para poder leer los comandos que nos manda el ESP32. La conexión con el PC sera realizada con el Bluetooth que nos proporciona el mismo microcontrolador ESP32.

Una vez que se realice la conexión el sistema leerá los comandos seriales y realizará las pulsaciones del el teclado o la llamada al programa que hayamos designado a dicha aplicación.

Comunicación Bluetooth entre ESP32 y PC

Aquí entran en juego las dos partes, la del microcontrolador y la conexión bluetooth que dispongamos en el PC. Como nota, podemos cambiar la conexión Bluetooth por la conexión serial por USB, pero eso lo dejamos para una actualización.

Librería BluetoothSerial en ESP32

Esta ĺibrería es interna y la proporciona el mismo IDE de Arduino así que la tenemos disponible desde el primer momento. Si necesitas más información este es la documentación de la librería BluetoothSerial.h


#include "BluetoothSerial.h"
void setup()
{
  SerialBT.begin("ESP32-ITB"); // Nombre del dispositivo Bluetooth
}

void loop()
{
  // Programa principal
  Lectura_Tecla_Pantalla()
}

void Lectura_Tecla_Pantalla()
{
  SerialBT.println("ACK: COMANDO");
}


Ahora que ya hemos visto como se conectará el microcontrolador vamos con la parte del PC de la mano, por supuesto, del lenguaje de programación Python.


Programa en Python para lectura del bluetooth

Python es la navaja suiza de los lenguajes de programación y gracias a esta versatilidad nos proporciona todas las librerías necesarias para este proyecto.

Estas son las librerías Python que vamos a utilizar.

Librerías externas

  • bluetooth
    Sera la encargada de comunicarnos con el ESP32. La puedes encontrar en GitHub como Pybluez

  • keyboard
    Esta es la librería encargada de transformar los datos seriales que proporciona el bluetooth a pulsaciones del teclado. Puedes consultar la librería keyboard de Boppreh en GitHub.

Librerías incluidas en Python

  • sys
    (System) Necesaria para interactuar con el intérprete de Python y el sistema como listar directorios o ejecutar comandos. Viene incluida con Python.

  • os
    (Operating System) Interfaz con el sistema operativo: archivos, directorios, procesos.

  • subprocess
    Ejecutar comandos externos y gestionar sus flujos de entrada/salida. Necesaria para la ejecución de los programas que designemos a las teclas.

  • time
    Realiza las pausas necesarias para no saturar la recepción de datos.

Comunicación ESP32 Bluetooth PC

Para diferenciar entre los comandos que vamos a recibir y el comando que vamos a ejecutar los vamos a almacenar en un diccionario de la siguiente manera:


# Mapeo de teclas (lo que escribes → lo que se simula)
COMANDOS = {
    'item1': 'inkscape',
    'item2': 'audacity',
    'item3': 'subl',
    'item4': 'spectacle',

    'item5': 'ctrl+z',         
    'item6': 'ctrl+x', 
    'item7': 'ctrl+c', 
    'item8': 'ctrl+v',
    
    'save': 'ctrl+s',
    'select all': 'ctrl+a',
    'find': 'ctrl+f'
    }

De esta manera podemos crear un diccionario con los atajos de teclado, comandos del sistema o aplicaciones del sistema. Así tenemos centralizados los comandos facilitando su modificación.

En la primera parte tenemos el Item que hemos seleccionado en el display. En la segunda parte del diccionario pondremos la aplicación o el atajo de teclado que queramos.

NOTA:

Depende del sistema que estes usando puede que el funcionamiento no sea el correcto. Para este ejemplo se ha utilizado una distribución basada en Debian.

Cargar ESP32 Macro keyborad en el inicio

Para cargar el programa para que se inicie al encender el ordenador tenemos que incluirlo en el crontab de usuario con el siguiente comando:


@reboot sleep 30 && sudo -u YOUR_USER /usr/bin/python3 /home/peyutron/PythonProjects/Comunicacion/Bluetooth/Bluetooth-HID-ESP32/main.py >> /home/YOUR_USER/esp32_cron.log 2>&1


Conclusión del proyecto

Hardware Especializado:

  1. Microcontrolador ESP32 con Bluetooth integrado.

  2. Pantalla TFT con interfaz táctil resistiva/capacitiva.

  3. Comunicación paralela 8 bits para control de pantalla.

Software de Control:

  1. TFT_eSPI - Librería optimizada para gráficos en ESP32.

  2. Protocolo Bluetooth RFCOMM - Comunicación serial inalámbrica.

  3. Sistema de comandos - Diccionario personalizable de acciones.

  4. Flexibilidad Total - Configuración ilimitada de comandos

  • Descargar los archivos para ESP32 y el progrma en Python3 de los que consta el proyectoTFT-eSPI 8bits ILI9488 Macro Keypad en GitHub
  • Saludos!!!

    Puedes visitar los siguiente enlaces relacionados con pantallas y Arduino:

    domingo, 28 de septiembre de 2025

    Revive tu PC Retro! Guía adaptador CF IDE

    Muy buenas a todos y todas!!!

    Lo primero comentar que el Pentium 133 va realmente bien. El único elemento que no quiero estresar mucho debido a los años y de ser un dispositivo con partes mecanizadas.

    A día de hoy encontrar un disco duro de poca capacidad y, sobre todo, que no tenga sectores defectuosos es algo difícil y caro de conseguir. Pero como siempre, hay un roto para un "descosio", en este caso se llama adaptador CF a IDE.


    Adaptador IDE y Tarjetas CF

    Una de las soluciones más común por lo fácil y rápido con la que podemos disponer de un disco duro es la combinación de una tarjeta CF (Compact Flash) y un adaptador de tarjetas CF conectado en el puerto IDE.

    Parámetro Disco Duro IDE Antiguo (HDD) Tarjeta CF + Adaptador IDE
    Interfaz IDE (PATA) IDE (vía adaptador pasivo)
    Velocidad 1-10 MB/s (5400 RPM) Hasta 167 MB/s (CFast)
    Tiempo de acceso 10-20 ms 0.1-1 ms (sin partes móviles)
    Consumo eléctrico 5-15 W 0.5-3 W
    Ruido Alto (motor + cabezal) Cero (silencioso)
    Resistencia Sensible a golpes/vibraciones Resistente (estado sólido)

    Adaptador CF - IDE

    El adaptador CF-IDE es el dispositivo que nos permite conectar tarjetas Compat Flash a una computadora que tenga un puerto IDE disponible.

    El puerto IDE

    La función del puerto IDE es la de conectar y transferir datos entre la placa base y los dispositivos de almacenamiento.

    Esta transferencia se realiza con un cable plano o de cinta con hasta 80 hilos (40 en maquinas anteriores a los 2000) y tres conectores.

    La configuración de estos dispositivos se realiza configurando los jumpers como "maestro" y "esclavo" para establecer el orden de comunicación.

    Por supuesto esta obsoleta, la interfaz IDE ha sido reemplazada por tecnologías más modernas y, sobre todo, más rápidas, como es el estándar SATA o NVME.


    Hace que la tarjeta CF sea reconocida como un disco duro IDE de 2.5 pulgadas o 3.5 pulgadas.

    Es como tener una unidad SSD en un ordenador de los años 90's, aprovechando sus grandes ventajas como la resistencia a los golpes o la ausencia de ruido de las memorias flash tal y como se ha expuesto en la tabla superior.

    Puedes encontrar este tipo de adaptadores y tarjetas CF en diferentes plataformas de venta con precios entre 3 y 5€ para el adaptador IDE y entre 8 y 12€ para una tarjeta CF de 4GB.

    Característica Fixed Mode Removable Mode
    Booteo en BIOS antiguas ✅ Sí ❌ No
    Reconocimiento en DOS ✅ Completo ⚠️ Variable
    Windows 9x ✅ Nativo ❌ Requiere drivers
    Intercambio entre PCs ❌ Inseguro ✅ Seguro

    Instalación del adaptador IDE-CF

    a CompactFlash (CF) es un formato de tarjeta de memoria de estado sólido desarrollado por SanDisk en 1994. Su diseño revolucionario combinaba alta capacidad con interfaz IDE/ATA, haciéndolo ideal para cámaras digitales profesionales... y eventualmente para revivir ordenadores retro.

    Esta capacidad de devolver a estos zombis del pasado es por su Compatibilidad nativa con el protocolo IDE.

    Antes de empezar a destripar al paciente hay que crear un disco de arranque con MS-DOS que contenga los programas "FORMAT" y "FDISK".

    El primer paso para la instalación es desconectar el ordenador de la corriente y retirar los tornillos para quitar la tapa.

    Localizamos los puertos IDE, generalmente están juntos, aunque antes de continuar debemos decidir si será nuestro disco maestro o disco secundario.

    • Disco maestro

      Es el disco principal del sistema donde se incluye el sistema operativo y los programas. Sin este disco solo podemos arrancar desde la unidad A:

    • Disco secundario

      Es un disco que añadimos para ampliar la memoria. Generalmente se usa para almacenar datos extra y eventualmente se puede instalar otro sistema operativo usando "Dual Boot".

    • Selección por cable

      Esto es un "comodin" que se usa, sobre todo en HDD y unidades de CD-ROM. En la configuración de los jumpers hay una opción llamada "cable select. Esta opción detecta en cual de las dos posiciones, maestro o secundario, del cable esta conectada la unidad.

      En las unidades IDE-CF que hemos tratado solo tienen las dos primeras opciones, maestro o secundario.

    En este caso lo vamos a poner como maestro, así que tenemos que verificar si los pines están en la posición correcta.

    Configurar tarjeta CF para PC retro

    Dependiendo del sistema operativo que estemos utilizando no podemos utilizar la tarjeta con todos los GB disponibles.

    Capacidad CF Sistema Archivos Sistemas Operativos Particionado Notas/Recomendaciones
    128 MB - 2 GB FAT16 DOS 6.22, Windows 3.x, Windows 95 1 partición primaria Máxima compatibilidad con BIOS antiguas
    2 GB - 4 GB FAT16 o FAT32 Windows 95 OSR2, Windows 98 1-2 particiones Ideal para Windows 98 + aplicaciones
    4 GB - 8 GB FAT32 Windows 98 SE, Windows ME 2-3 particiones Límite seguro para BIOS pre-2000
    8 GB - 32 GB FAT32 Windows ME, Windows 2000 Múltiples particiones Requiere BIOS con soporte LBA
    32 GB - 64 GB FAT32 o NTFS Windows XP, Linux Múltiples particiones Solo para sistemas post-2000
    64 GB+ NTFS, exFAT, ext4 Windows Vista+, Linux moderno GPT (no MBR) No recomendado para retro

    🔧 Herramientas de Particionado por Sistema

    Sistema Operativo Herramienta Comando/Ejemplo
    DOS 6.22 FDISK.EXE FDISK /MBR luego FDISK
    Windows 95/98 FDISK + FORMAT FDISK luego FORMAT C: /S
    Windows XP+ Administración de discos Interfaz gráfica + click derecho
    Linux fdisk o gparted sudo fdisk /dev/sdb

    💡 Recomendaciones por Uso

    • DOS puro: 1-2 GB FAT16 (máxima compatibilidad)
    • Windows 95: 2-4 GB FAT16/FAT32
    • Windows 98: 4-8 GB FAT32 (equilibrio perfecto)
    • Multisistema: 8 GB con particiones separadas
    • Colección software: 16 GB (si la BIOS lo soporta)

    Nota: Las capacidades superiores a 8 GB pueden requerir ajustes de BIOS o herramientas como OnTrack Disk Manager para sistemas muy antiguos.

    🔍 El Problema de las CF Falsificadas

    Las tarjetas CompactFlash piratas son un problema común, especialmente en compras online. Los estafadores modifican las controladoras para que reporten más capacidad de la real, pero los datos se corrompen al exceder su capacidad física real, evidentemente menor.

    Ejemplo:

    Tarjeta real: 8 GB → Modificada para reportar: 16 GB Los primeros 8 GB funcionan, el resto SOBRESCRIBE datos existentes

    En resumidas cuentas, tu compras una tarjeta de 16GB, pero realmente tienes una CF de 8.

    Por suerte para los pobres estafados, si la tarjeta no es "realmente mala" podremos usar esos 8 GB reales y si es "mala mala" pues aunque estén dispoonibles tendremos problemas de lectura y escritura. Puedes llevarla al punto de reciclaje más cercano.

    ¿Como detectar una CF tarjeta falsificada?

    Lo primero que nos tiene llamar la atención es el precio, una tarjeta demasiado barata, generalmente es falsa, pero si aún así nos arriesgamos existen diferentes opciones para poder detectar uno de estos fraudes pero la más extensamente utilizada es H2test y H2testw

    ¿Qué es H2test?

    H2testw es una utilidad gratuita y portable para Windows que verifica integridad y capacidad real de medios de almacenamiento (CF, SD, USB).

    Desarrollada originalmente en alemán, se ha convertido en el estándar de la comunidad para detectar tarjetas falsificadas.lmente en alemán y practicamente es el estándar de la comunidad para detectar tarjetas falsificadas.

    Por otro lado tenemos a H2test, que es para sistemas MS-DOS. Con ambas podemos hacer la verificación de nuestra tarjeta CF y salir de la duda.


    Personalmente uso H2testw con cada tarjeta CF, microSD o pendriveque tengo que utilizar.

    🎯 Conclusión Final

    La combinación del adaptador IDE a CF y la tarjeta Compat Flash es la mejor opción para rejuvenecer un ordenador del tipo 486 o Pentium de las primeras generaciones.

    Toque de autenticidad al Mantener la interfaz IDE nativa.

    No hace ruido, la tecnología de tarjetas es silenciosa y eficiente.


    Y es más barata que HDDs antiguos restaurados. Rondando el conjunto de tarjeta CF y adaptador CF menos de 10€ (dependiendo de la capacidad de la tarjeta Compact Flash.

    Muchas gracias a todos y todas por llegar hasta aquí!!!

    Otros artículos sobre ordenadores retro que te pueden interesar:

    sábado, 30 de agosto de 2025

    Digital Venturis 5100 Restauración y puesta a punto

    Buenas a todos y todas al apartado retro de esta web!!!

    Si sigues esta web por alguna de sus sociales, X, BlueSky o Facebook ya sabes que hace poco entro a pasar parte de mi colección de ordenadores retro un Digital Venturis 5100 del fabricante Digital Equipment Corporation (DEC).

    Un ordenador de mediados de los 90's enfocado sobre todo al entorno empresarial y en menor medida al uso domestico.

    Al momento de la compra, un poco más reñida de lo habitual, no tenía ni idea de los componente que escondía en su interior, pero era un pack completo, CPU, monitor, teclado y ratón.

    Para mi sorpresa el conjunto también incluía una bolsa con cables variados y otro ratón extra.

    Después de llegar a casa y algunos intentos conseguí alguna información con el programa MS Diagnostics y todo bien. La única pega puede ser la fuente de alimentación, veamos los datos:

    Características técnicas:

    Componente Especificación Notas Verificadas
    Procesador Intel Pentium 100 MHz Sin tecnología MMX (primera generación)
    Cache L1 16 KB Integrado en el procesador
    Memoria RAM 8 MB Expandible mediante módulos SIMM de 72 pines
    Chipset SiS 85C5101 Chipset específico para Pentium de 100 MHz
    Puente PCI-ISA SiS 5595 Gestiona comunicación entre buses PCI e ISA
    Controladora Gráfica S3 Trio V+ Turbo (86c765) 1 MB de VRAM (resolución máxima 1024x768)
    Disco Duro Quantum Fireball 640A 612 MB de capacidad, interfaz IDE
    BIOS Phoenix PCI PnP Fecha: 19/01/1996 (versión estándar para 1995-96)
    Fuente de Alimentación 100 Watios Típica en equipos de escritorio de mediados de los 90

    Esta información se obtuvo después de poder arrancar, cosa que no fue especialmente fácil.

    Placa base DEC Venturis Pentium 575

    Consultando la información llegue a la web "The Retro Web" donde investigando llegue al modelo en cuestión:

    DEC Venturis Pentium 575

    Digital Venturis 5100 - DEC Venturis 575
    DEC Venturis Pentium 575
    • Chipset: SiS 85C501/502/503 (Pentium/P54C PCI/ISA Chipset).
    • Socket: Socket 5 (PGA320).
    • Velocidad FSB: 50MHz 60MHz 66MHz.
    • Cache: 256KB.
    • Máximo de RAM: 128MB (8MB onboard).
    • Tipo de RAM: 72-pin FPM.
    • Conector PSU: AT (6-pin P8 + 6-pin P9)

    Puertos de entrada y salida

    • 1x interfaz de disquete.
    • 2x interfaces IDE.
    • 1x teclado PS/2.
    • 1x ratón PS/2.
    • 1x puerto paralelo.
    • 2x puertos seriales.
    • 1x VGA

    Slots de expansión

    • 2x 16-bit ISA.
    • 2x 32-bit PCI.

    Primer problema: Pila del reloj agotada

    El que la pila este agotada es un problema común en equipos de esta generación y anteriores en la siguiente tabla se pueden apreciar los diferentes dispositivos que se utilizaban para mantener la hora en estas máquinas:


    Tipo de Batería Modelos Típicos Voltaje Vida Útil ¿Reemplazable?
    Dallas DS12887 DS1287, DS12887A, DS12C887 5V (integrada) 10 años (original) Puede estar soldada o en socket
    Pila de Litio CR2032 CR2032, CR2025 3V 3-5 años Sí (conector)
    Batería de Níquel-Cadmio (NiCd) Varta 3.6V, Panasonic 3.6V 2-3 años Sí (soldada)
    Batería de Litio Externa Pack 3xAA, Litio 6V 3.6V-6V 5+ años Sí (conector)

    Para este equipo el metodo elegido ha sido el integrado ds12887 de la marca Dallas. Y esto era un problemon en un principio... /p>

    Para el Digital Venturis 5100 el no tener pila no deja guardar información critica para el arranque relaciona con los discos duros. Es decir si quitaba el ds12887 no funcionaba prácticamente nada.

    Y puesto, funcionaba un poco mejor pero seguía sin poder configurar el disco duro. Lo detectaba pero no iniciaba el sistema, salia un mensaje muy feo que decía "Operating system not found".

    Antes de continuar probé el disco con el Pentium 133 y funcionaba bien así que no era problema del disco (que podía ser).

    Por suerte no me toco una de las peores que son las baterías de Níquel-Cadmio (NiCd) ya que son propensas a fugas altamente corrosivas que pueden destruir los circuitos.

    Ahora que sabemos cual es el problema hice el primer intento lógico, comprar un reemplazo para el ds12887. No salió bien. Esperando más de dos semanas, llego el reemplazo y no funciono. Así que pasamos al plan B.

    Modificación dallas ds12887

    Buscando en el sabelotodo Google encontramos varias soluciones posibles para que el Dallas ds12887 volviera a funcionar sin tener que reemplazar el chip.

    Solo tenemos que "descubrir" los pines ocultos 16 y 20. Para esta tarea podemos utilizar una dremel o similar, creo que es la opción más segura.



    Marcamos la zona donde haremos unos pequeños canales hasta llegar a la chapita metálica.

    Ponemos una gotita de estaño en las chapitas y soldamos un cable negro (-) para el pin 16 y un cable rojo (+) para el pin 20.

    Con un porta pilas para 2 baterías tipo AAA (las chiquiticas) aunque siempre es mejor poner un portapilas para una pila de tipo CR2032 o CR2025 ya que lo podemos poner en la parte superior y ahorrar espacio en el gabinete.

    Como no disponía de este tipo de adaptador, puse el adaptador para las dos pilas AAA.



    El primer intento, evidentemente no funionó. Por suerte era debido a uno de los cables que hacia que las pilas no hicieran un buen contacto, así que se comportaba como si no hubiera pila.

    Acomodamos bien los cables y .... Sublime... ya no aparece el dichoso "Battery lost"

    Ahora si detectaba y retenía los datos referentes al disco duro y, por fin, arranco el sistema original: Windows 95

    Digital Venturis 5100 primer arranque
    Digital Venturis 5100 con ds12887 modificado

    Ahora si tocaba una buena sesión de SPA... Lo bueno es que al no tener ventilador en la CPU, solo en la fuente de alimentación, el interior estaba relativamente limpio.

    Limpieza




    Lo bueno es que no estaba muy sucio, los plásticos exteriores y la fuente de alimentación era lo más sucio que había y como se ve en las fotos no era nada del otro mundo.

    Como consejo, en estas máquinas suelen traer diferentes tornillos para las diferentes mecanizaciones. Para no perderlos o confundirlos puedes volver a colocarlos en su posición y volverlos a quitar para su limpieza. Así evitaras perdidas o forzar las roscas al intentar meter un tornillo que parece que si... pero es un poco más grande.

    Para quitar la parte donde esta la fuente de alimentación de 100W hay que seguir unos pasos indicados en la misma caja, en la parte delantera hay una barra numerada como uno lo deslizamos hacia la derecha y desbloqueamos el conjunto.

    En el mismo bloque, en la parte superior, hay otro indicador numerado como 2 que nos pide que tiremos del conjunto hacia arriba. Suele estar un poco duro, sobre todo si hace tiempo que no se abre.

    Con el bloque abierto en la parte posterior, bajo la fuente, hay un pequeño soporte que dejara el bloque de la fuente fijado. Veremos otra indicación numerada como 3 que nos muestra como hacerlo.

    Por último la cuarta indicación nos indica que tiremos hacia arriba para que el soporte del paso 3 quede fijado en su posición.

    Para cerrar la maquina tenemos que hacer el mimo proceso pero a la inversa.

    Ahora ya tenemos acceso al compacto cableado debido al tamaño de la maquina.

    Originalmente la maquina viene con el HDD en el IDE1 como master y el CDROM en el IDE2 como esclavo. La disquetera, de 3.5" viene instalada en FDD.

    Quitamos todos los cables y ya podemos desmontar la fuente para su limpieza.

    Con todo como un patena, hay que volver a montar todo en la misma posición y con los mismos tornillos.

    Configurando Digital Venturis 5100

    Ahora con todo montado empieza lo bueno!!!

    Quiero recordar que esta máquina solo dispone de 620MB y aunque parezca poco es más que suficiente para correr Windows 95 y los juegos de esa época.

    Para cargar estos juegos y no usar la Gotek para instalar nada (al menos por el momento), usaremos la tarjeta CF con adaptador IDE.

    Después de pelear con la BIOS conseguimos que el arranque fuera desde la unidad C:\ y que el adaptador IDE fuera la unidad D:\

    H2TestW v1.3

    Actualización de BIOS

    ¡¡¡ATENCIÓN!!! Una mala actualización de la BIOS puede dejar bloqueado el ordenador, hazlo solo si estas totalmente seguro de lo que haces y siempre bajo tu responsabilidad.

    Pero no había manera siempre se quedaba bloqueado a la hora de cargar el sistema operativo.

    Tocaba sacar a nuestra amiga Gotek...

    No eran muy compatibles que digamos... Investigando con MS Diagnostics descubrí que la versión de la BIOS era la 2.01 y en "The retro Web" tenían disponibles hasta la versión 2.06 que en teoría ya trae soporte para discos de hasta 5.1GB.

    Con el sistema para generar discos de 1.44MB en Linux tratado anteriormente y se hizo un disco en el que se incluye la actualización, un archivo llamado "000000O9.exe" para para la Versión de BIOS 2.06 solo falta cruzar los dedos y que todo salga bien...

    Iniciamos con el arranque principal en la unidad A:\ y la Gotek con el disco de inicio de MS-DOS 6.22.

    Primero es copiar el archivo 000000O9.exe en el directorio raiz del disco duro (C:\)

    Nos situamos en C:\ y lo ejecutamos.

    Pulsamos en la primera opción con la que crearemos un disco de recuperación de "crisis" por si algo sale mal. Por suerte no fue necesario...

    Con la copia de recuperación de "crisis" hecha y sin salir del programa, ejecutamos la segunda opción llamada "Flash Upgrade the System BIOS" que nos pedirá hacer otro disco donde se ejecutara tanto el arranque como el instalador la próxima vez que se reinicie la máquina.

    Una vez reiniciada la máquina y arrancado el disco de inicio/actualización creado en el paso 2, se abre un programa donde nos recomienda que desactivemos la cache y la gestión de la alimentación y pulsamos enter para continuar

    Empieza la actualización...

    Un minuto y medio después el sistema se reinicio solo y al arrancar ya aprecia la nueva versión, la 2.06 con la que tenemos soporte para discos de 5.1GB.


    No esperes muchos cambios en una actualización de BIOS de un ordenador de esos tiempos, pero la que nos interesa, capacidad para la gestión de discos mayores a 640MB esta disponible desde la versión 2.02.

    Pero la batalla no había terminado, incluso reconociendo el adaptador como IDE con la capacidad de la tarjeta. Seguíamos con el mismo problema.

    Un dato importante es que la tarjeta pese a detectarse como 16GB solo hay 4GB disponibles... cosas de las tiendas chinas.

    Esos 4GB disponibles están particionados en dos unidades de 2GB.

    La primera partición es la primaria y activa y la segunda como extendida de DOS.

    Dicho esto, investigando averigüe que se pueden poner las unidades IDE-CF de manera manual directamente en la BIOS.

    Primero configuramos el apartado Heads a 16 y el apartado Sectors/Track en 63 solo nos falta el apartado Cylinders.

    Cylinders lo sacamos con unas sencillas matemáticas.

    Cylinders = (Capacidad_deseada_en_bytes) / (Headers × Sectors × 512)

    Por suerte esta formula se puede simplicar hasta obtener:

    Cylinders = (Capacidad_deseada_en_bytes) / 516,096

    Ahora si tenemos un disco de 2048:

    (2048 * 1,000,000) / 516,096 = 3968.253

    Hacemos un pequeño redondeo y tenemos que Heads tiene un valor de 3968.


    Una tabla de ejemplo para un disco de 2GB representados en una tabla:

    Parámetro Valor
    Cylinders (Cilindros) 3968
    Heads (Cabezales) 16
    Sectors/Track (Sectores por Pista) 63
    Capacidad Total ~2.047 GB
    Modo LBA (si está disponible)


    Introducimos los valores de manera en manual, guardamos los cambios en la BIOS y reiniciamos el equipo.

    Inicia Windows95... Voy a "Equipo" y ya podemos ver como aparece la unidad D:\ con 2GB de capacidad.


    ✅ Conclusión Final: DEC Venturis 5100

    El DEC Venturis 5100 representa la elegancia técnica de los 90: un equipo compacto con diseño modular, componentes de calidad industrial (chipset Intel 430FX, gráficos S3 Trio64) y la herencia de Digital Equipment Corporation.

    Su restauración preserva no solo hardware, sino un legado donde la fiabilidad primaba sobre el costo. Este equipo, hjoy rejuvenecido con almacenamiento CF y memoria optimizada, demuestra que la buena ingeniería trasciende el tiempo.

    Un icono beige que merece seguir encendido.

    Digital Venturis 5100 (1995)

    Digital Venturis 5100 (1995)
    Digital Venturis 5100 (1995)

    Otros artículos sobre ordenadores retro que te pueden interesar:

    Un saludo a todos y todas, nos vemos en la próximo restauración!!!

    domingo, 10 de agosto de 2025

    Un Pentium 133 en el 2025 Parte 2 Gotek en IBMpc

    Muy buenas a todos los fanáticos y fanáticas de los ordenadores retro!!

    Ahora que el Pentium 133 completamente multimedia está funcionando vamos a desvelar el tipo de software y drivers que se han empleado para devolver a la vida a estos restos de la prehistoria.


    Software:

    Este es el 50% de lo que necesitamos y por el momento lo he encontrado prácticamente todo en Internet archive donde hay prácticamente de todo.


    Puedes encontrar Drivers, sistemas operativos como MS-DOS y Windows95 o juegos, muchos de ellos en español

    Para este proyecto ha sido imprescindible.

    Pero no es oro todo lo que reluce. Para que este software funcione hacen falta disquetes.. disquetes que son difíciles de conseguir y que suelen estar defectuosos. Para esto entra en juego la unidad de disco Gotek.

    El problema es que Gotek en su modo IBMpc solo lee discos de 1.44MB y aunque muchos de los discos que podemos encontrar en Archive.org ya vienen en el formato *.img pero otros muchos solo tenemos la carpeta con el contenido del disco.

    No podemos copiar directamente estos archivos al USB de la Gotek, primero necesitamos crear una imagen de disco, montar la unidad y copiar los archivos a esta nueva unidad.


    Crear imagen de disquete con 1.44MB en Ubuntu

    
    
    # Creamos un directorio en /media
    
    sudo mkdir /media/floppy
    
    
    # dd: Herramienta para copiar y convertir archivos a bajo nivel.
    # if=/dev/zero: Fuente de datos (genera bytes nulos/ceros).
    # of="floppy.img": Archivo de destino (la imagen del disquete).
    # bs=1k: Tamaño de bloque (1 KB por bloque).
    # count=1440: Número de bloques (1440 bloques * 1 KB = 1.44 MB).
    
    dd if=/dev/zero of="floppy.img" bs=1k count=1440
    
    
    # losetup: Asigna archivos a dispositivos de loopback (simulan dispositivos físicos).
    # /dev/loop42: Dispositivo virtual (el número puede variar, ej: /dev/loop0).
    # floppy.img: Archivo de imagen a asociar.
    
    sudo losetup /dev/loop42 floppy.img
    
    
    # mkfs: Comando para crear sistemas de archivos.
    # -t vfat: Tipo de sistema de archivos (FAT32/VFAT).
    # /dev/loop42: Dispositivo a formatear.
    
    sudo mkfs -t vfat /dev/loop42
     
    
    # losetup: Asigna archivos a dispositivos de loopback
    # -d: Flag para "detach" (liberar el dispositivo).
    # /dev/loop42: Dispositivo virtual (el número puede variar, ej: /dev/loop0).
    
    sudo losetup -d /dev/loop42
    
    
    # mount: Asocia un dispositivo o archivo a un punto del sistema de archivos.
    # floppy.img: Archivo de imagen a montar.
    # /media/floppy/: Directorio de montaje (debe existir previamente).
    
    sudo mount floppy.img /media/floppy/
    
    

    Con esto ya tendremos montada la unidad y solo tenemos que copiar los archivos a esa unidad (1.44Mb máx).

    Algunas veces puede dar problema al copiar, intenta copiar los archivos con "sudo".

    El archivo floppy.img lo copiaremos al USB que usamos con la Gotek.


    Configuración de Gotek para IBMpc (MS-DOS)