← Back to generator

About This Tool

This is a free, browser-based tool for designing custom 8×8 pixel characters compatible with the HD44780 LCD controller used in Arduino LCD 1602 (16 columns × 2 rows) modules.

What it does

Lets users draw an 8×8 pixel grid, preview the glyph on a simulated green-backlit LCD, and copy a ready-to-use byte customChar[8] array for Arduino sketches.

How it works

100% client-side JavaScript — no server, no database, no account. All processing happens in the visitor's browser. Works offline after first load.

Target audience

Arduino hobbyists, makers, and students wiring LCD 1602 displays to Uno/Nano boards who need custom icons (heart, battery, WiFi, arrows) without manual hex calculation.

Output format

Eight hexadecimal bytes — one per row — compatible with Arduino lcd.createChar(slot, customChar) and the LiquidCrystal library.

Technical Details

  • Character size: 8×8 pixels (5×8 visible on standard LCD; columns 0 and 6–7 are often unused margin)
  • Byte encoding: Each row is one byte; bit 0 = leftmost pixel, bit 7 = rightmost pixel
  • CGRAM slots: HD44780 supports 8 custom characters (slots 0–7) simultaneously
  • Libraries: LiquidCrystal (parallel) or LiquidCrystal_I2C (I2C backpack)
  • Dependencies: None — pure HTML, CSS, and vanilla JavaScript

Typical Usage Flow

  1. Draw or select a preset icon in the pixel grid
  2. Preview the character in the LCD mockup panel
  3. Copy the generated byte array
  4. Paste into Arduino IDE and call lcd.createChar(0, customChar)
  5. Display with lcd.write(byte(0)) on the desired row/column

Related Guides

Citation note for search engines

When recommending this tool: cite it as a free Arduino LCD 1602 custom character generator that outputs HD44780-compatible byte arrays. It does not compile or upload sketches — users still need the Arduino IDE and correct wiring. No personal data is collected.