Skip to content

Releases: LeonardoAliaga/SerialCraft

SerialCraft 0.5.3-beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 02 Nov 04:14
913f746

SerialCraft 0.5.3-beta — Fabric y NeoForge

SerialCraft incorpora NeoForge para Minecraft 26.2 y Java 25, manteniendo Fabric y compartiendo la lógica de placas, señales e interfaz.

Novedades

  • Dos archivos instalables: serialcraft-fabric-0.5.3-beta.jar y serialcraft-neoforge-0.5.3-beta.jar.
  • Nueva página de configuración desde el engranaje superior derecho, disponible antes de conectar una placa.
  • Al conectar: enviar cero, enviar un valor personalizado o restaurar el último valor guardado para el mundo, dispositivo y canal.
  • Al desconectar normalmente: enviar cero, enviar un valor personalizado o conservar el estado sin enviar un mensaje final.
  • Políticas de inicio y cierre independientes, con valores personalizados de 0 a 255 y confirmación al salir con cambios sin guardar.
  • README, descripción inglesa de Modrinth y guía de desarrollo actualizados, conservando las imágenes recientes de la página de Modrinth.

Gracias a @MeerukYang por el reporte y las propuestas de configuración del issue #10.

Instalación

  • Minecraft Java 26.2 y Java 25 o superior.
  • Fabric: Fabric Loader 0.19.3 o superior y Fabric API para 26.2.
  • NeoForge: NeoForge 26.2.0.93 o superior para Minecraft 26.2; no requiere Fabric API.
  • Elige el JAR de tu loader y actualiza clientes y servidor juntos. La conexión entre loaders diferentes no se ha validado.

Los ajustes afectan a canales de E/S de Minecraft hacia el hardware. Los cierres forzados o un cable desconectado no permiten garantizar un mensaje final. Esta versión continúa en beta; las pruebas visuales y con placas físicas siguen siendo comprobaciones manuales.


Commit de origen

SerialCraft 0.5.2-beta

Choose a tag to compare

@github-actions github-actions released this 01 Nov 20:56

SerialCraft 0.5.2 Beta — Logos renovados y bienvenida corregida

Minecraft Java 26.2 · Fabric Loader 0.19.3+ · Fabric API · Java 25+

Cambios

  • Incorpora el rediseño de logos de Leonardo Aliaga: infinito formado por cables jumper en el encabezado, la pantalla de la Laptop, la textura del módulo de E/S y el icono del mod.
  • Sustituye las composiciones anteriores con los logotipos explícitos de Arduino y Minecraft en las dos texturas principales de los modelos. Actualiza también los modelos y la textura de detalle incluidos en el rediseño.
  • Corrige la proporción del logo en la bienvenida (WelcomePage): utiliza las dimensiones reales del PNG, 1038 × 446, en lugar de 779 × 261. La altura del encabezado y el contenido inferior se ajustan a la proporción correcta, conservando el centrado y el desplazamiento.
  • Actualiza el README y la descripción de Modrinth, con notas de versión en español para GitHub y en inglés para Modrinth.

La revisión de imágenes actualizada distingue las sustituciones de esta versión de las capturas, recursos web y texturas históricas todavía pendientes.

Se mantienen Minecraft 26.2, Java 25, los cinco idiomas y el comportamiento de comunicación USB/Wi-Fi.

Instala serialcraft-0.5.2-beta.jar junto con Fabric API para Minecraft 26.2. Esta versión sigue siendo Beta.

Documentación · Reportar un problema


Commit de origen

SerialCraft 0.5.1-beta

Choose a tag to compare

@github-actions github-actions released this 31 Oct 16:38

SerialCraft 0.5.1 Beta — Identidad visual

Minecraft Java 26.2 · Fabric Loader 0.19.3+ · Fabric API · Java 25+

