taraholeinit / tarablessd1306 Goto Github PK
View Code? Open in Web Editor NEWSSD1306 Component for the ESP-IDF SDK
License: MIT License
SSD1306 Component for the ESP-IDF SDK
License: MIT License
I set the SSD1306_SetVFlip
and SSD1306_SetHFlip
to flip the screen content, whereas standard, everything seems upside-down. The SSD1306_SetHFlip
works fine but the SSD1306_SetVFlip
does not flip vertically. Any Ideas?
Using ESP-IDF v4.0 and the HelloWorld tarablessd1306_examples component
When compiling and using the example HelloWorld, the text displays fine however it is turning on other random pixels which are not present when using the Arduinolibraries
I tried installation of your product.
But an error occurred by a build.
git clone --recursive https://github.com/TaraHoleInIt/tarablessd1306_examples
cd tarablessd1306_examples/
cd HelloWorld/
rm sdkconfig.*
make menuconfig
make
Generating esp32.project.ld
LD build/tarablessd1306_helloworld.elf
/home/robotics/tarablessd1306_examples/HelloWorld/build/main/libmain.a(main.o):(.literal.DefaultBusInit+0x20): undefined reference to `SSD1306_I2CMasterInitDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/build/main/libmain.a(main.o):(.literal.DefaultBusInit+0x24): undefined reference to `SSD1306_I2CMasterAttachDisplayDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/build/main/libmain.a(main.o):(.literal.DefaultBusInit+0x28): undefined reference to `SSD1306_SPIMasterInitDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/build/main/libmain.a(main.o):(.literal.DefaultBusInit+0x2c): undefined reference to `SSD1306_SPIMasterAttachDisplayDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/build/main/libmain.a(main.o): In function `DefaultBusInit':
/home/robotics/tarablessd1306_examples/HelloWorld/main/main.c:42: undefined reference to `SSD1306_I2CMasterInitDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/main/main.c:43: undefined reference to `SSD1306_I2CMasterAttachDisplayDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/main/main.c:43: undefined reference to `SSD1306_SPIMasterInitDefault'
/home/robotics/tarablessd1306_examples/HelloWorld/main/main.c:48: undefined reference to `SSD1306_SPIMasterAttachDisplayDefault'
collect2: error: ld returned 1 exit status
/home/robotics/esp-idf/make/project.mk:517: recipe for target '/home/robotics/tarablessd1306_examples/HelloWorld/build/tarablessd1306_helloworld.elf' failed
make: *** [/home/robotics/tarablessd1306_examples/HelloWorld/build/tarablessd1306_helloworld.elf] Error 1
There is default_if_i2c.c.
$ grep -r SSD1306_I2CMasterInitDefault *
components/tarablessd1306/ifaces/default_if_i2c.c:bool SSD1306_I2CMasterInitDefault( void ) {
components/tarablessd1306/ssd1306_default_if.h:bool SSD1306_I2CMasterInitDefault( void );
main/main.c: assert( SSD1306_I2CMasterInitDefault( ) == true );
archive is:
/tarablessd1306_examples/HelloWorld/build/tarablessd1306$ ar tv libtarablessd1306.a
rw-rw-r-- 1000/1000 50236 Apr 18 11:25 2019 ssd1306_font.o
rw-rw-r-- 1000/1000 55712 Apr 18 11:25 2019 ssd1306.o
rw-rw-r-- 1000/1000 36044 Apr 18 11:25 2019 ssd1306_draw.o
rw-rw-r-- 1000/1000 13624 Apr 18 11:25 2019 font_droid_sans_fallback_15x17.o
rw-rw-r-- 1000/1000 12244 Apr 18 11:25 2019 font_droid_sans_mono_13x24.o
rw-rw-r-- 1000/1000 18740 Apr 18 11:25 2019 font_liberation_mono_17x30.o
rw-rw-r-- 1000/1000 17844 Apr 18 11:25 2019 font_droid_sans_mono_16x31.o
rw-rw-r-- 1000/1000 8472 Apr 18 11:25 2019 font_droid_sans_fallback_11x13.o
rw-rw-r-- 1000/1000 7532 Apr 18 11:25 2019 font_liberation_mono_9x15.o
rw-rw-r-- 1000/1000 12244 Apr 18 11:25 2019 font_liberation_mono_13x21.o
rw-rw-r-- 1000/1000 25048 Apr 18 11:25 2019 font_droid_sans_fallback_24x28.o
rw-rw-r-- 1000/1000 6636 Apr 18 11:25 2019 font_droid_sans_mono_7x13.o
rw-rw-r-- 1000/1000 2024 Apr 18 11:25 2019 default_if_spi.o
rw-rw-r-- 1000/1000 2024 Apr 18 11:25 2019 default_if_i2c.o
Advice, please.
I use this library on ESP32-CAM.
If I run my program incude this library, but error occured.
that error is hear
E (370) i2c: i2c driver install error
E (370) SSD1306_I2CMasterInitDefault: i2c_driver_install( I2CPortNumber, Config.mode, 0, 0, 0 ) != ESP_OK, result: -1
Please tell me How to fix this error.
I am using https://github.com/TaraHoleInIt/tarablessd1306 to drive the OLED. and https://github.com/UncleRus/esp-idf-lib to drive qmc5883l magneto meter. When I try to use both in the same code, ESP crashes.
Goodnight,
I am using an example program and I want to edit the code by adding some libraries, the code is as follows:
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
#include "ssd1306.h"
#include "ssd1306_draw.h"
#include "ssd1306_font.h"
#include "ssd1306_default_if.h"
#include <esp_system.h>
#include <bmp280.h>
#include <string.h>
#define USE_I2C_DISPLAY
#define SDA_GPIO 4
#define SCL_GPIO 5
static const int I2CDisplayAddress = 0x3C;
static const int I2CDisplayWidth = 128;
static const int I2CDisplayHeight = 64;
static const int I2CResetPin = -1;
struct SSD1306_Device I2CDisplay;
void SetupDemo( struct SSD1306_Device* DisplayHandle, const struct SSD1306_FontDef* Font );
void SayHello( struct SSD1306_Device* DisplayHandle, const char* HelloText );
bool DefaultBusInit( void ) {
assert( SSD1306_I2CMasterInitDefault( ) == true );
assert( SSD1306_I2CMasterAttachDisplayDefault( &I2CDisplay, I2CDisplayWidth, I2CDisplayHeight, I2CDisplayAddress, I2CResetPin ) == true );
return true;
}
void SetupDemo( struct SSD1306_Device* DisplayHandle, const struct SSD1306_FontDef* Font ) {
SSD1306_Clear( DisplayHandle, SSD_COLOR_BLACK );
SSD1306_SetFont( DisplayHandle, Font );
}
void SayHello( struct SSD1306_Device* DisplayHandle, const char* HelloText ) {
SSD1306_FontDrawAnchoredString( DisplayHandle, TextAnchor_Center, HelloText, SSD_COLOR_WHITE );
SSD1306_Update( DisplayHandle );
}
void app_main( void ) {
printf( "Ready...\n" );
if ( DefaultBusInit( ) == true ) {
printf( "BUS Init lookin good...\n" );
printf( "Drawing.\n" );
#if defined USE_I2C_DISPLAY
SetupDemo( &I2CDisplay, &Font_droid_sans_fallback_24x28 );
SayHello( &I2CDisplay, "SICCUS!" );
#endif
printf( "Done!\n" );
}
}
I'm using Eclipse IDE
but i get the following error when did the compilation:
Building in: D:\Eclipse\Trabajo\Oled_BMP280\build
cmake --build . -- -v
[1/9] cmd.exe /C "cd /D D:\Eclipse\Trabajo\Oled_BMP280\build\esp-idf\partition_table && "C:\Users\C. Alejandro.espressif\tools\cmake\3.13.4\bin\cmake.exe" -E echo "Partition table binary generated. Contents:" && "C:\Users\C. Alejandro.espressif\tools\cmake\3.13.4\bin\cmake.exe" -E echo ******************************************************************************* && python C:/esp-idf/components/partition_table/gen_esp32part.py -q --offset 0x8000 --flash-size 4MB D:/Eclipse/Trabajo/Oled_BMP280/build/partition_table/partition-table.bin && "C:\Users\C. Alejandro.espressif\tools\cmake\3.13.4\bin\cmake.exe" -E echo *******************************************************************************"
Partition table binary generated. Contents:
nvs,data,nvs,0x9000,24K,
phy_init,data,phy,0xf000,4K,
factory,app,factory,0x10000,1M,
[2/9] cmd.exe /C "cd /D D:\Eclipse\Trabajo\Oled_BMP280\build\bootloader && "C:\Users\C. Alejandro.espressif\tools\cmake\3.13.4\bin\cmake.exe" --build ."
ninja: no work to do.
[3/7] ccache C:\Users\C765B1.ALE\ESPRES1\tools\XTENSA1\ESP-201.0\XTENSA1\bin\XT89941.EXE -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -Iconfig -IC:/esp-idf/components/newlib/platform_include -IC:/esp-idf/components/freertos/include -IC:/esp-idf/components/heap/include -IC:/esp-idf/components/log/include -IC:/esp-idf/components/soc/esp32/include -IC:/esp-idf/components/soc/include -IC:/esp-idf/components/esp_rom/include -IC:/esp-idf/components/esp_common/include -IC:/esp-idf/components/xtensa/include -IC:/esp-idf/components/xtensa/esp32/include -IC:/esp-idf/components/esp32/include -IC:/esp-idf/components/driver/include -IC:/esp-idf/components/esp_ringbuf/include -IC:/esp-idf/components/esp_event/include -IC:/esp-idf/components/tcpip_adapter/include -IC:/esp-idf/components/lwip/include/apps -IC:/esp-idf/components/lwip/include/apps/sntp -IC:/esp-idf/components/lwip/lwip/src/include -IC:/esp-idf/components/lwip/port/esp32/include -IC:/esp-idf/components/lwip/port/esp32/include/arch -IC:/esp-idf/components/vfs/include -IC:/esp-idf/components/esp_wifi/include -IC:/esp-idf/components/esp_wifi/esp32/include -IC:/esp-idf/components/esp_eth/include -IC:/esp-idf/components/efuse/include -IC:/esp-idf/components/efuse/esp32/include -IC:/esp-idf/components/app_trace/include -IC:/esp-idf/components/mbedtls/port/include -IC:/esp-idf/components/mbedtls/mbedtls/include -IC:/esp-idf/components/wpa_supplicant/include -IC:/esp-idf/components/wpa_supplicant/port/include -IC:/esp-idf/components/wpa_supplicant/include/esp_supplicant -IC:/esp-idf/components/bootloader_support/include -IC:/esp-idf/components/app_update/include -IC:/esp-idf/components/spi_flash/include -IC:/esp-idf/components/nvs_flash/include -IC:/esp-idf/components/pthread/include -IC:/esp-idf/components/espcoredump/include -IC:/esp-idf/components/asio/asio/asio/include -IC:/esp-idf/components/asio/port/include -IC:/esp-idf/components/coap/port/include -IC:/esp-idf/components/coap/port/include/coap -IC:/esp-idf/components/coap/libcoap/include -IC:/esp-idf/components/coap/libcoap/include/coap2 -IC:/esp-idf/components/console -IC:/esp-idf/components/nghttp/port/include -IC:/esp-idf/components/nghttp/nghttp2/lib/includes -IC:/esp-idf/components/esp-tls -IC:/esp-idf/components/esp_adc_cal/include -IC:/esp-idf/components/esp_gdbstub/include -IC:/esp-idf/components/tcp_transport/include -IC:/esp-idf/components/esp_http_client/include -IC:/esp-idf/components/esp_http_server/include -IC:/esp-idf/components/esp_https_ota/include -IC:/esp-idf/components/protobuf-c/protobuf-c -IC:/esp-idf/components/protocomm/include/common -IC:/esp-idf/components/protocomm/include/security -IC:/esp-idf/components/protocomm/include/transports -IC:/esp-idf/components/mdns/include -IC:/esp-idf/components/esp_local_ctrl/include -IC:/esp-idf/components/esp_websocket_client/include -IC:/esp-idf/components/expat/expat/expat/lib -IC:/esp-idf/components/expat/port/include -IC:/esp-idf/components/wear_levelling/include -IC:/esp-idf/components/sdmmc/include -IC:/esp-idf/components/fatfs/diskio -IC:/esp-idf/components/fatfs/vfs -IC:/esp-idf/components/fatfs/src -IC:/esp-idf/components/freemodbus/common/include -IC:/esp-idf/components/idf_test/include -IC:/esp-idf/components/jsmn/include -IC:/esp-idf/components/json/cJSON -IC:/esp-idf/components/libsodium/libsodium/src/libsodium/include -IC:/esp-idf/components/libsodium/port_include -IC:/esp-idf/components/mqtt/esp-mqtt/include -IC:/esp-idf/components/openssl/include -IC:/esp-idf/components/spiffs/include -IC:/esp-idf/components/ulp/include -IC:/esp-idf/components/unity/include -IC:/esp-idf/components/unity/unity/src -IC:/esp-idf/components/wifi_provisioning/include -I../components/tarablessd1306 -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -nostdlib -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER="v4.0.1-dirty" -DGCC_NOT_5_2_0 -DESP_PLATFORM -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -MF esp-idf\main\CMakeFiles__idf_main.dir\main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -c ../main/main.c
FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj
ccache C:\Users\C765B1.ALE\ESPRES1\tools\XTENSA1\ESP-201.0\XTENSA1\bin\XT89941.EXE -DHAVE_CONFIG_H -DMBEDTLS_CONFIG_FILE="mbedtls/esp_config.h" -DUNITY_INCLUDE_CONFIG_H -DWITH_POSIX -Iconfig -IC:/esp-idf/components/newlib/platform_include -IC:/esp-idf/components/freertos/include -IC:/esp-idf/components/heap/include -IC:/esp-idf/components/log/include -IC:/esp-idf/components/soc/esp32/include -IC:/esp-idf/components/soc/include -IC:/esp-idf/components/esp_rom/include -IC:/esp-idf/components/esp_common/include -IC:/esp-idf/components/xtensa/include -IC:/esp-idf/components/xtensa/esp32/include -IC:/esp-idf/components/esp32/include -IC:/esp-idf/components/driver/include -IC:/esp-idf/components/esp_ringbuf/include -IC:/esp-idf/components/esp_event/include -IC:/esp-idf/components/tcpip_adapter/include -IC:/esp-idf/components/lwip/include/apps -IC:/esp-idf/components/lwip/include/apps/sntp -IC:/esp-idf/components/lwip/lwip/src/include -IC:/esp-idf/components/lwip/port/esp32/include -IC:/esp-idf/components/lwip/port/esp32/include/arch -IC:/esp-idf/components/vfs/include -IC:/esp-idf/components/esp_wifi/include -IC:/esp-idf/components/esp_wifi/esp32/include -IC:/esp-idf/components/esp_eth/include -IC:/esp-idf/components/efuse/include -IC:/esp-idf/components/efuse/esp32/include -IC:/esp-idf/components/app_trace/include -IC:/esp-idf/components/mbedtls/port/include -IC:/esp-idf/components/mbedtls/mbedtls/include -IC:/esp-idf/components/wpa_supplicant/include -IC:/esp-idf/components/wpa_supplicant/port/include -IC:/esp-idf/components/wpa_supplicant/include/esp_supplicant -IC:/esp-idf/components/bootloader_support/include -IC:/esp-idf/components/app_update/include -IC:/esp-idf/components/spi_flash/include -IC:/esp-idf/components/nvs_flash/include -IC:/esp-idf/components/pthread/include -IC:/esp-idf/components/espcoredump/include -IC:/esp-idf/components/asio/asio/asio/include -IC:/esp-idf/components/asio/port/include -IC:/esp-idf/components/coap/port/include -IC:/esp-idf/components/coap/port/include/coap -IC:/esp-idf/components/coap/libcoap/include -IC:/esp-idf/components/coap/libcoap/include/coap2 -IC:/esp-idf/components/console -IC:/esp-idf/components/nghttp/port/include -IC:/esp-idf/components/nghttp/nghttp2/lib/includes -IC:/esp-idf/components/esp-tls -IC:/esp-idf/components/esp_adc_cal/include -IC:/esp-idf/components/esp_gdbstub/include -IC:/esp-idf/components/tcp_transport/include -IC:/esp-idf/components/esp_http_client/include -IC:/esp-idf/components/esp_http_server/include -IC:/esp-idf/components/esp_https_ota/include -IC:/esp-idf/components/protobuf-c/protobuf-c -IC:/esp-idf/components/protocomm/include/common -IC:/esp-idf/components/protocomm/include/security -IC:/esp-idf/components/protocomm/include/transports -IC:/esp-idf/components/mdns/include -IC:/esp-idf/components/esp_local_ctrl/include -IC:/esp-idf/components/esp_websocket_client/include -IC:/esp-idf/components/expat/expat/expat/lib -IC:/esp-idf/components/expat/port/include -IC:/esp-idf/components/wear_levelling/include -IC:/esp-idf/components/sdmmc/include -IC:/esp-idf/components/fatfs/diskio -IC:/esp-idf/components/fatfs/vfs -IC:/esp-idf/components/fatfs/src -IC:/esp-idf/components/freemodbus/common/include -IC:/esp-idf/components/idf_test/include -IC:/esp-idf/components/jsmn/include -IC:/esp-idf/components/json/cJSON -IC:/esp-idf/components/libsodium/libsodium/src/libsodium/include -IC:/esp-idf/components/libsodium/port_include -IC:/esp-idf/components/mqtt/esp-mqtt/include -IC:/esp-idf/components/openssl/include -IC:/esp-idf/components/spiffs/include -IC:/esp-idf/components/ulp/include -IC:/esp-idf/components/unity/include -IC:/esp-idf/components/unity/unity/src -IC:/esp-idf/components/wifi_provisioning/include -I../components/tarablessd1306 -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -fstrict-volatile-bitfields -nostdlib -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-but-set-variable -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER="v4.0.1-dirty" -DGCC_NOT_5_2_0 -DESP_PLATFORM -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -MF esp-idf\main\CMakeFiles__idf_main.dir\main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/main.c.obj -c ../main/main.c
In file included from ../components/tarablessd1306/ssd1306_err.h:5,
from ../components/tarablessd1306/ssd1306.h:11,
from ../main/main.c:11:
C:/esp-idf/components/xtensa/include/esp_panic.h:2:2: warning: #warning "esp_panic.h is deprecated, please use esp_debug_helpers.h or/and esp_private/panic_reason.h" [-Wcpp]
#warning "esp_panic.h is deprecated, please use esp_debug_helpers.h or/and esp_private/panic_reason.h"
^~~~~~~
In file included from C:/esp-idf/components/esp_common/include/esp_system.h:22,
from ../main/main.c:15:
C:/esp-idf/components/esp_common/include/esp_bit_defs.h:53: warning: "BIT" redefined
#define BIT(nr) (1UL << (nr))
In file included from ../main/main.c:11:
../components/tarablessd1306/ssd1306.h:19: note: this is the location of the previous definition
#define BIT( n ) ( 1 << n )
../main/main.c:16:10: fatal error: bmp280.h: No such file or directory
#include <bmp280.h>
^~~~~~~~~~
compilation terminated.
ninja: build stopped: subcommand failed.
Build complete (1 errors, 2 warnings): D:\Eclipse\Trabajo\Oled_BMP280\build
I think i have to do is add the library into my code, but i don't know to do it.
Thanks in advance
I've tried using two separate 128x64/0.96" SSD1306 OLED displays and both yield the same result.
I'm using ESP-IDF v4.0 and HelloWorld tarablessd1306_examples component. Any ideas what's causing this? When SSD1306_Clear
is not called, the lines aren't drawn, but clearing and then updating draws these 8 unwanted horizontal lines.
How can I show the value of a variable on the display, because I can only show text?
The following exception is thrown when i2c display support is enabled but the display is disconnected.
I don't have an SPI display to test if the issue happens there.
E (162) I2CDefaultWriteBytes: i2c_master_cmd_begin( I2CPortNumber, CommandHandle, pdMS_TO_TICKS( 1000 ) ) != ESP_OK, result: -1
abort() was called at PC 0x400e063a on core 0
0x400e063a: I2CDefaultWriteBytes at components/tarablessd1306/ifaces/default_if_i2c.c:107 (discriminator 4)
The issue can be resolved by changing line default_if_i2c.c:107, but I am unsure if this is the best practice or other implications of this change:
i2c_master_cmd_begin( I2CPortNumber, CommandHandle, pdMS_TO_TICKS( 1000 ) );
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.