My RC Car Transmitter

Hi, I am currently converting my RC Car Transmitter from Arduino Nano, LCDMenuLib2 and CABELL_V3_FHSS protocol (thanks to both Developers) to ESP32.

What’s ready:
.) Basic Functions with display based on TFT_ESPI and LittlevGL
.) nrf24l01 functions based on CABELL_V3_FHSS

Now im building the configurations based on lv_settings.
I’ve reworked some functions, so i can use “hidden” menus (e.g. for wifi).

If it works so far, I create a GitHub link and make it available here.

1 Like

News from my side:

I‘m currently implementing a WiFi Settings Page.
What‘s working:
.) Search via ddlist, showing a modal loader while searching
.) Update ddlist with found elements
.) Show/hide password input for secured WiFi
.) Show/hide keyboard for password input

I hope that I can „release“ an alpha version tomorrow.

We have discussed a WiFi demo here. I planned to create its UI but in lack of time, I didn’t do it yet. I’m looking forward to see your implementation!

Hi, I know about your discussion. I’m currently downloading the simulator software and begin to test the wifi settings gui.

1 Like

Hi, I’ve forked lv_examples and added an Alpha Version into it (https://github.com/husky-koglhof/lv_examples).

Sorry for the “bad” code, but I’ve extracted from my RC Receiver and tried to build it with an “WiFi Mock” to use it with Simulator.

Please have a look on it and give me a short feedback.

In the meantime I will clean up the code.

For testing with the simulator you have to implement following within main.c

#define USE_SIMULATOR
#include "lv_examples/lv_apps/settings/examples/lv_ex_settings/lv_ex_settings_3.h"
#ifdef USE_SIMULATOR
#include "lv_examples/lv_apps/settings/src/lv_wifi/lv_wifi.h"
#else
#include "WiFi.h"
#endif


lv_ex_settings_3();

What you can do in these version:

  1. Activate / Deactivate WiFi HW

  2. Activate / Deactivate AP Mode/STA Mode

  3. Search for WiFi’s nearby

  4. Select a WiFi, if it is secured, Password prompt will be available

  5. Login with correct Password, if correct “Label” will be changed to connected

  6. If in AP Mode, Button will be changed to “Active” and “Label” will be changed to “Activated”

  7. Within “Info” Entry, you can see the current Informations about IP, Netmask, GW, DNS , WiFi and Clientname

I’ve tested these Settings with my ESP32, TFT_ESPI, ILI3941 and XPT2046.

Hello, I’ve uploaded new Code and Bugfixes to my forked version.
I’ve also uploaded an HTML Version of the Settings Demo.

For testing you can download from https://github.com/husky-koglhof/lv_examples

lvgl.html
lvgl.js 
lvgl.wasm 

to an webserver (e.g. local nginx).

You can demonstrate it without requiring others to download it - just enable GitHub Pages in your repository settings.

Thanks for the information!

The URL for testing is https://husky-koglhof.github.io/lv_examples/

That’s cool! As the settings app is not promoted yet it’s not really used so far and I didn’t receive feedback about its usability. Can you tell your experiences? I saw that you have added the “hidden” feature which looks very useful. Can send a Pull request?

I’m still considering if it’s better to create a unique app for WiFi (and BT later) or use the Settings app as you did. Anyway, a WiFi example is certainly a good idea even for demonstration purposes. But an example should be simple and easy to digest. I have some ideas to simplify it. Let me know if you are interested in it.

Good Morning! I’m always interested in simplifiying code. I will document my code and then send you a pull request.

In the meantime I will continue to develop my RC Transmitter, because I need a lot of settings there. I will introduce this app as soon as it is ready.

Great!
I suppose your plan is to add application-specific options to the “Settings” and “Info” pages (besides WiFi).
However, IMO it would clearer to group things differently. On smartphones in the settings menu you have a WiFi button, which opens the WiFi settings where you can enable it and then all the settings and info appears. Following this approach would simplify the structure of the menu. What do you think?

Hi, yes, i’m using a different menu structure for my RC Transmitter.
But I think it’s not a big issue to move the Info Element into e.g. WiFi.
I’ll try that tomorrow and upload a new demo.

Hi, I’ve uploaded a new demo version to https://husky-koglhof.github.io/lv_examples/.
It’s not perfect, I’ve to reorganize my code.
But the idea is working, showing the Information button within WiFi settings.

While coding I’ve found an issue, which I can’t resolve in the last 2 days.

It’s not possible to use lv_settings_refr method for LV_SETTINGS_TYPE_LIST_BTN, cause within lv_settings_refr you are testing if item->cont is NULL.
And item-cont is NULL is correct, cause the button is created without an item:
lv_obj_t * liste = lv_btn_create(page, NULL);

For the demo, I’ve created a “simple” button and changed the layout.

It looks more simple IMO, thank you for the update.

I’ve found that if onnect to an AP, go back to the main screen and go back to WiFi settings, the elements look incorrect.

image

Can you send a simple example to demonstrate only this issue?

Hi, thanks for the informations, I will test it in the evening.

I’ll also create a sample code for the issue and post it here.

Hi,
How does one create an HTML version of an app ?

Hi, here’s the repository to create an HTML Client: https://github.com/littlevgl/emscripten.
I’ve downloaded and installed as documented and then moved my own “lv_examples” into it.
After that call “make”. When ready, copy the lvgl.html, lvgl.js and lvgl.wasm to an local installed web server (e.g. nginx) for testing. With Safari and Chrome (on a Mac) it will not work without a web server.

2 Likes

Or, if you have npm installed, npm install -g live-server and then live-server --port=<desired port> in the root folder of that project will give you a server that auto-refreshes whenever the webpage changes.

1 Like

Hi, I’ve created a little Demo (https://github.com/husky-koglhof/lv_examples/blob/master/lv_apps/settings/examples/lv_ex_settings/lv_ex_settings_4.c).
Line 127 is working, line 128 not.
I’ve also uploaded a new Demo to my github-page (https://husky-koglhof.github.io/lv_examples/lv_ex_settings_4.html).

You can test it, if you enable/disable the switch.
Only the last button is changed.

Hi,

Thanks for the demo. I’ve fixed it here. Is it ok now?