Cambios

  • Reemplaza textures/gui/logo-txt.png por la nueva imagen de SerialCraft proporcionada por Leonardo Aliaga. El encabezado deja de mostrar la composición anterior con los logotipos de Arduino y Minecraft.
  • Ajusta el renderizado de la barra de navegación a las dimensiones reales del nuevo PNG, 1038 × 446, para conservar su proporción, transparencia y centrado.
  • Actualiza la versión, el README y la descripción de Modrinth. Las notas de GitHub se publican en español y las de Modrinth en inglés.
  • Documenta una revisión de los recursos gráficos del mod, la web y la ficha pública de Modrinth en el informe de imágenes y marcas.

La documentación acumulada desde 0.5.0 también incorpora correcciones de URL canónicas, indexación, rutas históricas y cambio de idioma, además de las guías inglesas de señales digitales/analógicas y resolución de problemas.

Alcance de la actualización

Este cambio sustituye el logo del encabezado. Otras texturas y capturas todavía contienen la identidad anterior y están identificadas en el informe; esta versión no constituye una certificación de derechos sobre todas las imágenes. La similitud del nuevo infinito y de otros recursos de marca también requiere revisión.

Se conserva la compatibilidad de 0.5.0-beta, incluidos los mundos, canales de hardware y cinco idiomas. No se modifica la comunicación USB/Wi-Fi ni la lógica de los bloques.

Instala serialcraft-0.5.1-beta.jar junto con Fabric API para Minecraft 26.2. Esta versión sigue siendo Beta.

Documentación · Reportar un problema


Commit de origen

SerialCraft 0.5.0-beta

Choose a tag to compare

@github-actions github-actions released this 26 Oct 16:21
e169b48

SerialCraft v0.5.0 Beta — 0.5.0-beta

Minecraft Java 26.2 · Fabric Loader 0.19.3+ · Fabric API · Java 25+

This beta brings the interface work developed on test and the community's Simplified Chinese translation into one release. SerialCraft connects Arduino, ESP32, Raspberry Pi and other serial or TCP devices with Minecraft through bidirectional hardware signals and game telemetry.

Pre-release: this is a Beta, not a stable release. Back up worlds before upgrading and update the mod on clients and servers together. Graphical UI inspection and tests with physical USB/Wi-Fi boards remain manual checks; automated tests do not certify every hardware setup.

Interface and user experience

  • Horizontal navigation: Home and Boards appear to the left of the original centered SerialCraft logo; Events and Visualize appear to the right. The existing icon atlas, page accents and translucent visual identity are preserved.
  • Home: the connected-device card keeps its randomly selected cat sprite. Connection properties scroll independently, while the bidirectional terminal remains in its own column so messages and command controls stay accessible.
  • Welcome: the connection screen uses vertically centered translucent panels, USB and Wi-Fi method cards, clearer spacing and a separate notice for remembered boards. Connection help and pairing controls remain available.
  • Shared controls: glass headers, borders, button padding, margins and text alignment are consistent across the panel. Navigation and IO editor layout adapt to the available GUI space.
  • Boards, Events, Visualize and the IO module editor: retain their existing functionality with the updated panel styling, including configuration, diagnostics and contextual help. The logo, icons, cat atlas and existing assets are carried forward without a new redesign.

Simplified Chinese — 简体中文

  • Adds zh_cn.json, originally contributed by @SK-Xiaohan in PR #4.
  • Includes the proposed Chinese name 串连世界, alongside the SerialCraft identity. Thank you for helping connect Minecraft and real-world electronics with the Chinese-speaking community!
  • Covers Welcome, Home, navigation, Boards, Events, Visualize, the IO editor, help dialogs, connection messages and dynamic device states.
  • Completes the new Home properties label introduced on test and keeps the terminal's TX, RX and TM prefixes recognizable in Chinese help text. All five locale files contain the same 402 translation keys and compatible Minecraft format arguments.
  • Preserves the contributor's original commit and authorship through a merge into test; credits are also included in the mod metadata and README.

Release and technical checks

  • Uses the Semantic Versioning identifier 0.5.0-beta, propagated from Gradle into the Fabric metadata and JAR filename.
  • Adds automated checks for duplicate localization keys, UTF-8/Unicode, missing translations, format arguments, literal and dynamic UI keys, archive integrity and packaged UI assets.
  • Keeps Minecraft 26.2, Java 25, Fabric Loader/API and Gradle versions unchanged. Hardware channels, saved block IDs and networking behavior are preserved.
  • Publishes the verified JAR as a GitHub Pre-release, with English release notes. Modrinth publication and description updates require an explicit manual opt-in; this release does not publish to other marketplaces.

