βοΈ Embedded system that instantly visualizes software build statuses via TFT display, LEDs, and web interface.
Buildwave is a real-time embedded build monitoring system using an Arduino microcontroller.
It combines networking, visual feedback, and hardware interaction to provide instant insights into software build statusesβboth visually (LCD + LEDs) and via an HTTP-based web interface.
Ideal for CI/CD pipelines, devops teams, or classroom demonstrations of embedded system + software integration.
- πΊ TFT LCD Display β Shows live build info: project, version, user, result, description
- π Web Interface β Accepts HTTP POST requests with build status in JSON
- π΄π’ LED Indicators β Red for failure, green for success
β οΈ Error Display β Handles and displays malformed or missing data- π§ Smart Feedback β Displays human-readable messages and diagnostics
Component | Description |
---|---|
π» Microcontroller | Arduino UNO (or compatible) |
π Networking | Ethernet Shield + HTTP Server |
πΊ Display | TFT LCD using Adafruit GFX + TFTLCD libs |
π JSON Parser | ArduinoJson |
π§΅ Threading | Thread library for timed tasks |
π LEDs | For visual success/failure signal |
Buildwave/
βββ BuildWave.ino # Main Arduino sketch
βββ README.md # Project documentation
βββ .gitattributes # Line-ending normalization
-
Connect Arduino to your PC (via USB).
-
Mount the Ethernet Shield onto Arduino.
-
Wire the TFT LCD as per your screen model and pin mapping in code.
-
Connect:
-
π’ Green LED (success) to pin 3
-
π΄ Red LED (failure) to pin 10
-
Install Arduino IDE β€ Download here
-
Install Required Libraries
-
Adafruit GFX
-
Adafruit TFTLCD
-
ArduinoJson
-
Thread
-
(Use Library Manager inside Arduino IDE)
-
Upload the Code
-
Open BuildWave.ino
-
Adjust IP address to match your network
-
Upload to board via USB
-
After uploading:
-
The Arduino runs a web server on port 80
-
LCD displays build status live
-
Send HTTP POST requests to update status
-
LEDs reflect build result (β green = success, β red = failure)
Send an HTTP POST to the Arduino's IP address with the following payload:
{
"stat": "s",
"proj": "Project X",
"build": "Build v1.2",
"usu": "John Doe",
"desc": "Build completed successfully."
}
-
stat: "s" (success), "f" (failure), or "p" (in progress)
-
proj: Project name
-
build: Build version/label
-
usu: User/owner of build
-
desc: Optional description (esp. for failures)
-
π‘ Add Wi-Fi support (ESP32 version)
-
π» Web dashboard for history & analytics
-
π Authenticated endpoints
-
π Add buzzer for audio alert
We welcome your ideas and PRs!
-
Fork this repo
-
Create a branch: git checkout -b feature/your-feature
-
Commit & push
-
Open a pull request with your changes
- π§ [email protected]
- π @Shristirajpoot
Released under the MIT License β see LICENSE for details.