Wiznet makers

Aimee0

Published September 17, 2025 ©

28 UCC

16 WCC

8 VAR

0 Contests

0 Followers

0 Following

Original Link

JMRITrainNode

A Raspberry Pi Pico-based I/O node that lets JMRI (model-railroad control software) talk to up to 16 accessories—servos, NeoPixels, relays, etc.—over MQTT.

COMPONENTS Hardware components

WIZnet - WIZnet Ethernet HAT

x 1


Raspberry Pi - Raspberry Pi Pico

x 1

Software Apps and online services

micropython - MicroPython

x 1


PROJECT DESCRIPTION

An MQTT protocol-based JMRI-compatible I/O controller built with a Raspberry Pi Pico and a WIZnet Ethernet HAT. Each node natively supports up to 16 turnouts, and with user extensions, it can support even more.

MQTT 프로토콜을 기반으로 구축된 JMRI 호환 I/O 컨트롤러로 Raspberry Pi PicoWIZnet Ethernet HAT을 사용하며 ,각 노드는 기본적으로 최대 16개의 턴아웃(철도분기기)을 지원하고 사용자 추가 기능을 사용하면 더 많은 턴아웃을 지원할 수 있습니다.

JMRI?

JMRI (Java Model Railroad Interface) is an open-source software framework for controlling and automating model railroads. As its name suggests, it is developed in Java, and it supports integration with various hardware to enable control, automation, signaling systems, and management of Digital Command Control (DCC).

JMRI(Java Model Railroad Interface)는 모형 철도를 제어하고 자동화하기 위한 오픈소스 소프트웨어 플랫폼입니다. 실제 철도 시스템을 모형 환경에서 재현할 수 있도록 설계된 도구입니다. 이름에서 알 수 있듯이 Java로 개발되었으며, 다양한 하드웨어와의 통합을 지원하여 제어, 자동화, 신호 시스템, 그리고 디지털 명령 제어(DCC)의 관리 기능을 제공합니다.

Key Features

Platform Independence

Java-based → runs on Windows, macOS, and Linux seamlessly

Hardware Compatibility

Supports a wide range of DCC/control hardware such as Digitrax, Lenz, NCE, MERG, OpenLCB (LCC), and CAN-based systems.

GUI Tools

- PanelPro: Design and control track diagrams and signaling systems
- DecoderPro: Configure and program decoders
- OperationsPro: Manage freight operations and scheduling

Automation

Scripting support using Python/Jython. Enables train automation, collision avoidance, and route optimization

Network Integration

Provides MQTT, Web Server, and JSON API interfaces to connect with external software and hardware

Community

Developed and extended by a global community of model railroad enthusiasts. Free and open-source (GPL license)

플랫폼 독립성

Java 기반 → Windows, macOS, Linux에서 원활하게 실행됩니다.

하드웨어 호환성

Digitrax, Lenz, NCE, MERG, OpenLCB(LCC), CAN 기반 시스템 등 다양한 DCC/제어 하드웨어를 지원합니다.

GUI 도구

  • PanelPro: 선로 다이어그램과 신호 시스템을 설계하고 제어
  • DecoderPro: 디코더를 설정하고 프로그래밍
  • OperationsPro: 화물 운송과 스케줄 관리

자동화 (Automation)
Python/Jython을 활용한 스크립트 지원을 제공합니다. 이를 통해 기차 자동화, 충돌 방지, 경로 최적화가 가능합니다.

네트워크 통합 (Network Integration)
MQTT, 웹 서버, JSON API 인터페이스를 제공하여 외부 소프트웨어 및 하드웨어와 연결할 수 있습니다.

커뮤니티 (Community)
전 세계 모형 철도 애호가 커뮤니티에 의해 개발 및 확장되고 있습니다. 무료이자 오픈소스(GPL 라이선스)입니다.

Project Description

System Architecture

  • JMRI publishes topics such as jmri/track/turnout/4, and TrainNode subscribes to them to drive the OUTPUT device, then publishes the INPUT device status back to MQTT.
  • All settings live in config.json (broker, credentials, device list, per-device params).
  • JMRI는 jmri/track/turnout/4와 같은 토픽을 발행(publish)하고, TrainNode는 이를 구독(subscribe)하여 출력(OUTPUT) 장치를 구동합니다. 이후 입력(INPUT) 장치 상태를 다시 MQTT토픽을 통해 전달합니다.
  • 모든 설정은 config.json 파일에 저장되며, 여기에는 브로커(broker), 인증 정보(credentials), 장치 목록(device list), 장치별 매개변수(per-device params)가 포함됩니다.

Setup (Fast Path)

https://github.com/nhjrobotics/JMRITrainNode/blob/master/README.md

  1. MQTT broker – install Eclipse Mosquitto and enable JMRI’s MQTT module.
  2. Flash firmware – load WIZnet’s MicroPython UF2 on the Pico.
  3. Configure – copy & edit config_example.jsonconfig.json.
  4. Deploy – drop the code/ folder onto the Pico; it reboots and connects.
  1. MQTT 브로커 – Eclipse Mosquitto를 설치하고 JMRI의 MQTT 모듈을 활성화합니다.
  2. 펌웨어 플래시(Flash firmware) – WIZnet의 MicroPython UF2를 Pico에 로드합니다.
  3. 구성(Configure)config_example.json을 복사하여 config.json으로 이름을 바꾸고 편집합니다
  4. 배포(Deploy)code/ 폴더를 Pico에 복사하면, 자동으로 재부팅되고 연결됩니다.

Features

  • Deterministic wired link – W5100S Ethernet avoids Wi-Fi latency and RF noise.
  • JSON-based scalability – add accessories without touching code.
  • JMRI-native topics – reuse existing control panels and LogixNG rules.
  • Open hardware/software – GPL-3.0 code; Pico pin-compatible board.
  • 결정적 유선 연결(Deterministic wired link) – W5100S 이더넷을 사용해 Wi-Fi 지연(latency)과 RF 잡음을 피할 수 있습니다.
  • JSON 기반 확장성(JSON-based scalability) – 코드를 수정하지 않고도 액세서리를 추가할 수 있습니다.
  • JMRI 네이티브 토픽(JMRI-native topics) – 기존 제어 패널과 LogixNG 규칙을 그대로 재사용할 수 있습니다.
  • 오픈 하드웨어/소프트웨어(Open hardware/software) – GPL-3.0 라이선스의 코드, Pico 핀 호환 보드 제공.

 

Documents
Comments Write