Skip to the content
PCBKitNew board
2 layers42 × 20 mm003-UART-1602, the printed circuit board in 3D

Standard 1602 LCD Controller using a CH32V003, with UART/RS232 Receiver

Size
42 × 20 mm
Copper layers
2
Thickness
1.6 mm
Parts
17
Nets
30
Pads
71
Tracks, vias
74, 16
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
6 Dec 2024
Updated
1 Jan 2025

Overview

003-UART-1602 is an open-source printed circuit board by ADBeta, from the ADBeta/003-UART-1602 repository on GitHub, published under the MIT licence. It is a 2-layer board of 42 × 20 mm with 17 parts on 30 nets, routed with 74 tracks and 16 vias.

It is built around the AO3400A, AO3401A and BAT54S. Its parts include 3 capacitors, 2 resistors, 2 transistors, 1 IC and 1 diode. It belongs with the interfaces and adapters and lEDs and displays boards and the RISC-V boards of this library.

Main components

3

README

README.md

003-UART-1602

UART/RS232 Enabled controller for a basic 1602 Monochrome LCD, in 4-bit mode using the CH32V003 - TSSOP-20 MCU
Features:

  • Selectable Baudrate
  • Backlight Control using UART or Hardware override
  • 4-bit LCD Control protocol support
  • Automatic Line Scroll
  • Operation down to 2.7v
  • LCD Contrast Charge Pump
  • Advance Display Control over UART
Schematic
PCB_Front PCB_Back

Display Operation

The display will read any incoming UART or RS232 Data and print it to the screen in realtime - If the edge of the screen is exceeded, the display will drop incoming data.
When Line Feed is received, and the Display is already on Line 2, the display will Scroll Down, so the line being printed to remains as Line 2

See Control Characters for a list of control commands that can be used for the display

Startup Conditions

When the Display is powered on, and before it receives any UART data, the device is in the following state:

  • LCB Backlight OFF
  • Display Configured and blanked

Selectable Baudrate

Receiver Baudrate is selected via the DIP-Switches onboard.
The setting is checked once a second so the setting can be changed on the fly.

text
B1 B0  Baud
0  0   4800
0  1   9600
1  0   115200
1  1   460800

Low Voltage Operation

There is a negative charge pump onboard that provides a near-rail negative voltage, that is fed to one end of the contrast selection Potentiometer.
These LCDs are only officially rated at 5v, so use lower voltages AT YOUR OWN RISK.
To disable the charge pump, do not populate the components, and short the JMP_V0 Jumper.
The Minimum Voltage for the unit is 2.7v

Control Characters

BELL 0x07 - Flashes the Backlight quickly for 3 Seconds
LF 0x0A - Feeds line down, keeping Column Position
CR 0x0D - Returns to the First Column on the current line
DC1 0x11 - Device Control 1, Turns Backlight On
DC2 0x12 - Device Control 2, Turns Backlight Off
DC3 0x13 -
DC4 0x14 -
ESCAPE 0x1B - Clears the Screen and returns to position 0,0

Any Control Characters not mentioned above will be ignored.

Pinout

text
PA1  Baud Select 1
PA2  Baud Select 2

PC0  ---
PC1  LCD_RS  Register Select
PC2  LCD_RW  Read/Write
PC3  LCD_EN  Enable
PC4  LCD_D4  Display Data Pin 4
PC5  LCD_D5  Display Data Pin 5
PC6  LCD_D6  Display Data Pin 6
PC7  LCD_D7  Display Data Pin 7

PD0  Backlight Control
PD1  !!Reserved for SWIO!!
PD2  --
PD3  --
PD4  Charge Pump PWM
PD5  TX  UART Transmit (Not Connected)
PD6  RX  UART Receive
PD7  Reserved for NRST

MkII PCB Partslist

text
C1    0603 1uF 10V
C2    0603 1uF 10V
C3    0603 1uF 10V
R1    0603 4K7
R2    100K 5mm x 5mm Potentiometer
D1    BAT54S
Q1    AO3401 P-Ch
Q2    A03400 N-Ch
U1    CH32V003
SW1   1.27mm 2P DIP Switch

