Northstrix / Midbar-ESP32-CYD-Firebase-Edition

A version of Midbar data vault adapted for the ESP32 CYD and WebFlash. It keeps the cryptographic keys in the ESP32 RAM and stores the ciphertexts (encrypted data) in the Google Firebase.
https://www.instructables.com/How-to-Turn-ESP32-CYD-Into-a-Secure-IoT-Data-Vault/
MIT License
1 stars 1 forks source link

Feature Request - Support for CYD2USB #1

Open Rovel opened 2 months ago

Rovel commented 2 months ago

Hi, lovely project, I was trying to setup it in the CYD2USB variant and it seems to work besides the inverted color on the screen.

Not sure how to help bc not a specialist on CYD but the CYD esp32 marauder got a really nice webflasher who handled that on this same device I webflashed midbar CYD firebase.

I got to the firebase connect but it seems to have some sort of error connecting to the firebase even with working API KEY and a valid RTDB, any suggestion on debugging that? I got the Firebase error reboot and try again

I also suggest to inform people better about the database rules of the RTDB since in the mentioned tutorial they suggest to go all public and that kinda bad for storing secrets even if they are encrypted, using the API key may not be necessary to open the db all the way.

I love Firebase but considering the purpose of the project maybe a more opensource solution would be better like a supabase, mongo or redis who all have Saas solutions but the source is kinda open with their respectives licenses.

Anyway amazing job on this project!!

Rovel commented 2 months ago

I got to the firebase connect but it seems to have some sort of error connecting to the firebase even with working API KEY and a valid RTDB, any suggestion on debugging that? I got the Firebase error reboot and try again

Found the issue, since I knew how to setup Firebase I didnt fully read the mentioned tutorial, looking thu the code I found you need to enable anonymous auth to have it working, so would be great to have the blog post mentioning it

Northstrix commented 2 months ago

Hi, I'm glad that you liked this project so much that you've even decided to try it out. I would have added the CYD2USB version if I had the board at hand and was willing to spend time figuring out how to make a webflash with more than one image. As for the display issue, you should be able to fix it if you uncomment one or two of these lines in the "User_Setup.h" file (I just don't exactly remember what I did when I had the same issue with one of the displays):

// #define TFT_INVERSION_ON // #define TFT_INVERSION_OFF // #define TFT_RGB_ORDER TFT_RGB // Colour order Red-Green-Blue // #define TFT_RGB_ORDER TFT_BGR // Colour order Blue-Green-Red

Actually, if you compile the firmware yourself and fix the color issue, would you please tell me which line(s) you have added to the config? If I have time for this, I'll simply make a separate repository for the CYD2USB version with webflash.

And thank you for spending your time to write these posts and for your database-related suggestions.

Rovel commented 1 month ago

Hi, I did a fork and just changed the color and is pretty ok now, https://github.com/Rovel/Midbar-ESP32-CYD-Firebase-Edition/tree/CYD2USB

Line 722 in https://github.com/Rovel/Midbar-ESP32-CYD-Firebase-Edition/blob/CYD2USB/V1.0/Firmware_for_ESP32/Firmware_for_ESP32.ino

But looking better at the code it should be at line 753 since where is the main display function

In my case there was no need to change User_Setup.h since I had setup it before to work on the base CYD repo as following the readme mentioned. so the new repo is basically this branch and the User_setup.h from this link: https://github.com/witnessmenow/ESP32-Cheap-Yellow-Display/blob/main/cyd.md#my-cyd-has-two-usb-ports

I was wondering why the PS2 keyboard when you have a touch interface in the device?

I'm contemplating to try to add lvgl to the project to avoid a big keyboard since lvgl have nice widgets for keyboards https://docs.lvgl.io/8.3/examples.html#keyboard

is pretty easy to scan nearby wifis and plot a list to choose the SSID then insert the pass with lvgl

it can be a pain to add the key and db via it but also less work on hardware setup and you can add first 2 buttons to chose between PS2 or Touch interface at startup and settings.

Also in the db url you do not need to fill the whole url since only the subdomain changes in the RTDB.

the tabs widgets also bring great value for navigation, settings and extensions.

So if you intent to add some Lvgl goodness on the project you can count on me for a little help.

Northstrix commented 1 month ago

Ok, thank you. I've added the "tft.invertDisplay(1);" line at the beginning of the setup() and made a webflash for ESP32 CYD2USB. https://northstrix.github.io/Midbar-ESP32-CYD2USB-Firebase-Edition/flash

That should work correctly. If it does, please, fork this repository (https://github.com/Northstrix/Midbar-ESP32-CYD2USB-Firebase-Edition), add at least one photo of a working project, and send a pull request so I can then add that version to the project list.

I was wondering why the PS2 keyboard when you have a touch interface in the device?

I've tried utilizing the touchscreen, but failed to resolve the issue when I click in one place, but the click registers in another. And so I've decided to focus on the core functionality of the project instead.

So if you intent to add some Lvgl goodness on the project you can count on me for a little help.

I appreciate it, but now I don't have time for adding the new features to this project. If you want to improve something in Midbar, make your own version of it and customize it as you see fit.

Rovel commented 1 week ago

I opened the PR, if you have any questions let me know.