Skip to content

Commit

Permalink
Cascoda SDK patch release v0.23-19
Browse files Browse the repository at this point in the history
add new epaper driver
add support for Buzz 2 Click & LED 3 Driver Click
always overflow embedded system time 5 minutes after boot, for reliability testing
fix for posix system time breaking upon SNTP updates
  • Loading branch information
tiniuclx committed Aug 14, 2023
1 parent 4661dc5 commit 6f86bac
Show file tree
Hide file tree
Showing 64 changed files with 2,670 additions and 118 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The Cascoda Software Development Kit ...
# Getting started

We offer binaries that can be flashed directly onto our Chili2D USB module
inside `Chili2D-USB.zip`. Cascoda's Windows Tools are provided via an installer ([click here to download](https://github.com/Cascoda/cascoda-sdk/releases/download/v0.23-6/CascodaWindowsTools.zip)). However, `Chili2S-UART0-1Mbaud.zip` is _for advanced users
inside `Chili2D-USB.zip`. Cascoda's Windows Tools are provided via an installer ([click here to download](https://github.com/Cascoda/cascoda-sdk/releases/latest)). However, `Chili2S-UART0-1Mbaud.zip` is _for advanced users
only_ as these binaries _cannot be used with our USB module_, only with Chili2S
devices soldered onto a PCB.

Expand Down
2 changes: 2 additions & 0 deletions baremetal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ if(TARGET cascoda-bm-plat)
add_subdirectory(app/mikrosdk-bm)
add_subdirectory(cascoda-bm-devboard)
add_subdirectory(app/pwm-led-dimming)
add_subdirectory(app/buzz2-click-test)
add_subdirectory(app/led3-click-test)
endif()
# Openthread platform
add_subdirectory(cascoda-bm-thread)
Expand Down
27 changes: 27 additions & 0 deletions baremetal/app/buzz2-click-test/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Global config ---------------------------------------------------------------
cmake_minimum_required (VERSION 3.11)
project (cascoda-buzz2-click)

# Main library config ---------------------------------------------------------
add_library(buzz2
${PROJECT_SOURCE_DIR}/source/buzz2_click_test.c
${PROJECT_SOURCE_DIR}/source/buzz2_click_main.c
)

target_include_directories(buzz2
PUBLIC
${PROJECT_SOURCE_DIR}/include
)

target_link_libraries(buzz2
PUBLIC
cascoda-bm
mikrosdk-click
)

# Test app config -------------------------------------------------------------
add_executable(buzz2-click ${PROJECT_SOURCE_DIR}/source/buzz2_click_main.c)
target_link_libraries(buzz2-click buzz2 cascoda-bm)

# convert to bin file format
cascoda_make_binary(buzz2-click CASCODA_BUILD_BINARIES)
47 changes: 47 additions & 0 deletions baremetal/app/buzz2-click-test/include/buzz2_click_test.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* Copyright (c) 2023, Cascoda Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file
*
* @brief Test for buzz2 click
*/

#ifndef BUZZ2_CLICK_TEST_H
#define BUZZ2_CLICK_TEST_H

#include "ca821x_error.h"

#include <stdint.h>

/*
Function which kicks off the demo.
*/
ca_error buzz2_play_one_note(void);
ca_error buzz2_ascending_scale(void);

#endif // BUZZ2_CLICK_TEST_H
77 changes: 77 additions & 0 deletions baremetal/app/buzz2-click-test/source/buzz2_click_main.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@

/*
* Copyright (c) 2023, Cascoda Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file
*
* @brief Demo application which uses PWM to dim an LED to various brightness levels
*/

#include "buzz2_click.h"
#include "buzz2_click_test.h"

#include "cascoda-bm/cascoda_evbme.h"
#include "cascoda-bm/cascoda_ota_upgrade.h"
#include "cascoda-bm/cascoda_serial.h"
#include "cascoda-bm/test15_4_evbme.h"
#include "ca821x_api.h"

#include <stdlib.h>

/******************************************************************************/
/***************************************************************************/ /**
* \brief Main Program Endless Loop
*******************************************************************************
* \return Does not return
*******************************************************************************
******************************************************************************/
int main(void)
{
struct ca821x_dev dev;
ca821x_api_init(&dev);

/* Initialisation of Chip and EVBME */
/* Returns a Status of CA_ERROR_SUCCESS/CA_ERROR_FAIL for further Action */
/* in case there is no UpStream Communications Channel available */
EVBMEInitialise(CA_TARGET_NAME, &dev);

/* Insert Application-Specific Initialisation Routines here */
MIKROSDK_BUZZ2_Initialise();

#if CASCODA_OTA_UPGRADE_ENABLED
/* Initialises handling of OTA Firmware Upgrade */
ota_upgrade_init();
#endif

/* Endless Polling Loop */
while (1)
{
cascoda_io_handler(&dev);
buzz2_ascending_scale();
} /* while(1) */
}
140 changes: 140 additions & 0 deletions baremetal/app/buzz2-click-test/source/buzz2_click_test.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
/*
* Copyright (c) 2023, Cascoda Ltd.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the copyright holder nor the
* names of its contributors may be used to endorse or promote products
* derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
/**
* @file
*
* @brief Test for buzz2 click
*/