TODO

  • Device Contol 3 and 4 Behaviour

ADBeta (c) 2024 - 2025

Parts

17
QtyValueFootprintReferences
31uFCapacitor_SMD:C_0805_2012MetricC1, C2, C3
1100KPotentiometer_THT:Potentiometer_Piher_PT-6-V_VerticalR2
14K7Resistor_SMD:R_0805_2012MetricR1
1AO3400APackage_TO_SOT_SMD:SOT-23Q2
1AO3401APackage_TO_SOT_SMD:SOT-23Q1
1BAT54SPackage_TO_SOT_SMD:SOT-23D1
1BAUD_SELButton_Switch_SMD:SW_DIP_SPSTx02_Slide_Copal_CHS-02B_W7.62mm_P1.27mmSW1
1CH32V003Package_SO:TSSOP-20_4.4x6.5mm_P0.65mmU1
1CONN_INPUTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1GNDTestPoint:TestPoint_Pad_D1.0mmTP2
1JMP_BLJumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP2
1JMP_V0Jumper:SolderJumper-2_P1.3mm_Open_RoundedPad1.0x1.5mmJP1
1SWIOTestPoint:TestPoint_Pad_D1.0mmTP3
1VINTestPoint:TestPoint_Pad_D1.0mmTP1
1WC1602AConnector_PinHeader_2.54mm:PinHeader_1x16_P2.54mm_VerticalDS1

Questions

How big is the 003-UART-1602 PCB?

It measures 42 × 20 mm and has 2 copper layers, 1.6 mm thick.

What parts does the 003-UART-1602 use?

17 parts, built around the AO3400A, AO3401A and BAT54S. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the 003-UART-1602 KiCad files?

From the ADBeta/003-UART-1602 repository on GitHub, at the commit this page was made from: the board is PCB/003-UART-1602.kicad_pcb and its schematic PCB/003-UART-1602.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the 003-UART-1602 design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers87 × 106 mmAlphax 2ch, the printed circuit board in 3D

    Alphax 2ch

    rusefi/alphax-2chan

    24 pin / 2 channel ECU

    172 parts4
  • 4 layers96.5 × 114.7 mmAlphax 4ch, the printed circuit board in 3D

    Alphax 4ch

    rusefi/alphax-4chan

    Designed using KiCAD 7. Powered by Hellen One and rusEFI

    292 parts3
  • 4 layers80 × 106 mmNodeHardware, the printed circuit board in 3D

    NodeHardware

    AleksaHeler/FlexNode

    FlexNode is a DIY "smart home" system with a single hub and multiple flexible and customizable nodes

    220 partsGPL-3.0
  • 4 layers87 × 106 mmHpe mini, the printed circuit board in 3D

    Hpe mini

    D0kRay/hpe-mini

    Clean Hellen One starter structure for a custom rusEFI-compatible PCB.

    172 partsGPL-3.0
  • 2 layers74 × 124.5 mmFluke 87v clock v1, the printed circuit board in 3D

    Fluke 87v clock v1

    miekush/fluke-87v-alarm-clock

    ATMEGA328P based Alarm Clock PCB for the Fluke 87V

    74 parts
  • 4 layers44 × 64 mmESPDrive, the printed circuit board in 3D

    ESPDrive

    Ehryk/ehryk.github.com

    Code

    58 parts2
  • 4 layers100 × 100 mmAmod c, the printed circuit board in 3D

    Amod c

    gallicchio/AMOD-and-RFMOD

    The tutorial's 2x12 adapter (/mudd/133electronics/icepi-zero-dac-adc/adapterboard/) with a 2 x 6 right-angle Pmod socket on a 15 mm extension of its right-hand end, so an Icepi Zero can drive AMOD-A's and RF-MOD's Pmod…

    211 parts
  • 2 layers100 × 93 mmSpeeduino base, the printed circuit board in 3D

    Speeduino base

    Tjeerdie/SPECTRE

    Speeduino compatible engine control unit (ECU) based around black STM32F407VET6 board.

    213 parts59GPL-3.0