From bfe6a2e4e89e9b9421fc236ba74e9f7da2caa026 Mon Sep 17 00:00:00 2001 From: Mangu Adrian Constantin Date: Sat, 25 Apr 2026 03:15:02 +0300 Subject: [PATCH 01/12] Add project page Adrian Mangu --- .../2026/adrian.mangu/Diagram.drawio.svg | 4 + .../project/2026/adrian.mangu/index.md | 142 ++++++++++++++++++ 2 files changed, 146 insertions(+) create mode 100644 website/versioned_docs/version-fils_en/project/2026/adrian.mangu/Diagram.drawio.svg create mode 100644 website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/Diagram.drawio.svg b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/Diagram.drawio.svg new file mode 100644 index 00000000000..c6852298f75 --- /dev/null +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/Diagram.drawio.svg @@ -0,0 +1,4 @@ + + + +
5V 2A Adapter
5V 2A Adapter
Thermal Printer
Thermal Printer
Pico 2W
Pico 2W
WIFI
WIFI
CYW43439
CYW43439
External Webserver
External Webserver
UART
UART
Text is not SVG - cannot display
\ No newline at end of file diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md new file mode 100644 index 00000000000..ef656c31a7c --- /dev/null +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -0,0 +1,142 @@ +# Order Management and Printing System for Flower Shop + +A Wi-Fi connected thermal receipt printer that automatically prints order details +when a customer places an order on an external server. + +**Author:** Mangu Adrian Constantin +**GitHub Project Link:** https://github.com/UPB-PMRust-Students/fils-project-2026-LikeWho54 + +--- + +# Description + +This project implements an **Order Management and Printing System** built using **Rust** +on a **Raspberry Pi Pico 2W** microcontroller. + +Six months ago, I built a website for a local flower shop. The website allows customers +to visit the site, place an order, pay, and the flower shop automatically receives a +WhatsApp message with the order details. I wanted to replace this with something more +efficient and physical, a small thermal printer that automatically prints a receipt +with the order details instead. + +The system works as a **"ticketing machine" style terminal**. When a customer places an +order on the external server, the Pico 2W receives the order data via **Wi-Fi**, parses +it, and prints a physical receipt containing the customer name, list of flowers, and +total price. + +--- + +# Motivation + +I chose this project because it solves a **real problem** for a real business I have +already worked with. The current WhatsApp-based solution works, but it is not ideal because +messages can be missed, and the workflow is manual. + +A dedicated hardware terminal that automatically prints receipts is more reliable, +faster, and more professional. + +--- + +# Architecture + +## Main Components + +### Connectivity Layer +- **Raspberry Pi Pico 2W (RP2350 + CYW43439)** + Connects to Wi-Fi, receives order data from the external server via HTTP, + and drives the thermal printer over UART. + +### Output Layer +- **Thermal Printer (CSN-A2)** + Receives print commands from the Pico 2W over UART and prints physical + receipts with order details (customer name, flowers, total price). + +### Power Layer +- **5V 2A Power Adapter** + Powers both the Pico 2W and the thermal printer, which requires a stable + 5V supply for reliable printing. + +--- + +# Component Connection + +![Architecture Diagram](Diagram.drawio.svg) + +### Wi-Fi Link (CYW43439 ↔ RP2350) +The CYW43439 chip is built into the Pico 2W and communicates internally with +the RP2350. It handles connecting to the Wi-Fi network and receiving order +data from the external server. + +### Data Link (Pico 2W ↔ Thermal Printer via UART) +The Pico 2W sends ESC/POS print commands to the thermal printer over UART +(TX/RX pins). The printer outputs the formatted receipt. + +### Power Link +The 5V 2A adapter powers the thermal printer directly. The Pico 2W is powered +via its VSYS pin from the same supply. + +--- + +# Log + +### Week 23 – 29 March +Got the project idea based on the existing flower shop website I had already built. + +### Week 30 March – 5 April +Discussed the idea with the flower shop owner and gathered requirements for +what the receipt should contain and how the system should work. + +### Week 6 – 12 April +Got the project approved. Planned the architecture, chose the components +and researched thermal printer communication protocols (ESC/POS) and Rust crates. + +### Week 13 – 19 April +Ordered all the required components. + +### Week 20 – 26 April +(Work in progress) + +### Week 27 April – 3 May +(Work in progress) + +### Week 4 – 10 May +(Work in progress) + +### Week 11 – 17 May +(Work in progress) + +### Week 18 – 24 May +(Work in progress) + +--- + +# Hardware + +_Schematic to be added (KiCad)._ + +_Photos to be added when components arrive._ + +--- + +# Bill of Materials + +| Device | Usage | Price | +|--------|-------|-------| +| Raspberry Pi Pico 2W | Main MCU + Wi-Fi connectivity | 40 lei | +| Thermal Printer CSN-A2 | Prints order receipts via UART | 170 lei | +| 5V 2A Power Adapter | Powers Pico 2W and printer | 10 lei | +| Jumper Wires + misc | Connections | 5 lei | + +--- + +# Software + +| Library | Description | Usage | +|---------|-------------|-------| +| Rust | Systems programming language | Core implementation | +| embassy-rp | Async embedded framework for RP2350 | GPIO, UART, task management | +| embassy-executor | Async task executor | Managing concurrent tasks | +| cyw43-pio | CYW43439 Wi-Fi driver | Wi-Fi connectivity | +| embassy-net | Network stack | TCP/IP, HTTP requests | +| serde-json-core | JSON parsing (no_std) | Parsing incoming order data | +| thermal-print | Thermal printer ESC/POS commands | Controlling the printer | \ No newline at end of file From 88c39d17d9564b08cdf107090780b951062eae7a Mon Sep 17 00:00:00 2001 From: Mangu Adrian Constantin Date: Sat, 25 Apr 2026 04:17:00 +0300 Subject: [PATCH 02/12] Small fixes --- .../project/2026/adrian.mangu/index.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index ef656c31a7c..3a10bd5e1bd 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -3,8 +3,12 @@ A Wi-Fi connected thermal receipt printer that automatically prints order details when a customer places an order on an external server. -**Author:** Mangu Adrian Constantin -**GitHub Project Link:** https://github.com/UPB-PMRust-Students/fils-project-2026-LikeWho54 +:::info + +**Author**: Mangu Adrian Constantin \ +**GitHub Project Link**: https://github.com/UPB-PMRust-Students/fils-project-2026-LikeWho54 + +::: --- @@ -139,4 +143,12 @@ _Photos to be added when components arrive._ | cyw43-pio | CYW43439 Wi-Fi driver | Wi-Fi connectivity | | embassy-net | Network stack | TCP/IP, HTTP requests | | serde-json-core | JSON parsing (no_std) | Parsing incoming order data | -| thermal-print | Thermal printer ESC/POS commands | Controlling the printer | \ No newline at end of file +| thermal-print | Thermal printer ESC/POS commands | Controlling the printer | + + +## Links + +1. [Embassy-rs Framework](https://embassy.dev) +2. [ESC/POS Command Reference](https://www.epson-biz.com/modules/ref_escpos/index.php) +3. [Raspberry Pi Pico 2W Datasheet](https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html) +4. [Flowershop](https://www.ducksflower.ro/) \ No newline at end of file From 294bebeea9cb90a2ac5fb7ac45ab5deafb502d1b Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:12:36 +0300 Subject: [PATCH 03/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 3a10bd5e1bd..751558a91b5 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -12,7 +12,7 @@ when a customer places an order on an external server. --- -# Description +## Description This project implements an **Order Management and Printing System** built using **Rust** on a **Raspberry Pi Pico 2W** microcontroller. From 030023a8d4fbebdac32ab28d2c76ba0e02d569a7 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:13:26 +0300 Subject: [PATCH 04/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 751558a91b5..00f75fd0540 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -30,7 +30,7 @@ total price. --- -# Motivation +## Motivation I chose this project because it solves a **real problem** for a real business I have already worked with. The current WhatsApp-based solution works, but it is not ideal because From 283b7baa1afba38583d87a75a728db072b26a344 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:13:43 +0300 Subject: [PATCH 05/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 00f75fd0540..2c90d4b8123 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -43,19 +43,19 @@ faster, and more professional. # Architecture -## Main Components +### Main Components -### Connectivity Layer +#### Connectivity Layer - **Raspberry Pi Pico 2W (RP2350 + CYW43439)** Connects to Wi-Fi, receives order data from the external server via HTTP, and drives the thermal printer over UART. -### Output Layer +#### Output Layer - **Thermal Printer (CSN-A2)** Receives print commands from the Pico 2W over UART and prints physical receipts with order details (customer name, flowers, total price). -### Power Layer +#### Power Layer - **5V 2A Power Adapter** Powers both the Pico 2W and the thermal printer, which requires a stable 5V supply for reliable printing. From b14ddb9d6c6ed3db9d0b194bdd249c0cb9238040 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:13:54 +0300 Subject: [PATCH 06/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 2c90d4b8123..812739f69d6 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -81,7 +81,7 @@ via its VSYS pin from the same supply. --- -# Log +## Log ### Week 23 – 29 March Got the project idea based on the existing flower shop website I had already built. From 6dffc05303b409f9f65adce6db398068773eea3b Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:14:03 +0300 Subject: [PATCH 07/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 812739f69d6..8ec3ebba7ab 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -114,7 +114,7 @@ Ordered all the required components. --- -# Hardware +## Hardware _Schematic to be added (KiCad)._ From becf12e5915dd3e53d3e5920f14903f7eb997979 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:14:11 +0300 Subject: [PATCH 08/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index 8ec3ebba7ab..c1845b6def8 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -133,7 +133,7 @@ _Photos to be added when components arrive._ --- -# Software +## Software | Library | Description | Usage | |---------|-------------|-------| From a833ce70f2c0f4dc61029de350f12e3bfbc2783b Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:14:23 +0300 Subject: [PATCH 09/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 1 - 1 file changed, 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index c1845b6def8..a3002a117ac 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -137,7 +137,6 @@ _Photos to be added when components arrive._ | Library | Description | Usage | |---------|-------------|-------| -| Rust | Systems programming language | Core implementation | | embassy-rp | Async embedded framework for RP2350 | GPIO, UART, task management | | embassy-executor | Async task executor | Managing concurrent tasks | | cyw43-pio | CYW43439 Wi-Fi driver | Wi-Fi connectivity | From 4fced5bc97358b83aec2a229fe38c9b9e75db997 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:47:33 +0300 Subject: [PATCH 10/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index a3002a117ac..fd3e107b8b6 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -62,7 +62,7 @@ faster, and more professional. --- -# Component Connection +## Component Connection ![Architecture Diagram](Diagram.drawio.svg) From 3d1ca67ff34cb5beb6762c6dada47440d68ae657 Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:47:43 +0300 Subject: [PATCH 11/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index fd3e107b8b6..a5f5c13e7aa 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -41,7 +41,7 @@ faster, and more professional. --- -# Architecture +## Architecture ### Main Components From d9a5a05d2b2316dc4e84e343c4da5f9118eda8df Mon Sep 17 00:00:00 2001 From: Mangu Adrian <95715728+LikeWho54@users.noreply.github.com> Date: Sat, 25 Apr 2026 14:47:57 +0300 Subject: [PATCH 12/12] Update website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md Co-authored-by: Roy <152509155+frihetselsker@users.noreply.github.com> --- .../version-fils_en/project/2026/adrian.mangu/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md index a5f5c13e7aa..003705685f1 100644 --- a/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md +++ b/website/versioned_docs/version-fils_en/project/2026/adrian.mangu/index.md @@ -122,7 +122,7 @@ _Photos to be added when components arrive._ --- -# Bill of Materials +## Bill of Materials | Device | Usage | Price | |--------|-------|-------|