Files
Кобелев Андрей Андреевич a111352dc5 Прошло 2 года.
2026-03-10 22:54:23 +03:00

5.5 KiB

Screen Diagnostics

This example app implements a simple shell to allow you to tinker with the display. You have access to all drawing functions from the epd driver, as well as system information, etc.

There are also pre-programmed algorithms (e.g. render_stairs, render_grid) which can be used to find pixel errors or display incompatibilities.

The screen_diag examples requires ESP-IDF v5.x or newer.

Setup

Don't forget to set your display type in epd_init in epd.c!

First you need to flash the firmware:

idf.py flash

After that, you can enter the shell environment with:

idf.py monitor

Please note the known issues of the IDF Monitor for limitations.

Usage

You can get a full list (see below) of all available commands with: help.

system_restart
  Restarts the system.

free_heap_size
  Returns the free heap size.

dump_heaps_info  [<caps>]
  Dumps heap information of all heaps matching the capability.
        <caps>  Heap caps to print. Default: MALLOC_CAP_DEFAULT

dump_tasks
  Dumps all tasks with their names, current state and stack usage.

chip_info
  Dumps chip information.

firmware_info
  Dumps information about the ESP-IDF and the firmware.

get_time
  Returns the time in microseconds since boot.

get_mac  [<interface>]
  Returns the MAC address for the given interface or the pre-programmed base
  address.
   <interface>  Either "wifi_station", "wifi_ap", "bluetooth" or "ethernet"

get_rotation
  Get current screen rotation.

set_rotation  <rotation> [--inverted]
  Changes screen rotation.
    <rotation>  screen rotation: "horizontal" or "portrait"
    --inverted

get_width
  Print screen width.

get_height
  Print screen height.

get_pixel  <posx> <posy>
  Get pixel color in front buffer.
        <posx>  x position
        <posy>  y position

set_pixel  <posx> <posy> [<color>]
  Set pixel color in front buffer.
        <posx>  x position
        <posy>  y position
       <color>  color. default value: 0 (0x00)

clear_screen
  Clear the entire screen and reset the front buffer to white.

full_clear_screen
  Same as clear_screen, but also tries to get rid of any artifacts by cycling
  through colors on the screen.

get_temp
  Returns the ambient temperature.

power_on
  Turns on the power of the display.

power_off
  Turns off the power of the display.

draw_hline  <x> <y> <len> [<color>]
  Draw horizontal line.
           <x>  start x position
           <y>  start y position
         <len>  length of the line
       <color>  default value: 0x00

draw_vline  <x> <y> <len> [<color>]
  Draw vertical line.
           <x>  start x position
           <y>  start y position
         <len>  length of the line
       <color>  default value: 0x00

draw_line  <start_x> <start_y> <end_x> <end_y> [<color>]
  Draw line between two points.
     <start_x>  start x position
     <start_y>  start y position
       <end_x>  end x position
       <end_y>  end y position
       <color>  default value: 0x00

draw_rect  <x> <y> <width> <height> [<color>]
  Draw a rectangle.
           <x>  top left x position
           <y>  top left y position
       <width>  square width
      <height>  square height
       <color>  default value: 0x00

fill_rect  <x> <y> <width> <height> [<color>]
  Draw a filled rectangle.
           <x>  top left x position
           <y>  top left y position
       <width>  square width
      <height>  square height
       <color>  default value: 0x00

draw_circle  <center_x> <center_y> <radius> [<color>]
  Draw a circle.
    <center_x>  center x position
    <center_y>  center y position
      <radius>  circle radius
       <color>  default value: 0x00

fill_circle  <center_x> <center_y> <radius> [<color>]
  Draw a filled circle.
    <center_x>  center x position
    <center_y>  center y position
      <radius>  circle radius
       <color>  default value: 0x00

draw_triangle  <x0> <y0> <x1> <y1> <x0> <y0> [<color>]
  Draw a triangle from three different points.
          <x0>  first edge x position
          <y0>  first edge y position
          <x1>  second edge x position
          <y1>  second edge y position
          <x0>  third edge x position
          <y0>  third edge y position
       <color>  default value: 0x00

fill_triangle  <x0> <y0> <x1> <y1> <x0> <y0> [<color>]
  Draw a filled triangle from three different points.
          <x0>  first edge x position
          <y0>  first edge y position
          <x1>  second edge x position
          <y1>  second edge y position
          <x0>  third edge x position
          <y0>  third edge y position
       <color>  default value: 0x00

write_text  [-s] <x> <y> [<color>] <msg>
  Write text message to the screen using the sans-serif font by default.
           <x>  x position
           <y>  y position
       <color>  default value: 0x00
   -s, --serif  Use serif font rather than sans-serif.
         <msg>  Text to be printed.

render_stairs  [<slope>] [<width>] [<color>]
  Render multiple diagonal lines across the screen.
       <slope>  angle by which each diagonal line is drawn. default value: 3
       <width>  thickness of each diagonal line. default value: 100
       <color>  default value: 0x00

render_grid  [<gutter>] [<color>]
  Renders a grid across the whole screen. At a certain gutter size, cell info
  will be printed as well.
      <gutter>  default value: 75
       <color>  default value: 0x00

help
  Print the list of registered commands