M5Paper project with weather information from openweathermap

Overview

M5PaperWeather

**M5Paper project with weather information from openweathermap ***

M5PaperWeather

Description

Arduino project to show internal environment data and weather information from openweathermap https://openweathermap.org on the e-ink display of the M5Paper. Please edit the config.h file with your own data. You need an api key from openweathermap. The software shows the following information:

  • A header with version, city wifi strength and battery status
  • Sun section with sunrise and sunset
  • Moon section with moonrise and moonset
  • Wind section with wind direction and wind speed
  • The internal SH30 sensor data (temperature and humidity) with the current date and time
  • A hourly forecast with hour, temperature and a weather icon.
  • Some detailt forecast graphs with temperature, rain, humidity and pressure

Disclaimer

I don't take any responsibility nor liability for using this software nor for the installation or any tips, advice, videos, etc. given by any member of this site or any related site.

License

This program is licensed under GPL-3.0

Thanks

You might also like...
Convert LLVM coverage information into HTML reports

llvm-coverage-to-html converter The clang compiler supports source based coverage tracking, but the default reporting options are very basic. This too

ContactGot is an offline desktop app, where clients can leave their info, while an administrator can manage which information they need to gather on certain projects.
ContactGot is an offline desktop app, where clients can leave their info, while an administrator can manage which information they need to gather on certain projects.

ContactGot Contents Description How to use Requirements Engineering Installation Documentation Design Architecture Demonstration 1. Description During

 Decoded Information from Radio Emissions for Windows Or Linux Fans
Decoded Information from Radio Emissions for Windows Or Linux Fans

Dire Wolf is a software "soundcard" AX.25 packet modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate).

A BOF for enumerating version information for DLLs associated for a Beacon process.
A BOF for enumerating version information for DLLs associated for a Beacon process.

