Commander X16 921.6Kbps Serial & ESP32 Network Card


SKU: TECX16SERESP Category: Tags: , ,


** Please note, there is an update for the card which fixes an issue where some users are unable to switch from command to stream mode.  This update also fixes an issue upon disconnecting manually from BBSs and allows setting the baud rate to 921600 max on ZiModem.   There are some known issues with ANSI rendering which may require another update, but there is no fix at this time.  When available, it will be posted here.

Download the update here: X16 Serial/ Network ESP32 Update

The X16 Serial Card is based on a dual high-speed UART capable of running up to 921.6Kbps.  Relive your glory days or experience BBS connectivity for the first time with the integrated ESP32 microcontroller which acts as your connection to the Internet!

  • Physical Serial Port with 9-Pin Male Connector (DE9 / DB9)
  • High-speed RS-232 Transceiver IC
  • Full RS-232 Hand-Shaking support RX/TX, RTS/CTS, DSR/DTR, CD & RI
  • Designed to Interface with Modems & Serial Equipment New & Old
  • Wi-Fi Network Connectivity provided via an ESP32-WROOM-U
  • Bo Zimmerman’s Zimodem Preinstalled to allow Terminal/Network Access
  • External 6dBi Antenna included using a standard SMA Connector
  • Baud-Rates selectable from 50-921.6Kbps
  • 10 Selectable IO Ranges available via DIP Switch (default – IO7 Low – $9FE0-$9FEF)
  • NMI/IRQ selectable for interrupt via jumper (default – IRQ)
  • Available with a High or Low-Profile Bracket

David Murray has written an excellent Terminal Program for the Commander X16 which can be downloaded here: ROMTERM.ZIP

The X16 Terminal program may be used to connect to the Internet via the ESP32. The Serial port may be used with a modem or as a terminal for a vintage computer!  Like any serial device, a null-modem cable may be needed. Some research or custom cabling may also be required depending on your application.

While the Terminal is still in early development, it already supports ASCII, ANSI and CBM Graphics modes. There are still many BBSs active online. This site is a great start: Telnet BBS Guide

Terminal usage notes:
Once the card is inserted, power your system on and run ROMTERM.PRG.  It will automatically open the configuration menu and attempt to locate the serial card.  Assuming it is set to the default address of IO7-Low, you should see both 9FE0 & 9FE8 light up in yellow text.  The first port is the network interface and the second port is the physical serial port.  The network interface defaults to 115,200 baud with RTS/CTS flow control enabled.  Once you have made your selections press enter.

To confirm that you are communicating with the network interface, type ‘ati’ and press enter, you should see the Zimodem welcome banner.

To configure your Wi-Fi interface, type ‘at+config’ and press enter.  This interface not only allows you to configure your network connection but also a host name, configure flow control, local-echo, and create stored phone-book entries and even enable your own telnet listener for incoming connections.

Some other common and helpful commands:
atd””  – replace the name with the server you want to connect to, and replace 23 with the port, if it’s not the standard telnet port.
a/ – repeat the previous command.
atb <baud_rate> – replace baud_rate with the setting you like.  For example: atb 9600.  Once you change the speed, press Alt-T to go into the terminal configuration and change the speed to match your new setting.
at&w – write configuration to memory to save new settings.

For the complete command set see: Zimodem (

Programmer Notes:
The onboard UARTs use a register sets compatible with the 16450 commonly used on PCs and others vintage systems.  More information may be found here: TL16C2550

The ZiModem repository has a flag to compile for use on the X16 Serial Card.  In addition to RX/TX, RTS/CTS, DSR/DTR, RI & CD connections, there are two additional input-only option pins connected to the ESP32 from the UART.  Option pin A is defined in Zimodem to allow you to switch from stream-mode back to command-mode while connected.  This allows you to programmatically switch between modes if you desire.  ROMTERM.PRG sets Option pin A high,which effectively disables it.  Setting the pin low will force command mode if connected.  It is not in use yet but may be later.  Likewise, Option pin B is physically connected but unused.  Please note you need to set Option Pin A (OPA) high in your code for Zimodem to automatically switch from stream to command mode.

The UART crystal is 14.7456MHz and the datasheet states that it is divided by 16 internally to derive the base speed.  As a result, the max speed is 921600 baud.  To derive lower baud rates, you may set the baud divisor.  For example, 9600 baud would use a divisor of 96 (921600/96=9600), 19200 would be 48, and 300 is 3072.  Most common baud rates can be derived with this crystal.  See the datasheet for more information.

While no official convention has been set, IO7-low is the default IO we have defined for the serial card.  If a second serial card is used, we would recommend using IO7-high.  This will allow for some convention in programming to locate serial or network devices.  This is a 2MHz IO, which should be more than enough for the UARTs to transmit at maximum speed.

Additional information

Weight N/A
Dimensions N/A

Low Profile, High Profile