This is a fork of the KNOMIv2 firmware for this board.
Firmware for the ESP32-C3 SuperMini is also available. Please note that, as I do not have a C3 SuperMini, the firmware for this board was tested on an emulator.
Important
If you need support for a specific board, please open an issue. I will try to add it.
I provide two versions of the firmware:
- The pre-compiled original version of KNOMI v2 for the Waveshare board (available in the releases tab).
- A pre-compiled version without OTA firmware update, but that retains remote configuration and contains additional animations for multi-color 3D printers.
Note
New animations can be added to the non-OTA version, as there is still space available.
Download the bin file for your board in the release tab, then use flash download tool to flash the firmware on the board.
Tip
If the tool remains stuck on “Sync”, you must hold down the “boot” button of the board for a few seconds. Sometimes it is also necessary to disconnect and reconnect the board.
By default, KNOMI v2 uses a GC9A01 TFT display and a CST816S capacitive touchscreen. This is the wiring for the ESP32-C3 SuperMini.
Usage | GPIO Pin |
---|---|
CST816S_IRQ | 1 |
CST816S_RST | 3 |
GC9A01_DC | 0 |
GC9A01_RST | 2 |
GC9A01_SCLK | 4 |
GC9A01_MISO | 5 |
GC9A01_MOSI | 6 |
GC9A01_CS | 7 |
I2C0_SDA | 8 |
I2C0_SCL | 9 |
Note
This can be changed in "pinout_super_mini_esp32c3.h".
I removed the OTA library (remote KNOMI firmware update) to save flash memory and add new animations for multi-filament printers (nozzle cleaning, filament push, filament pull, and filament purge). These animations come from BigTreeTech's knomi panda repository. There is no need to compile the firmware anymore. It can now be found in the 'Releases' tab.
The new animations are the following:
In order to decide which animation to show, KNOMI calls the Klipper API in a loop to download the status of the variables in the “_KNOMI_STATUS” macro. Below is an illustration of the macro “_KNOMI_STATUS” along with a macro "KNOMI_RESET" to be called at the beginning and end of printing to reset the value of KNOMI variables.
[gcode_macro _KNOMI_STATUS]
variable_homing: False
variable_probing: False
variable_qgling: False
variable_heating_nozzle: False
variable_heating_bed: False
variable_filament_pull: False
variable_filament_push: False
variable_filament_purge: False
variable_filament_cut: False
variable_nozzle_cleaning: False
gcode:
[gcode_macro KNOMI_RESET]
gcode:
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=probing VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=qgling VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_nozzle VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=heating_bed VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=filament_pull VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=filament_push VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=filament_purge VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=filament_cut VALUE=False
SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=nozzle_cleaning VALUE=False
To tell your KNOMI what information to display, you can use the official KNOMI macros.
Warning
Note that the official macros are known to cause bugs with some configurations. If this happens to you, you can change the value of the “_KNOMI_STATUS” variables yourself by setting them to true or false inside your Klipper macros.