DLL Image Resource Version Enumeration BOF What is this? This is a Cobalt Strike BOF file (a mildly massaged port of @N4k3dTurtl3's existing PoC , mea

Information on my chord-based typing system

taipo A chord-based typing system: only needs 10 keys per hand (2 keys per finger) optimized to reduce finger usage, travel distance, and awkward patt

Steals plaguecheat.cc login information and sends them over Discord webhook
Steals plaguecheat.cc login information and sends them over Discord webhook

PlagueStealer DO NOT USE THIS!!! I TAKE NO RESPONSIBILITY FOR ANY DAMAGE CAUSED How to use: Make a Discord webhook (watch this if you dont know how: h

Windows kernel information leakage POCs on Windows 10 RS1+
Windows kernel information leakage POCs on Windows 10 RS1+

This repository covers various techniques and methods I write while conducting research into infoleaks, these are for leaking various Windows kernel a

Sysfex - Another system information tool written in C++
Sysfex - Another system information tool written in C++

Sysfex Another neofetch-like system information fetching tool for linux-based systems written in C++ Installation To install this program using the pr

Comments
  • Has this been  compiled successfully using recent library versions?

    Has this been compiled successfully using recent library versions?

    I included all the relevant libraries referenced and have been unsuccessful in compiling using M5EDP version 0.1.4 & M5Stack version 2.0.4. Not sure what I am missing here especially the first error about MyData not declared in scope as this makes no sense as "Time.h" is the only header complaining about this. Ive probably missed something obvious but would appreciate any pointers as to what I am missing.

    Here are a few of the issues Im running into


    First issue

    In file included from /home/pi/Arduino/weather/Utils.h:23,
                     from /home/pi/Arduino/weather/Weather.h:26,
                     from /home/pi/Arduino/weather/Data.h:24,
                     from /home/pi/Arduino/weather/weather.ino:25:
    Time.h:26:21: error: 'MyData' was not declared in this scope
     bool SetRTCDateTime(MyData &myData)
                         ^~~~~~
    /home/pi/Arduino/weather/Time.h:26:21: note: suggested alternative: 'FT_Data'
     bool SetRTCDateTime(MyData &myData)
                         ^~~~~~
                         FT_Data
    

    Second issue

    In file included from /home/pi/Arduino/weather/Data.h:24,
                     from /home/pi/Arduino/weather/weather.ino:25:
    /home/pi/Arduino/weather/Weather.h: In member function 'bool Weather::Fill(const JsonObject&)':
    /home/pi/Arduino/weather/Weather.h:117:75: warning: 'typename ArduinoJson6194_F1::enable_if<ArduinoJson6194_F1::is_same<T, char*>::value, const char*>::type ArduinoJson6194_F1::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6194_F1::ElementProxy<ArduinoJson6194_F1::MemberProxy<ArduinoJson6194_F1::MemberProxy<ArduinoJson6194_F1::ObjectRef, const char*>, const char*> >; TStringRef = const char*; typename ArduinoJson6194_F1::enable_if<ArduinoJson6194_F1::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations]
           hourlyMain[0]    = root["current"]["weather"][0]["main"].as<char *>();
                                                                               ^
    In file included from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/JsonDocument.hpp:9,
                     from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/BasicJsonDocument.hpp:7,
                     from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Document/DynamicJsonDocument.hpp:7,
                     from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson.hpp:28,
                     from /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson.h:9,
                     from /home/pi/Arduino/weather/Weather.h:25,
                     from /home/pi/Arduino/weather/Data.h:24,
                     from /home/pi/Arduino/weather/weather.ino:25:
    /home/pi/Arduino/libraries/ArduinoJson/src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here
           as() const {
           ^~
    

    Third issue

    /home/pi/Arduino/weather/weather.ino: In function 'void setup()':
    weather:52:31: error: 'SetRTCDateTime' cannot be used as a function
              SetRTCDateTime(myData);
                                   ^
    
    opened by helo-head 1
  • Arduino compile error

    Arduino compile error

    What libraries are required to get this to build?

    Currently have libraries: Time, Moonrise, M5GFX, M5EPD, ArduinoJson, Wifi

    Using Arduino IDE 1.8.6 on MacOS

    /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp: In member function 'void M5EPD::BatteryADCBegin()': /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:90:31: note: in expansion of macro 'BAT_ADC_CHANNEL' adc1_config_channel_atten(BAT_ADC_CHANNEL, ADC_ATTEN_DB_11); ^~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:90:31: note: in expansion of macro 'BAT_ADC_CHANNEL' adc1_config_channel_atten(BAT_ADC_CHANNEL, ADC_ATTEN_DB_11); ^~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp: In member function 'uint32_t M5EPD::getBatteryRaw()': /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:100:25: note: in expansion of macro 'BAT_ADC_CHANNEL' return adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:100:25: note: in expansion of macro 'BAT_ADC_CHANNEL' return adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp: In member function 'uint32_t M5EPD::getBatteryVoltage()': /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:111:39: note: in expansion of macro 'BAT_ADC_CHANNEL' adc_raw_value += adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ /Users/bfaist/Documents/Arduino/libraries/M5EPD/src/M5EPD.cpp:111:39: note: in expansion of macro 'BAT_ADC_CHANNEL' adc_raw_value += adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~

    opened by bfaist 0
  • Changes with new openweathermap accounts

    Changes with new openweathermap accounts

    Vers nice work, thanks for that. unfortunately my display is full of errors and weather is not properly displayed.

    I found that

    uri += "/data/2.5/onecall";

    onecall is not free anymore with new accounts. We need two requests now and only get the current weather and a 5d forecast with 3h timestamps.

    uri += "/data/2.5/weather";
    uri += "/data/2.5/forecast";

    Do you consider an update on this?

    opened by drewsed 0
  • Arduino compile error

    Arduino compile error

    In file included from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\M5PaperWeather\weather\Weather.h: In member function 'bool Weather::Fill(const JsonObject&)': D:\Arduino\M5PaperWeather\weather\Weather.h:127:75: warning: 'typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char*>::value, const char*>::type ArduinoJson6185_91::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::ObjectRef, const char*>, const char*> >; TStringRef = const char*; typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations] hourlyMain[0] = root["current"]["weather"][0]["main"].as<char >(); ^ In file included from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/JsonDocument.hpp:9, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/BasicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/DynamicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:21, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from D:\Arduino\M5PaperWeather\weather\Weather.h:25, from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here as() const { ^~ In file included from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\M5PaperWeather\weather\Weather.h:128:75: warning: 'typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char>::value, const char*>::type ArduinoJson6185_91::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::ObjectRef, const char*>, const char*> >; TStringRef = const char*; typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations] hourlyIcon[0] = root["current"]["weather"][0]["icon"].as<char >(); ^ In file included from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/JsonDocument.hpp:9, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/BasicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/DynamicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:21, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from D:\Arduino\M5PaperWeather\weather\Weather.h:25, from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here as() const { ^~ In file included from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\M5PaperWeather\weather\Weather.h:133:84: warning: 'typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char>::value, const char*>::type ArduinoJson6185_91::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::ArrayRef>, const char*> >; TStringRef = const char*; typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations] hourlyMain[i] = hourly_list[i - 1]["weather"][0]["main"].as<char >(); ^ In file included from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/JsonDocument.hpp:9, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/BasicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/DynamicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:21, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from D:\Arduino\M5PaperWeather\weather\Weather.h:25, from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here as() const { ^~ In file included from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\M5PaperWeather\weather\Weather.h:134:84: warning: 'typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char>::value, const char*>::type ArduinoJson6185_91::MemberProxy<TParent, TStringRef>::as() const [with T = char*; TObject = ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::MemberProxy<ArduinoJson6185_91::ElementProxy<ArduinoJson6185_91::ArrayRef>, const char*> >; TStringRef = const char*; typename ArduinoJson6185_91::enable_if<ArduinoJson6185_91::is_same<T, char*>::value, const char*>::type = const char*]' is deprecated: Replace as<char*>() with as<const char*>() [-Wdeprecated-declarations] hourlyIcon[i] = hourly_list[i - 1]["weather"][0]["icon"].as<char *>(); ^ In file included from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/JsonDocument.hpp:9, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/BasicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Document/DynamicJsonDocument.hpp:7, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:21, from D:\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from D:\Arduino\M5PaperWeather\weather\Weather.h:25, from D:\Arduino\M5PaperWeather\weather\Data.h:24, from D:\Arduino\M5PaperWeather\weather\weather.ino:30: D:\Arduino\libraries\ArduinoJson\src/ArduinoJson/Object/MemberProxy.hpp:79:7: note: declared here as() const { ^~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp: In member function 'void M5EPD::BatteryADCBegin()': D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:90:31: note: in expansion of macro 'BAT_ADC_CHANNEL' adc1_config_channel_atten(BAT_ADC_CHANNEL, ADC_ATTEN_DB_11); ^~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:90:31: note: in expansion of macro 'BAT_ADC_CHANNEL' adc1_config_channel_atten(BAT_ADC_CHANNEL, ADC_ATTEN_DB_11); ^~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp: In member function 'uint32_t M5EPD::getBatteryRaw()': D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:100:25: note: in expansion of macro 'BAT_ADC_CHANNEL' return adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:100:25: note: in expansion of macro 'BAT_ADC_CHANNEL' return adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp: In member function 'uint32_t M5EPD::getBatteryVoltage()': D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: error: 'ADC1_GPIO35_CHANNEL' was not declared in this scope #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:111:39: note: in expansion of macro 'BAT_ADC_CHANNEL' adc_raw_value += adc1_get_raw(BAT_ADC_CHANNEL); ^~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:5:25: note: suggested alternative: 'ADC1_CHANNEL_7' #define BAT_ADC_CHANNEL ADC1_GPIO35_CHANNEL ^~~~~~~~~~~~~~~~~~~ D:\Arduino\libraries\M5EPD\src\M5EPD.cpp:111:39: note: in expansion of macro 'BAT_ADC_CHANNEL' adc_raw_value += adc1_get_raw(BAT_ADC_CHANNEL);

    opened by dronix27 2
Owner
null
C++ wrapper library for global weather API - hyperlocal weather forecasts

meteosource_cpp - Weather API library C++ wrapper library for Meteosource weather API that provides detailed hyperlocal weather forecasts for any loca

Meteosource 3 Oct 19, 2022
LineaMeteoStazione is a complete weather station

LineaMeteoStazione is a complete weather station which can be interfaced with professional sensors from Sensirion as well as some Davis Instrument component (Rain Gauge, Anemometer) The project is aimed as DIY weather station but just requiring the assembly part, because the boards will already be given programmed by me as well as the complete PCB. The code will be shared Opensource for the people who wants to try to do it from the beginning or modify it!

Eugenio 14 Aug 18, 2021
Using the LilyGo EPD 4.7" display to show OWM Weather Data

LilyGo-EPD-4-7-OWM-Weather-Display Using the LilyGo EPD 4.7" display to show OWM Weather Data Version 2.72 Improved Icon shapes and positioning Adjust

G6EJD 13 Apr 2, 2021
Tiny weather station based on TTGO T5 V2.3.1 (ESP32 with 2.13

Tiny weather station based on TTGO T5 V2.3.1 (ESP32 with 2.13" e-ink display) Features wireless and rechargable weather description including temperat

Piotr Kubica 18 Dec 5, 2022
Weather clock with automatic time synchronization

Clock with weather and automatic time synchronization Features Display The numbers are written in a font similar to handwritten; The change of numbers

Anton Petrusevich 4 Apr 1, 2022
M5Core2 Weather Dashboard based on LVGL.

M5Core2 Weather Dashboard Demo Based on LVGL and X-TRACK. Before compile Because CPP does not support flexible array member, you need to modify the de

M5Stack 19 Dec 12, 2022
Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard using Grafana.

InfluxGrafanaTutorial Example code for collecting weather data from an ESP32 and then uploading this data to InfluxDB in order to create a dashboard u

Michael Klements 9 Dec 30, 2022
This project contains information on the PC-Link hardware interface for some early 2000 Sony HiFi decks

pclink-i2c This project contains information on the PC-Link hardware interface for some early 2000 Sony HiFi decks, such as the CMT-DC500MD (also know

Sir68k 1 Jan 21, 2022
A Lilu plugin that makes System Information recognize your Realtek card reader as a native one

Realtek Card Reader Driver Friend Introduction A Lilu plugin that makes System Information recognize your Realtek card reader as a native one. Support

FireWolf 57 Nov 30, 2022
A handy little system information monitor using and ESP32 + ILI9488 TFT. Receives data over Serial Bluetooth.

Bluetooth-System-Monitor A handy little system information monitor using and ESP32 + ILI9488 TFT. Receives data over Serial Bluetooth and thus giving

Dustin Watts 32 Dec 22, 2022