Skip to content

sagdusmir/G32-Grill-Display-480x320-BTpref

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

336 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

G32 Connected Grill Monitor and Display

GitHub release GitHub Release Date GitHub commit activity (branch) GitHub license Grill make HA support

This repository started as a fork of https://github.com/JBecker32/G32-Display-480x320-BT and has since been heavily reworked with several improvements and can no longer be synced easily.

Focus: mobile, cloud-independent replacement for the official Otto Wilde app / Grill Buddy — no cloud login, no Otto Wilde servers, Home Assistant totally optional. Direct BLE connection to the grill (tested with firmware v1.4.5; older factory installed firmware e.g. "v13" is not compatible).

Teaser Assembled device with the case variant for attaching it to OW Module handles.

Table of Contents

  1. Features
  2. Hardware
  3. Uploading the software to the ESP
  4. FAQ
  5. Impressions
  6. Acknowledgments
  7. Disclaimer

Features

Implemented functionality

  • Real-time temperatures for up to 4 grill zones + 4 external probes
  • Gas level monitoring (if GasBuddy is installed)
  • Alarms — visual + optional acoustic (buzzer/speaker) for temperature limits and timer
  • Countdown timer with alert
  • Touchscreen configuration
    • tap top-left "G32 Connected" for entering the settings screen
    • tap top-middle clock / timer to setup a countdown timer
    • tap gauges to configure a temperature alarm
  • Multiple color schemes (predefined + easy to add your own)
  • Connection & status icons (BLE, WiFi, lid open, light on, battery SOC)
  • Optional battery monitoring the state of charge (SOC) of an installed internal battery can be displayed
  • Optional MEATER® integration shows tip temperatures & battery SOC instead of G32 probes when connected. Starting with BTpref-retro2.4.6 there is an alert if temperature specs are exceeded.
  • Optional Home Assistant connectivity that exposes most of the measurements

See changelog.md.

What is missing?

  • Meater 2 plus (aka PRO) support: Meater 2 plus units are not supported yet
  • Gas Buddy: calibration of a new gas bottle
  • G32 light: setting the brightness level for turning on the light in the lid

Limitations

  • Everything that was mentioned above under What is missing?
  • The UI might be a bit laggy at times - so touch input will take a second to have any effect. Suggestions on how to improve this further are welcome.
  • Volume level of the optional buzzer / speaker is a bit low. This is the reason there is no volume control in the settings.
  • Meater probes can only connect to a single device at a time. However, this does not prevent using a Meater Block.

Hardware

BOM

Component Qty Source Costs
ESP32 Dev Board 1 Amazon, AliExpress ~17€ - 27€
Case 1 friend with a 3D Printer a beer
Screws 4 hardware store, eBay, Amazon, AliExpress ~1€
Battery (optional) 1 Amazon, AliExpress ~9€
Buzzer / Speaker (optional) 1 AliExpress, Amazon, eBay ~2€
Double-Sided mirror tape (optional) ? Amazon, eBay ~0€
Connection Cable 1 your existing collection of cables ~0€

The total cost should be around 35-40€ if you have a friend with a 3d printer. Some items might not be available individually, but only in packs of several.

Component Details

  • ESP32 Dev Board
    You need a "JC3248W535C". It is equipped with an ESP32-S3, WiFi, Bluetooth, a 480x320 Pixel 3.5" touchscreen, and everything you need. No additional memory card required.

  • Case
    For a 3D model of a case for the JC3248W535C you can take a look at one of these:

    • Case by so99hero
      This nicely designed case offers enough space to fit all mentioned components and has a print-in-place mechanism to operate the power button (SW1) on the pcb.
    • Case by so99hero (remixed by sagdusmir)
      This one features minor adjustments to physically support the USB-C port and reduced clearance for the power button.
      There is also a case variant that attaches directly to any front facing handles of the OW Modules which is shown in some of the images. If you like to have both: there is also a model that allows to hang a normal case to a OW Module handle.
    • Case by so99hero (remixed by sagdusmir for displays prone to delamination)
      This one is based on my remixed case, but features a bezel to keep the display from delaminating. The optional hanger add-on for OW Modules is also available for this model.

    Note: Mounting the display to the case requires you to remove the plastic cover at the back of the display.

  • Screws
    Either M2x6mm, M2x5mm, or M2x4mm should work fine.

  • Battery
    You can add a 3.7V LiPo/Li-Ion Battery (1 cell) with a JST 1.25 2pin connector (watch out for correct polarity – see images). A capacity of 2000mAh to 3000mAh is recommended and of course it should have protection circuitry built in. This connects directly to the "BAT" (P5) connector. Maximum dimensions should not exceed 10mm x 65mm x 35mm (E.g. "103350", "103450", … "103565").

  • Buzzer / Speaker
    You can choose to connect either a buzzer or a speaker:

    • A passive piezo buzzer.
      These do not seem to be available with a JST1.25 2pin connector. So you might need to solder a JST 1.25 2pin connector cable obtained separately to the buzzer leads. Additional work, and probably additional costs. This connects to the GPIO (P2) connector to pins IO9 and IO14. If you have a DIY JST1.25 assortment (and/or OCD), you can do a custom 8pin connector that nicely fits P2. But a 2pin connector will do fine.
    • EXPERIMENTAL: A small 8Ohm / 1W speaker (4Ohm / 3W for noisy environments) with a JST1.25 2pin connector.
      This usually results in a slightly higher volume and a more pleasant sound. Getting one with the proper connector saves you some effort. This connects directly to the "SPEAK" (P6) connector. This is still considered "experimental" and needs some verification if the used external DAC is actually powered off if the ESP32 is powered down.

    Note: Take the available space into consideration. The passive buzzer is configured by default in the YAML. Switching to the speaker requires manually enabling / disabling some settings in the YAML. Have a look at the latest releases because there might be a pre-configuraed file available.

  • Cable
    Any USB-C to USB-C / USB-A with data lines will do for charging and flashing the ESP32.

  • Double-Sided mirror tape
    Use this to hold the battery and buzzer / speaker in place.

