|
KiCADKicad
|
SmartMatrix: networked parallel printer interface
The Raspberry Pi Pico 2W-based SmartMatrix adapter uses the microcontroller to convert serial or network input to parallel output for printing to a dot matrix printer - in my case an Epson MX-80 F/T III.
The BOM provided for this project includes all the surface-mount parts. You will need to add a Raspberry Pi Pico 2W, a right-angle 25-pin D-sub connector and header pins for the I2C interface.
Network interface: The Pico connects to your wifi and runs a socket server on port :9100 (chosen to be compatible with HP JetDirect devices). Any byte sent to the device's IP address on that port gets sent to the printer. All you need on your computer is a printer driver based on the JetDirect protocol and configured to output to the SmartMatrix's IP address. This is very simple to set up on Linux using lpadmin. Then, from that Linux box, assuming you've named the driver something like 'mx80' and you want to printer a file called 'myfile.txt', you enter on the command line:
lp myfile.txt -d mx80
Your text will appear on the printer as if by magic, transported over the aether by wifi. No wires needed.
You can also access this interface from any programs you write that want to, say, log data. I have a Go-based program running on my home server that handles printing files and I've written a front end to this on the home intranet server.
Serial interface: Connect the Pico to your computer via a standard USB cable and it appears as a serial interface. If you fire up a terminal program such as Minicom, Coolterm or whatever, and set it to 115,200 baud, 8N1, you'll find yourself talking to the command line interface (CLI) of the SmartMatrix. There's more information below.
There's also an I2C port for a small OLED screen (SSD1306).
SERIAL PORT
When you attach the Pico to your computer via a USB cable it presents itself as a serial port. You can use any serial terminal program to connect to the SmartMatrix with settings of 115200 baud, 8N1.
Via this terminal, you can issue a number of commands. Currently we have:
- HELP : to get this list of commands.
- STAT : to get a printer status report.
- RESET : to reset the printer (not the SmartMatrix).
- SSID : to configure the SSID setting for the wifi.
- PASSWD : to configure the password for the wifi.
- CONN : to initiate a wifi connection.
- AF_ON : to turn on the Autofeed setting (the default is off).
- AF_OFF : to turn off the Autofeed setting.
- PRT : to enter serial printing mode (see below).
Serial Printing Mode
If you send the string PRT down the serial connection, any further bytes sent to the SmartMatrix over the serial connection will get forwarded directly to the printer until you send an ASCII 0x04 character (End of Transmission, EOT).
This function is mostly meant for use with programs, but you can probably configure your terminal software to send an EOT (I did this using macros in Coolterm).
As soon as the SmartMatrix gets the EOT, the serial connection switches back into the normal command line interface mode.
WIFI CONFIG
The SmartMatrix needs your wifi credentials. It stores these (unencrypted) at the top of flash memory so that they are available even after rebooting or re-powering the device.
You have two ways of configuring the device.
Edit the lib/wifi_creds.h file: By default, this has empty strings for the SSID and password settings. Enter your credentials here (paying attention to capitalisation and keeping the quote marks) and your configuration will be written automatically to the SmartMatrix when you compile and flash the program.
The contents of the file will look something like this:
#define WIFI_SSID "my_SSID" #define WIFI_PASSWORD "my_password"
Enter the credentials via the serial interface: There is a command like interface available over serial, through the USB port on the Pico (see above).
From this interface type the following commands:
SSID to set the SSID (not complicated, is it?).
PASSWD to enter the password.
CONN to get the Pico to connected to your wifi.
The credentials are stored in non-volatile memory, so you need to do this only when connecting to a different network.
THE HARDWARE
The SmartMatrix hardware device largely consists of the Raspberry Pi Pico 2W, some ICs used as level shifters and buffers/drivers, a 25-pin D-sub socket for the printer cable, a reset button and a few blinkenlights.
SmartMatrix: networked parallel printer interface
Project images are for reference only. Actual production is based on the manufacturing files on the project page.
Please review the designer's notes (e.g., PCB thickness) and select the appropriate options.
PCBWay is not responsible
for issues caused by unsuitable parameter selections.
For more important ordering information, please refer to
Read More
Raspberry Pi 5 7 Inch Touch Screen IPS 1024x600 HD LCD HDMI-compatible Display for RPI 4B 3B+ OPI 5 AIDA64 PC Secondary Screen(Without Speaker)
BUY NOW- Comments(0)
- Likes(1)
-
(DIY) C64iSTANBUL
Sep 09,2026
- 0 USER VOTES
- YOUR VOTE 0.00 0.00
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
More by Steve Mansfield-Devine
-
SmartMatrix: networked parallel printer interface
The Raspberry Pi Pico 2W-based SmartMatrix adapter uses the microcontroller to convert serial or net...
-
ATmega4809-A Breakout Board
A breakout board that allows you to easily work with the AVR 0-series ATmega4809-A microcontroller. ...
-
Infrared IoT hub for home automation - ESP32 version
I created this as a way of experimenting with using IR signals to communicate with Internet of Thing...
-
Programmable Mist Maker - XIAO / QT PY Extension
1976 2 2 -
RadioHAT - Raspberry Pi radio development platform
1685 0 3 -
QWIIC-VL53L4CD Time-of-Flight Distance Sensor Module
1905 0 2 -
-
-
ARPS-2 – Arduino-Compatible Robot Project Shield for Arduino UNO
3926 0 6 -
-
A Compact Charging Breakout Board For Waveshare ESP32-C3
4649 3 8 -
AI-driven LoRa & LLM-enabled Kiosk & Food Delivery System
5459 2 2 -







