Skip to main content
Version: ACS CC

Wordle

A Rust-based embedded implementation of the popular word-guessing game.

info

Author: Suliman Edis
GitHub Project Link:https://github.com/UPB-PMRust-Students/proiect-Edis9955

Description

The project replicates the popular Wordle game developed by the New York Times, implemented using Rust on embedded hardware. Players must guess a secret 5-letter English word in 6 tries, receiving feedback on each guess through color-coded hints:

Green: Correct letter in the correct position

Yellow: Correct letter in the wrong position

Gray: Letter not in the word

Motivation

This project is a nice first dip into the world of embedded systems. Wordle is a simple but engaging game, making it a great candidate to explore user interaction on low-power hardware while familirizing myself with Rust in an embedded environment.

Architecture

The core components of the project architecture include:

Game Engine (Rust): Handles word selection, guess evaluation, and game logic.

Input Handler: Receives user input from a connected keypad.

Display Driver: Outputs the game state on an LCD using color indicators. Architecture Overview:

[Keypad/Touch Input] ---> [Input Handler] | v [Game Logic Engine] | v [Display (ILI9341)]

Log

Week 5 - 11 May

Week 12 - 18 May

hardware acquisition debugger wiring and testing display wiring keypad wiring kicad schematic redo display wiring

Week 19 - 25 May

code writing display testing keypad testing keypad implmetnation to write letters

Hardware

The project is built on a Raspberry Pi Pico platform with peripheral components for input, output, and storage. The display provides visual feedback while the keypad serves as the main input method.

Schematics

KiCAD Schematic

Bill of Materials

astatura matriceala 4x4

DeviceUsagePrice
2 x Raspberry Pi Pico 2WThe microcontroller79 RON
Raspberry Pi Ecran LCD ILI9341Display67 RON
Breadboard2 x Breadboard7 RON
4x4 input keypadkeypad7 RON
wires wires for breadboard8 RON
mother-father wireswires for display RON
usb cablecable7 RON

Software

LibraryDescriptionUsage
st7789Display driver for ST7789Used for the display for the Pico Explorer Base
embedded-graphics2D graphics libraryUsed for drawing to the display
randRandom number generationRandom word selection
coloredTerminal color outputColor-coding of letters
display_interface_spiInteface for displayusing the display

display_interface_spi

  1. New York Times Wordle
  2. ILI9341 Driver Resources
  3. Raspberry Pi Pico Documentation