.. zephyr:code-sample:: cfb-shell-sample :name: Character Framebuffer shell module :relevant-api: monochrome_character_framebuffer Use the CFB shell module to interact with a monochrome display. Overview ******** This is a simple shell module that exercises displays using the Character Framebuffer subsystem. Building and Running ******************** Build the sample app by choosing the target board, for example: .. zephyr-app-commands:: :zephyr-app: samples/subsys/display/cfb_shell :board: reel_board :goals: build Shell Module Command Help ========================= .. code-block:: console cfb - Character Framebuffer shell commands Options: -h, --help :Show command help. Subcommands: init :[none] get_device :[none] get_param : get_fonts :[none] set_font : invert :[none] print : scroll : clear :[none] **init**: should be called first to initialize the display. Command example (reel_board): .. code-block:: console uart:~$ cfb init Framebuffer initialized: SSD16XX Display Cleared **get_device**: prints the display device name. Command example (reel_board): .. code-block:: console uart:~$ cfb get_device Framebuffer Device: SSD16XX **get_param**: get the display parameters where height, width and ppt (pixel per tile) are in pixels and the number of rows and columns. The row position is incremented by a multiple of the ppt. Command example (reel_board): .. code-block:: console uart:~$ cfb get_param all param: height=120 param: width=250 param: ppt=8 param: rows=15 param: cols=250 **get_fonts**: print the index, height and width in pixels of the static defined fonts presented in the system. Command example (reel_board): .. code-block:: console uart:~$ cfb get_fonts idx=0 height=32 width=20 idx=1 height=24 width=15 idx=2 height=16 width=10 **set_font**: choose the font to be used by passing the font index. Only one font can be used at a time. Command example (reel_board): .. code-block:: console uart:~$ cfb set_font 0 Font idx=0 height=32 width=20 set **invert**: invert the pixel color of the display. Command example (reel_board): .. code-block:: console uart:~$ cfb invert Framebuffer Inverted **print**: pass the initial column and row positions and the text in double quotation marks when it contains spaces. If text hits the edge of the display the remaining characters will be displayed on the next line. The previous printed text will be overwritten. Command example (reel_board): .. code-block:: console uart:~$ cfb print 60 5 ZEPHYR **scroll**: pass the scroll direction, vertical or horizontal, the initial column and row positions, and the text to be displayed in double quotation marks when it contains spaces. If the text hits the edge of the display, the remaining characters will be displayed in the next line. The text will scroll until it hits the display boundary, last column for horizontal and last row for vertical direction. The text passed with the scroll command will be moved vertically or horizontally on the display. Command example (reel_board): .. code-block:: console uart:~$ cfb scroll vertical 60 5 ZEPHYR **clear**: clear the display screen. Command example (reel_board): .. code-block:: console uart:~$ cfb clear Display Cleared