#include "buzz2_click_test.h"
#include "buzz2_click.h"

#include "cascoda-bm/cascoda_sensorif.h"
#include "cascoda-util/cascoda_tasklet.h"

static bool g_play_one_note_done = false;
static bool g_ascending_scale_done = false;

ca_error buzz2_play_one_note(void)
{
if (!g_play_one_note_done)
{
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E5, 1, 250, NON_BLOCKING);
g_play_one_note_done = true;
}
}

ca_error buzz2_ascending_scale(void)
{
if (!g_ascending_scale_done)
{
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B2, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B3, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B4, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B5, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B6, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_D7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_F7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_G7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B7, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_C8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Db8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Eb8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_E8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Gb8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Ab8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_A8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_Bb8, 1, 50, BLOCKING);
MIKROSDK_BUZZ2_play_note(BUZZ2_NOTE_B8, 1, 50, BLOCKING);
g_ascending_scale_done = true;
}
}
22 changes: 16 additions & 6 deletions baremetal/app/eink-bm/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,11 @@ endif()
add_executable(eink-test-2-9
${PROJECT_SOURCE_DIR}/source/eink_2_9_main.c
)
add_executable(eink-test-1-54
${PROJECT_SOURCE_DIR}/source/eink_1_54_main.c
add_executable(eink-test-waveshare-1-54
${PROJECT_SOURCE_DIR}/source/eink_waveshare_1_54_main.c
)
add_executable(eink-test-mikroe-1-54
${PROJECT_SOURCE_DIR}/source/eink_mikroe_1_54_main.c
)

add_executable(gfx-test
Expand All @@ -22,7 +25,11 @@ target_include_directories(eink-test-2-9
PRIVATE
${PROJECT_SOURCE_DIR}/include
)
target_include_directories(eink-test-1-54
target_include_directories(eink-test-waveshare-1-54
PRIVATE
${PROJECT_SOURCE_DIR}/include
)
target_include_directories(eink-test-mikroe-1-54
PRIVATE
${PROJECT_SOURCE_DIR}/include
)
Expand All @@ -34,15 +41,18 @@ target_include_directories(gfx-test
)

target_link_libraries(eink-test-2-9 test15-4-api cascoda-bm sensorif eink-driver-2-9 eink-image-2-9)
target_link_libraries(eink-test-1-54 test15-4-api cascoda-bm sensorif eink-driver-1-54-full-res eink-image-1-54)
target_link_libraries(eink-test-waveshare-1-54 test15-4-api cascoda-bm sensorif eink-driver-waveshare-1-54-full-res eink-image-1-54)
target_link_libraries(eink-test-mikroe-1-54 test15-4-api cascoda-bm sensorif eink-driver-mikroe-1-54-full-res eink-image-1-54)
target_link_libraries(gfx-test test15-4-api cascoda-bm sensorif eink-driver-2-9)

# convert to bin file format
cascoda_make_binary(eink-test-2-9 CASCODA_BUILD_BINARIES)
cascoda_put_subdir(test eink-test-2-9)

cascoda_make_binary(eink-test-1-54 CASCODA_BUILD_BINARIES)
cascoda_put_subdir(test eink-test-1-54)
cascoda_make_binary(eink-test-waveshare-1-54 CASCODA_BUILD_BINARIES)
cascoda_put_subdir(test eink-test-waveshare-1-54)
cascoda_make_binary(eink-test-mikroe-1-54 CASCODA_BUILD_BINARIES)
cascoda_put_subdir(test eink-test-mikroe-1-54)

cascoda_make_binary(gfx-test CASCODA_BUILD_BINARIES)
cascoda_put_subdir(test gfx-test)
7 changes: 3 additions & 4 deletions baremetal/app/eink-bm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
Example code for using the e-Paper driver.
This code does not use any wireless functionality, it is purely a driver demonstration.

## eink_main
## eink_2_9_main, eink_mikroe_1_54_main, eink_waveshare_1_54_main

This example goes through a typical sequence for displaying an image on the e-Paper display:
Power on, initialisation, clearing the display, displaying an image, and finally going into sleep mode.
These examples go through a typical sequence for displaying an image on the various supported ePaper displays: Power on, initialisation, clearing the display, displaying an image, and finally going into sleep mode.


## gfx_main

This example shows typical graphics on the e-Paper display:
This example shows typical graphics on the 2.9 inch e-Paper display:
- lines
- circles
- text (like printf)
Expand Down
Loading

0 comments on commit 6f86bac

Please sign in to comment.