2025-09-06 16:11:19 +02:00
2025-09-06 20:49:46 +02:00
2025-09-06 16:11:19 +02:00
2025-09-06 09:49:26 +02:00
2025-09-06 16:11:19 +02:00
2025-09-06 16:11:19 +02:00
2025-09-06 17:18:15 +02:00
2025-09-06 20:49:46 +02:00
2025-09-06 16:11:19 +02:00
2025-09-06 16:11:19 +02:00

CrustCraft

This project aims to replace the existing thermostat of a G3Ferrari Pizza Oven with an ESPchip based control system, thereby improving precision, responsiveness, and overall temperature regulation.

Happy baking! 🍕🛠️

Prerequisites

Item Description
ESP32 Dev Board Any WiFienabled chip with at least 4 GPIO pins will do
MAX6675 KType Thermocouple Only a Ktype thermocouple can withstand the temperatures required
5V Relay Module Atleast 10A
Power Supply 5V / 2A AC-DC adapter
Connecting Wires Silicone heat resistant wiring

Clone the Repository

git clone https://github.com/vincvdwal/crust-craft/
cd crust-craft

Installing PlatformIO

VSCode Extension

Open VSCode.

Go to Extensions → Search for “PlatformIO IDE” → Install. Restart VSCode → PlatformIO panel appears on the left.

Project Configuration

Open the project:

Platform Command VSCode Doubleclick crust-craft folder or open > File → Add Folder to Workspace.

Edit platformio.ini (shown below you can adjust as needed):

[env:esp32dev]
platform = espressif32
board = esp32dev
framework = arduino

; Optional environment for ESP8266
[env:esp8266]
platform = espressif8266
board = nodemcuv2
framework = arduino

Building the Firmware

Click the “Build” icon (checkboard) in VSCodes PlatformIO toolbar. The output will be displayed in the Build Log pane. Success → youll see: "Build Done and an firmware.bin file under .pio/build."

Uploading to the ESP via VSCode

Press “Upload” (righthand arrow icon) in the PlatformIO bar → It will compile (again if necessary) and flash to the device.

Serial Monitor

Click the “Monitor” icon (plug + arrow) or Ctrl+Alt+M

Custom Configuration WiFi Credentials

The firmware stores your WiFi SSID & password in secrets.h.

Copy the example or create a new file

cp src/secrets.example.h src/secrets.h

And replace the following with your Wi-Fi credentials

// Replace with your network credentials
const char *ssid = "WIFI_SSID";
const char *password = "WIFI_PWD";

Installing the filesystem

Use NPM to install all packages used for the website

npm i

Developing the filesystem

For developing the FS you can use the following command:

npm run dev

Building and flashing the filesystem

Create the ESPFS image

npm run build

This command writes all of your web assets (HTML, JS, CSS) into a data/ directory

Upload the image to the ESP32

In the PlatformIO toolbar, hit "Build Filesystem Image" to pack the data/ dir into a flashable filesystem image. Afterwards, click "Upload Filesystem Image" to send the image to the chip.

OTA Updates

The firmware can also be updated over the air. Once the device is connected to your local network, navigate to its IP address (e.g., http://192.168.1.50/update). On that page youll find an upload form for the firmware binary, and another for the filesystem image. Simply select the new files and click Upload; the ESP32 will flash them via WiFi.

Acknowlegdements

This project would not have been possible without the awesome, opensource libraries below.

Library GitHub URL License
adafruit/MAX6675 library https://github.com/adafruit/MAX6675-library BSD
bblanchon/ArduinoJson https://github.com/bblanchon/ArduinoJson MIT
ayushsharma82/ElegantOTA https://github.com/ayushsharma82/ElegantOTA AGPL-3.0
ESP32Async/AsyncTCP https://github.com/ESP32Async/AsyncTCP LGPL-3.0
ESP32Async/ESPAsyncWebServer https://github.com/ESP32Async/ESPAsyncWebServer LGPL-3.0

ToDo

Display

  • Add capacative LCD screen to be used in addition to the WebSocket connection for direct control on the oven
  • Maybe add sensor to indicate if the lid has been opened
S
Description
No description provided
Readme MIT
926 KiB
Languages
Svelte 35.3%
C++ 24.6%
CSS 23.2%
TypeScript 13.6%
JavaScript 2.5%
Other 0.8%