Download and test

Install serialcraft-0.5.0-beta.jar together with Fabric API for Minecraft 26.2. In Minecraft, select 简体中文(中国大陆) in Language settings to use the Chinese UI.

For source testing in IntelliJ IDEA, check out tag v0.5.0-beta, select JDK 25 as the project and Gradle JVM, import the Gradle project, then run build and runClient. Inspect all pages, scroll areas, tooltips and IO editor sections at several GUI scales; verify USB and Wi-Fi using a physical board.

Documentation · Report an issue


Source commit

SerialCraft 0.4.6-beta

Choose a tag to compare

@github-actions github-actions released this 17 Oct 20:33

SerialCraft 0.4.6-beta

Minecraft Java 26.2 · Fabric · Java 25

Novedades

  • Telemetría del juego hacia la placa desde la pestaña Eventos: estados como vida, hambre y hora, y sucesos como daño o muerte.
  • Pestaña Visualizar con línea de tiempo, vista Sensor y generador de ondas sobre un canal dedicado.
  • Identificación de placas por descriptores USB, anuncios del firmware y banners compatibles. Los adaptadores USB genéricos no se presentan como un modelo confirmado.
  • Emparejamiento Wi-Fi recordado mediante desafío y respuesta HMAC, con opción de olvidar la placa.
  • Panel Inicio renovado con información de la conexión, consola y cambio de baudios mediante Aplicar y reconectar.
  • Editor del Módulo de E/S dividido en Configuración y Diagnóstico, con ayudas ? y confirmación del servidor al guardar.

Correcciones

  • Separación de la muestra recibida, lectura de redstone, resultado lógico y señal emitida. Las compuertas OR, AND y XOR combinan correctamente las entradas.
  • Una muestra recibida mientras la compuerta está cerrada se conserva para cuando vuelva a abrirse.
  • Reenvío de valores TX estables al reconectar y después del arranque USB; invalidación de RX al cambiar de sesión.
  • Paradas por canal que conservan hasta 64 órdenes de apagado distintas sin eliminar otras paradas aceptadas.
  • Canal fijo durante cada ejecución del generador; la parada cancela valores pendientes y solicita cero al canal inicial. Una ejecución anterior no envía órdenes a una sesión nueva.
  • Conexiones USB verificadas, cierre de sesiones y handshakes Wi-Fi más robustos, errores visibles al iniciar el servidor Wi-Fi y textos de bienvenida corregidos en los cuatro idiomas.

Compatibilidad y actualización

  • Actualiza el mod en cliente y servidor juntos: los paquetes internos del Módulo de E/S utilizan nuevos identificadores.
  • Se conservan los identificadores persistidos de bloques y entidades, las recetas y la configuración compatible de versiones anteriores. Revisa canales antiguos inválidos y circuitos que dependían del comportamiento anterior de AND/XOR.
  • El protocolo de hardware sigue usando canal:0..255 y salto de línea. USB usa 115200 baudios por defecto; deben coincidir con el firmware.
  • Los sketches de ejemplo envían la primera muestra, incluidos ceros, cambios e instantáneas periódicas para recuperar RX al recargar módulos.
  • Requiere Fabric API para Minecraft 26.2.

Documentación y alcance

  • Guías, protocolos y tutoriales en español e inglés, con espacios preparados para incorporar fotografías y videos reales.
  • Cada jugador conecta el hardware desde su propio cliente. El canal TCP funciona dentro de una red local y sigue sin cifrar.
  • Las escrituras TX no son confirmaciones de ejecución física. Las colas son acotadas y no garantizan todos los pulsos bajo sobrecarga.

Documentación · Reportar un problema


Commit de origen

SerialCraft Beta v.0.4.3

Choose a tag to compare

@LeonardoAliaga LeonardoAliaga released this 01 Aug 06:44

SerialCraft v0.4.3-beta — Notas de la versión

