All Projects → 930913 → Framework32

930913 / Framework32

Framework32 gives your ESP32 the ability to run multiple, graphical apps on very small displays

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Framework32

Esp32 soundrecorder
ESP32 Sound recorder with simple code in arduino-esp32. (I2S interface)
Stars: ✭ 96 (-5.88%)
Mutual labels:  arduino, esp32
Stickwatch
A DIY smart watch based on M5Stick of ESP32
Stars: ✭ 68 (-33.33%)
Mutual labels:  arduino, esp32
Deepsleepscheduler
DeepSleepScheduler is a lightweight, cooperative task scheduler library with configurable sleep and task supervision.
Stars: ✭ 59 (-42.16%)
Mutual labels:  arduino, esp32
Esp32modbustcp
Modbus client for ESP32
Stars: ✭ 51 (-50%)
Mutual labels:  arduino, esp32
Tinygsm
A small Arduino library for GSM modules, that just works
Stars: ✭ 1,186 (+1062.75%)
Mutual labels:  arduino, esp32
Wifisatellite
WiFi Satellite Project - as seen on the Chaos Communication Congress
Stars: ✭ 52 (-49.02%)
Mutual labels:  arduino, esp32
Blinker Library
An IoT Solution,Blinker library for embedded hardware. Works with Arduino, ESP8266, ESP32.
Stars: ✭ 1,095 (+973.53%)
Mutual labels:  arduino, esp32
Esp8266audio
Arduino library to play MOD, WAV, FLAC, MIDI, RTTTL, MP3, and AAC files on I2S DACs or with a software emulated delta-sigma DAC on the ESP8266 and ESP32
Stars: ✭ 972 (+852.94%)
Mutual labels:  arduino, esp32
Aunit
Unit testing framework for Arduino platforms inspired by ArduinoUnit and Google Test. Used with AUniter or EpoxyDuino for continuous builds.
Stars: ✭ 73 (-28.43%)
Mutual labels:  arduino, esp32
Esp32 I2s Slm
Sound Level Meter with ESP32 and I2S MEMS microphone
Stars: ✭ 72 (-29.41%)
Mutual labels:  arduino, esp32
Ttgo T Wristband
First steps with TTGO T-Wristband
Stars: ✭ 50 (-50.98%)
Mutual labels:  arduino, esp32
Tft espi
Arduino and PlatformIO IDE compatible TFT library optimised for the STM32, ESP8266 and ESP32 that supports different driver chips
Stars: ✭ 1,215 (+1091.18%)
Mutual labels:  arduino, esp32
Esp32 Hub75 Driver
A small, simple, passive driver for HUB75 based LED panels
Stars: ✭ 37 (-63.73%)
Mutual labels:  arduino, esp32
Bleeper
Library to manage your firmware configurations written in C++
Stars: ✭ 54 (-47.06%)
Mutual labels:  arduino, esp32
Esp3d
FW for ESP8266/ESP8285/ESP32 used with 3D printer
Stars: ✭ 979 (+859.8%)
Mutual labels:  arduino, esp32
Mysensors
MySensors library and examples
Stars: ✭ 1,150 (+1027.45%)
Mutual labels:  arduino, esp32
Esp32 Paxcounter
Wifi & BLE driven passenger flow metering with cheap ESP32 boards
Stars: ✭ 844 (+727.45%)
Mutual labels:  arduino, esp32
Esp32 esp8266 wifi speaker oled
A MP3 streaming WiFi speaker for ESP8266 & ESP32 chips
Stars: ✭ 20 (-80.39%)
Mutual labels:  arduino, esp32
Espuino
RFID-controlled musicplayer powered by ESP32
Stars: ✭ 71 (-30.39%)
Mutual labels:  arduino, esp32
Esp32 Chimera Core
ESP32-Chimera-Core 👾 is an arduino library for M5Stack, Odroid-Go, D-Duino-32-XS and other ESP32/TFT/SD bundles
Stars: ✭ 74 (-27.45%)
Mutual labels:  arduino, esp32

Demonstration

Framework32

Framework32 is designed to give your ESP32 (currently TTGO T-Display) the ability to have multiple, graphical apps, controlled by an intuitive navigational system.

Features

Current feature are:

  • Load multiple applications onto your device and choose what to run at runtime
  • Graphical "app-style" menu system with infinite scrolling
  • Navigate "home" from anywhere by double clicking the left button
  • Status bar
    • Time (from NTP)
    • WiFi strength indicator
    • Battery level indicator
  • Sleep if not being used (but can be overridden by the open app)
  • Config file (with the plan to make it dynamically updatable)
  • Easy button handlers provided

How to use

  • Double click left button to return to the menu
  • Left click - Go left/up
  • Right click - Go right/down
  • Long right click - Select

Getting started

  1. Clone the repository into your Arduino directory. (git clone https://github.com/930913/framework32.git)
  2. Copy config.example.h to config.h
  3. Populate config.h with your config (e.g. WiFi connections).

How to create an app

Take a look at the DemoApp for a simple explanatory demo.

Register your new app in apps.h

  1. #include the file containing your app object.
  2. Add the app object to the apps[] array

Methods in your app

char* getMenuName()

Return the name of the app as you want to it appear in the menu.

const unsigned short* getIcon()

Return an app icon to be displayed on the menu. It should be 64x64 and in the format for pushImage.1 This will also be the namespace for the config.

void onSetup(TFT_eSPI tft)

This is like the Arduino setup function, but run every time your app loads up.

Initialise your variables here.

You are also given the tft object2 so you display a loading/splash/intial screen.

void render(TFT_eSPI tft)

This is like the Arduino loop function, repeatedly called while your app is open.

You are given the tft object2 so you can render your application.

void onClose()

This is run when your application is being closed (because the user exited).

Clean up to prevent memory leaks if needed here.

void onButton*Click()

void onButton1Click()
void onButton1LongClick()
void onButton2Click()

Triggered when a button is clicked, but only when your app is open.

You may add your own listeners, but you must be careful not to affect anything while your app is not open.

bool getFullscreen()

Return true if the status bar should be rendered with your app.

bool getSleepDisabled()

Return true if the device should not sleep while your app is open. You should consider the power consumption implications if you do so.

JsonObject getSettings()

This is for use by your application to get the config object for your app. This will be from the menu name's key in the global config object.

For example, if your app's name was "Foo", then the config should look like this:

{
  ...
  "Foo": {
    "bar": "asdf",
    "bah": [1, 3, 5]
  },
  ...
}

and when your app calls getSettings() you will receive a JsonObject like

{
  "bar": "asdf",
  "bah": [1, 3, 5]
}

Footnotes

1 You can use Henning Karlsen's Image Converter to generate these.

2 For general graphics, Bodmer's TFT_eSPI library was used.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].