Uploading the software to the ESP

  1. Install ESPHome CLI
    pip install esphome
  2. Clone this repository and change directory into that folder
    git clone https://github.com/sagdusmir/G32-Grill-Display-480x320-BTpref.git && cd G32-Grill-Display-480x320-BTpref
  3. Connect the JC3248W535C via USB
  4. Compile and flash the software
    esphome run g32-display.yaml
    You may be asked how the connection should be established.

FAQ

Flashing

  1. Which values do I need to adjust in the yaml before flashing? Nothing – if you trust everyone that uses the same WiFi as your device does. Everyone else: api_encryption_key, ota_password. Have a look at the very top of the g32-display.yaml for details.

  2. During validation of the yaml file, you might see something like [max_connections] is an invalid option for [esp32_ble]. The "max_connections" option has been moved from "esp32_ble_tracker:" to "esp32_ble:". Both variants are included in the YAML and you need to switch to the other variant by adding / removing a comment (#). Do not mess up the indentation. This is caused by a breaking change in esphome.

  3. If compiling and flashing the ESP32 succeeds, but the screen is looking distorted (the left portion is partially readable while the right portion shows mostly pixel noise"), simply look at the "dimensions" in the "display" section and swap the values for "width:" and "height:". This is caused by a breaking change in esphome.

  4. If you get A LOT of strange syntax errors, try to clean up the configured build folder via

    esphome clean g32-display.yaml

Usage

  • How do I know the current IP address if the device is connected to WiFi? Open "Settings" and touch the tiny version text in the title bar. Next to the QR code there should be the current IP address displayed.
  • Why does the device power on if the USB power supply is removed? That is expected behavior of the used Dev-Board and happenes due to switching from USB power supply to battery power supply.
  • Why is the battery SOC incorrect if the device is powered via USB? The onboard charge contoller has no I²C interface to get any information about the supplied power and progress of charging. The shown SOC during charging is not accurate.
  • Why can the device not be powered off during charging? This is a hardware limitation of the used Dev-Board due to how charging is handled.
  • Why is my device losing battery charge when not in use? The Dev-Board seems to always draw a noticable amount of power - even if the device is shut down. There is no easy fix for that.
  • Why does the device not power off, even if I press the power button for a few seconds? Try to press the button even longer. This can take up to 14 seconds and varies from device to device.

Impressions

These images show different versions of the software - so some details might be inconsistent.

device_assembly BTpref-retro2 0 0-main_view_cyan BTpref-retro2 0 1-main_view_red_light BTpref-retro2 0 1-main_view_white BTpref-retro2 0 0-main_view_amber BTpref-retro2 0 0-temp_alarm BTpref-retro2 0 0-timer BTpref-retro2 0 0-mac_address BTpref-retro2 3 0-wifi BTpref-retro2 4 3-options BTpref-retro2 3 1-warnings BTpref-retro2 2 0-display BTpref-retro2 0 0-meater BTpref-retro2 4 3-version BTpref-retro2 4 0-reduced-temp-alarm-info Speaker Assortment BTpref-retro2 4 1-battery-3000mAh device_assembly_4ohms In action 1 In Action 2 JC3248W535 board

Acknowledgments

This project would not have been possible without the work of the community. Special thanks go to:

JBecker32/G32-Display-480x320-BT (the original software project)

fschwarz86/g32

ralmoe/g32-docker-client

MortenVinding/MEATER.yaml (Meater® accuracy)

so99hero/Standalone Case JC3248W535C

Disclaimer

This is third-party software developed by the community and is not officially developed or supported by Otto Wilde GmbH. Use at your own risk.

This project is provided for educational and experimental purposes only.

All hardware designs, schematics, code, instructions, and documentation are offered AS IS without any warranty of any kind, express or implied. YOU BUILD AND USE THIS AT YOUR OWN RISK. The author(s) and any contributors are not responsible for any injury, death, property damage, fire, electrical shock, data loss, voided warranties, legal violations, or any other consequences — direct, indirect, incidental, or consequential — that may result from building, modifying, or using this project or any derivative work. Always follow local electrical/safety/building codes.

If you're not experienced with mains voltage, high current, lithium batteries, lasers, moving parts, etc., consult a qualified professional before proceeding. Proceed only if you accept full personal responsibility.

About

ESPHome project for a JC3248W535 Display to be used with Otto Wilde G32 Connected gas grill. Direct connection to the G32 grill via Bluetooth LE without cloud dependency. Optional Home Assistant support.

Topics

Resources

License

Stars

Watchers

Forks

Contributors