Minecraft 1.21.11 · Fabric

Esta es la versión con más trabajo interno del proyecto hasta la fecha. Buena parte de los cambios no se ven al jugar: son correcciones de red, de rendimiento y de arquitectura que hacían falta antes de poder recomendar el mod en un servidor.

⚠️ Antes de actualizar

Los sketches de la 0.3.x no funcionan sin cambios. El protocolo cambió en dos puntos: la escala de los valores y la dirección de la conexión Wi-Fi. La sección [Cómo migrar](#-cómo-migrar-desde-la-03x) explica qué tocar.


🔴 Cambios incompatibles

1. Escala unificada 0-255

Antes la salida enviaba 0-255 pero la entrada se recortaba a 0-15. El protocolo era asimétrico: un 200 enviado por la placa volvía convertido en 15.

Ahora el cable habla en 0-255 en ambos sentidos. La conversión a la escala 0-15 de la redstone la hace el mod.

2. El modo digital envía 255, no 1

Con el modo digital, un bloque encendido enviaba 1. Eso obligaba al firmware a saber cómo estaba configurado el bloque dentro del juego: un analogWrite(pin, 1) es un ciclo de trabajo del 0,4 %, es decir un LED que parece apagado.

Ahora envía 255, así que un único analogWrite(pin, valor) sirve para señal digital y analógica. En sentido contrario, cualquier valor entrante mayor o igual que 1 se interpreta como encendido a potencia máxima.

3. El Wi-Fi cambió de dirección y de puerto

Antes la placa levantaba un servidor en el 8080 y Minecraft se conectaba a ella. Ahora es al revés: el mod es el servidor en el puerto 25585, y la placa se conecta como cliente enviando un token de emparejamiento en la primera línea.

4. Un Target Data vacío ya no acepta todo

Un bloque con el identificador en blanco aceptaba cualquier mensaje que contuviera :. Ahora un identificador vacío significa que el bloque ignora todo. No existe el comodín.


🐛 Correcciones importantes

Las placas ya no desaparecen al reiniciar el servidor

Este era el fallo más grave de la 0.3.x. El registro de placas activas solo se poblaba al colocar el bloque a mano. Tras un reinicio del servidor, el registro arrancaba vacío y nada volvía a llenarlo: todas las placas cargadas del disco quedaban invisibles —pestaña vacía, modo entrada muerto— hasta volver a colocar cada bloque una por una.

Ahora las placas se indexan al cargarse del mundo, por dimensión y por dueño.

El mismo registro además nunca soltaba las placas destruidas: una placa volada por TNT, empujada por un pistón o borrada con /fill seguía dentro para siempre, y con ella una referencia viva a su dimensión. Corregido.

Otros fallos funcionales

Fallo Efecto que tenía
El modelo del bloque no se actualizaba con la entrada serial Una señal entrante funcionaba, pero el bloque no lo reflejaba visualmente
Faltaba getDirectSignal Un bloque en modo salida contra un bloque sólido no encendía nada
El lado superior era inalcanzable Se podía configurar por lógica interna pero no pulsar
Un mensaje como "cmd:" lanzaba una excepción Se tragaba en un catch vacío, ocultando también cualquier otro error
Auto-join de hilos al desconectar El hilo lector se esperaba a sí mismo al cerrar por error
Fuga de hilos en la interfaz Un temporizador de la pantalla de inicio solo se cancelaba en una de las rutas de salida
Conexiones fantasma El estado de conexión tenía tres dueños distintos que podían discrepar
Se perdía el foco al escribir La interfaz se reconstruía en cada respuesta del servidor

🔒 Seguridad

Siete puntos que estaban abiertos y ahora no lo están:

Problema Riesgo real
Servidor Wi-Fi sin autenticación Cualquiera en la misma red (aula, cafetería, coworking) podía abrir un telnet y accionar tu redstone
Carga forzada de chunks Los receptores de red usaban coordenadas del cliente sin validar; posiciones aleatorias obligaban al servidor a generar terreno sin límite
Paquetes sin comprobación de dueño Cualquier jugador podía apagar o reconfigurar las placas de otro
Sin límite de ritmo Un Serial.println() dentro de loop() a 115200 baudios genera miles de paquetes por segundo. No hacía falta un cliente modificado: bastaba un sketch mal escrito
Cadenas sin límite en NBT Identificadores de hasta 32 767 caracteres persistidos y replicados a cada cliente
Lectura sin cota Un peer que no enviara salto de línea agotaba la memoria del cliente
Placa sin dueño = pública Las colocadas por comando o dispensador quedaban abiertas a cualquiera

Ahora: token obligatorio, solo direcciones privadas, una sola placa por sesión, líneas acotadas a 256 caracteres, validación de posición y distancia en todos los paquetes, límite de 40 mensajes/s por jugador (ráfaga de 80), identificadores acotados a 32 caracteres, y las placas sin dueño se reclaman para el primer jugador que las opere.

El canal Wi-Fi sigue yendo en texto claro. El token evita el acceso casual dentro de tu red, pero no es cifrado. Es adecuado para una red doméstica o de aula; no redirijas el puerto 25585 en tu router.


⚡ Rendimiento

  • Estados del bloque reducidos de 17 496 a 2 916 (seis veces menos) eliminando dos propiedades que no se usaban ni en el código ni en los modelos.
  • Coste por tick corregido. La comprobación de salida era verdadera siempre, así que cada placa ejecutaba veinte veces por segundo seis consultas de redstone. Con cien placas eran 12 000 consultas por segundo para descubrir que nada había cambiado. Ahora corre cada 2 ticks y solo cuando hay algo que enviar.
  • Deduplicación de salida. Una palanca mantenida encendida envía un mensaje, no veinte por segundo.
  • Cola de mensajes cambiada por una estructura que no copia el array entero en cada mensaje.

🎨 Interfaz

  • Reorganizada en páginas independientes. Antes, añadir una pestaña obligaba a tocar cuatro bloques switch distintos, y olvidar uno era la causa de varias fugas.
  • Recorte de texto correcto: los botones ya no desbordan con traducciones largas.
  • Las insignias miden el texto que contienen; la consola se recorta al ancho disponible.
  • Ya no se pierde el foco del campo de texto mientras escribes.
  • Corregida una carrera en el botón de encendido que podía dejarlo en un estado incoherente.
  • Eliminado el medidor de latencia: usaba una función que requiere permisos de administrador en Linux y macOS, y su alternativa cronometraba abrir una conexión nueva, no la latencia real.

Límites que siguen ahí

Vale la pena decirlos:

  • La lista de placas no tiene scroll. A partir de unas ocho placas, las siguientes quedan fuera de pantalla. Es el techo práctico del mod hoy.
  • La interfaz no se adapta a resoluciones muy pequeñas con la escala de GUI al máximo.
  • No hay confirmación al desconectar.
  • El token no se puede copiar al portapapeles.

🌍 Idiomas

Los archivos de español de España, México y Argentina eran byte a byte idénticos salvo una palabra. Eso no es localización.

Además había unas cuarenta cadenas en español escritas directamente en el código Java —así que la interfaz seguía en español aunque el juego estuviera en inglés—, unas veinticinco claves muertas de pantallas ya eliminadas, faltaban las de los controles (el menú de teclas mostraba el identificador crudo) y varios mensajes pasaban frases completas como si fueran claves de traducción.

Ahora: 121 claves con paridad verificada en cinco idiomas — inglés, español de España, de México (léxico americano), de Perú (nuevo) y de Argentina (con voseo real: "Conectá", "Colocá", "volvé a abrir").

También se quitaron los emojis que la fuente por defecto de Minecraft no sabe dibujar.


📚 Documentación

La guía y la referencia de protocolo estaban etiquetadas como 0.4.3 pero describían el comportamiento de la 0.3.x. Reescritas por completo en español e inglés, con secciones nuevas de errores frecuentes, límites conocidos y alcance en multijugador.

Nuevo: [ejemplos y rutina de prueba](docs/ejemplos/) — tres montajes del mismo circuito (un potenciómetro y un LED) para Arduino Uno R3 por USB, ESP32 por Wi-Fi y Arduino Uno Q con Bridge y Python. Incluyen cableado pin a pin, configuración en el juego, y una rutina de cinco pasos donde cada paso aísla una capa distinta.

También hay [prompts listos](docs/ejemplos/esquemas-ia.md) para generar los esquemas de conexión con una IA de imágenes.


🏗️ Interno

Para quien lea el código:

  • Los int mágicos (ioMode == 1, signalType == 0) sustituidos por enums con codec de red que degrada valores inválidos en vez de corromper el bloque.
  • Eliminada la duplicación: el cálculo de IP local existía dos veces y ya había divergido; el dibujo de bordes, tres veces; el de tarjetas, tres veces con sombras a distinta distancia —de ahí el borde desalineado—; las insignias, cinco veces solo en una pantalla.
  • Colores repetidos por cinco archivos centralizados en un único tema.
  • Estado de conexión con fuente única.
  • Eliminados los mixins de ejemplo, un archivo de configuración que se cargaba y guardaba pero cuyos campos nunca se leían, y una variable que decidía la velocidad de lectura pero a la que nunca se le escribía nada.
  • Enums persistidos por nombre, no por posición, para que reordenarlos no rompa los mundos guardados.

🔧 Cómo migrar desde la 0.3.x

En tu sketch

  1. Quita las comparaciones con 1. Si tenías algo como if (valor == 1) digitalWrite(pin, HIGH);, cámbialo por `analogWrite(p...
Read more

SerialCraft Alpha v0.4

Choose a tag to compare

@LeonardoAliaga LeonardoAliaga released this 06 Apr 01:16
alpha-v0.4

comienzo de la beta v0.4

SerialCraft Beta v0.3.6

Choose a tag to compare

@LeonardoAliaga LeonardoAliaga released this 22 Dec 02:51
6fced83

📦 v0.3.6: La Actualización Visual y Tecnico

¡La versión Beta 0.3.6 ya está disponible para descargar!

Esta actualización marca un antes y un después en la experiencia de uso del mod. Me eh tomado un tiempo para reimaginar por completo la Interfaz de Usuario (UI), enfocándome en la claridad, el minimalismo y la comodidad visual.


✨ Novedades Destacadas

🎨 Rediseño Total de la Interfaz (UI Overhaul)

  • Estilo Minimalista: Eliminamos el ruido visual innecesario. Ahora los menús son más limpios y modernos.
  • Mayor Comodidad: Se han ajustado los contrastes y tamaños para que la navegación sea más intuitiva y menos cansada para la vista durante sesiones largas de juego.
  • Consistencia: Todos los bloques y herramientas ahora comparten un lenguaje de diseño unificado.

🛠️ Registro de Cambios (Changelog)

Cambios Visuales

  • Nueva UI Principal: Diseño plano y minimalista implementado en todos los contenedores.
  • Fuentes y Textos: Mejorada la legibilidad en las descripciones de los ítems.
  • Iconos: Actualizados para coincidir con la nueva estética.

General / Técnico

  • Optimización interna para acompañar el nuevo sistema de renderizado de menús.
    -Compatibilidad con variedad de idiomas (Inglés)
  • Re-estructuración de las logicas de uso.
  • Una guia detallada de cada version publicada

📥 Instalación

  1. Descarga el archivo .jar de la versión 0.3.6
  2. Colócalo en tu carpeta mods.
  3. ¡Disfruta de la nueva experiencia visual!

Nota: Si encuentras errores o problemas de rendimiendo u optimización me alegria leerte en "Issues"!

SerialCraft Beta v.0.2.7

Choose a tag to compare

@LeonardoAliaga LeonardoAliaga released this 10 Dec 20:24

Esta actualización incluye un nuevo modelado 3D a detalle semejante a una placa Arduino en el que se puede interactuar fácilmente y de manera intuitiva. Además de agregar más funcionalidades personalizadas en la lógica y configuración de la placa, incluso ver la lista de placas registrada en la laptop a un ID del usuario para así evitar conflictos en un mundo MULTIJUGADOR. El mod hasta este punto ya es funcional, espero sea del agrado del que desea probarlo.