Тёмный
Philipp Thalhammer
Philipp Thalhammer
Philipp Thalhammer
Подписаться
Комментарии
@calhoub
@calhoub 15 дней назад
There is no TFT_eSPI or User_Setup in there for me. Only gt911-arduino-main, LovyanGFX, lvgl, ui, then files of lv_config.h & readme.txt. Dude... what am I missing here? Why is there no TFT_eSPI folder or User_Setup.h file?
@PhilippThalhammer
@PhilippThalhammer 13 дней назад
Hmm, not sure what causes this from the top of my head. You can join my discord server and explain to me exactly what you did. Maybe we can figure it out together :)
@calhoub
@calhoub 13 дней назад
@@PhilippThalhammer To be honest, that would be incredible. I'm running into nothing but issues with literally every tutorial I go through. I'm beyond lost & quickly losing steam and wanting to give up on this yet again. When is generally best to be in the discord channel so that people are there?
@PhilippThalhammer
@PhilippThalhammer 13 дней назад
The discord is still very new, so there are not many people on there generally 😅 I am from germany and thus usually avaliable between 1pm and midnight middle european time. Just write me a message in one of the help-channels and I‘ll see what we can do :)
@elninonitro
@elninonitro 22 дня назад
I just went through all this. It's worth mentioning that pretty much all of the other guides and example code only seem to work with v8. I could not get the newer v9 to work at all
@PhilippThalhammer
@PhilippThalhammer 22 дня назад
Did you also not get it to work with this guide? 🤔
@elninonitro
@elninonitro 21 день назад
@@PhilippThalhammer Yes, but by default I used the latest version of the Arduino Library which uses very different code and will not compile. I could not find any guides for a v9.
@PhilippThalhammer
@PhilippThalhammer 21 день назад
What versions are you talking about? Squareline Studio? LVGL?
@elninonitro
@elninonitro 21 день назад
@@PhilippThalhammer LVGL - When you create a new project in Squareline and select Arduino project, it defaults to V9. So I installed LVGL v9 library in Arduino but there are vast differences between the code for v8 and v9
@PhilippThalhammer
@PhilippThalhammer 21 день назад
I see. I also experienced problems when I updated my libraries a couple of months after I did this project.
@mars3142
@mars3142 Месяц назад
I use the Pro version of EASY EDA - which is also free. The integration with JLCPCB and JCSC is great to order the PCB and also the components - I didn't use the SMD assembly service yet. The only downside are the shipping costs. If I use the cheapest one, the delay will be too long and with the fastest one, the shipping costs are way too much (for prototypes). But you're right. I really like custom PCBs and will always use them for my projects in the future.
@PhilippThalhammer
@PhilippThalhammer Месяц назад
The pro version is free as well? I have to look into that 😄 Also shipping was 8 days for me with JLC and the cheapest option 🤔
@mars3142
@mars3142 Месяц назад
@@PhilippThalhammer My order was on 07. June and today arrived the package from LCSC and the package from JLCPCB is still not here. I hope for delivery by the end of the week.
@mursalaboobacker3593
@mursalaboobacker3593 Месяц назад
great video man👌👌👌
@PhilippThalhammer
@PhilippThalhammer Месяц назад
Thank you :)
@jhow3214
@jhow3214 2 месяца назад
😅
@PhilippThalhammer
@PhilippThalhammer 2 месяца назад
? 😄
@RWB123
@RWB123 2 месяца назад
Thanks so much for making this video. I understand how it works now 🎉
@PhilippThalhammer
@PhilippThalhammer 2 месяца назад
Glad it helped!
@lohikarhu734
@lohikarhu734 2 месяца назад
Einfach... Interesse encoding both step change to get direction.
@PhilippThalhammer
@PhilippThalhammer 2 месяца назад
What do you mean by this? 😅 I already get the direction 🤔
@TOMTOM-nh3nl
@TOMTOM-nh3nl 2 месяца назад
Thank You
@saulh.Barajas2025
@saulh.Barajas2025 3 месяца назад
You are the first one who give a very good and easy tutorial thank you so much!!
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
Thanks for saying that. It means a lot :) Glad it helped. I absolutely know what you mean. It took me quite a while to figure this out because noone gave a proper explanation 😄
@saulh.Barajas2025
@saulh.Barajas2025 2 месяца назад
I'm subscribed to your channel keep creating ✌️
@SianaGearz
@SianaGearz 3 месяца назад
Before watching: let me guess, in this video you won't be making a PCB, it's a sponsor plug where the said sponsor makes the PCB for you, you just design it. So the video title will turn out misleading. And then you'll call me pedantic and claim that nobody makes their own PCBs because it's just not something that is done. And you would be wrong, because it's not that hard and in fact it was how electronics hobby was done for decades and you don't have to sit on your arse for however many weeks or pay express international shipping extortion fee.
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
Maybe you should take the time and watch it then :) It is in fact not sponsored. About the „misleading title“, I can’t say much. I did not make it with the intend to be misleading 🤷🏻‍♂️ I would also expect that most people wouldn’t think of actually „making“ the PCB by hand, but rather planning them and letting them be manufactured. And regarding the last part about the shipping, I would really recommend watching the video before going into the comments to assume a bunch of stuff. Shipping was under 5$ for me and the PCB arrived within 8 days. You will also come to notice that I do not name any PCB manufacturers.
@Huzky
@Huzky 3 месяца назад
Feel free to keep polishing that crystal ball of yours while the rest of us enjoy the actual content 👍
@alessandromeyer4888
@alessandromeyer4888 2 месяца назад
Judging from his accent, he's german. So make ("machen") is often used broadly in foreign languages, even if he was referring to actually design(ing). That what happens if you don't use your mother tongue and its certainly not with bad intent.
@PhilippThalhammer
@PhilippThalhammer 2 месяца назад
Thanks, that's true :) Also: Is it that obvious that I am german? xD
@SianaGearz
@SianaGearz 2 месяца назад
@@PhilippThalhammer You aren't being particularly stealthy about that.
@BDog-qu8vv
@BDog-qu8vv 3 месяца назад
Does squareline work on raspberry pi 5 ?
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
Haven't tried it yet. But I would assume yes, as Squareline Studio does support python (as far as I know) and Raspberry PIs can run python scripts just fine. Depending on what you are trying to do, it could be a little overkill to use a PI 5 however 😁 I just started my own discord-community. I would love to hear what you are making over there :)
@BDog-qu8vv
@BDog-qu8vv 3 месяца назад
@@PhilippThalhammer I am planning on using a pi 4 but don’t know what format file to use from SLS?(vsc with sdl or which format from SLS I need to pick for it to work) I am creating a GUI which would incorporate sensors that input values into scrollboxes
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
The eclipse SDL does support linux (see github.com/lvgl/lv_port_pc_eclipse ). So I guess it would be fine to install rasbian or something similar on your PI and run it there. However, thats just a guess. As I said I haven't tried it before 🤔
@hydrocarbon8272
@hydrocarbon8272 3 месяца назад
Thank you! Of all the vids I watched & forum posts read, your vid was the only one that made any sense of how Squareline works - specifically it's bizzare template saving BS. That was the worst part, but with your template in place it all clicked. Nobody else wanted to share their files. I specifically used an ESP32-C3 and configured it to use pin 4 for SCLK, 5 for DC, 6 for MOSI, 7 for CS, 10 for RST, then 0 & 10 for I2C's SDA & SCL.
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
I‘m glad it helped! I know exactly what you mean 😄 I spent a lot of time on trying to figure out how everything works, because no one shared all necessary information. I was so frustrated by that, that once I made it work, I decided to do a tutorial on it 😄
@VINICIUSBH100
@VINICIUSBH100 3 месяца назад
Does it also suporte microphyton ??? Thank you for sharing it with us😊
@PhilippThalhammer
@PhilippThalhammer 3 месяца назад
There seems to be support for micropython within Squareline Studio, however I am not sure how everything works exactly. I have only tried out Arduino so far 🤔 Glad you like the video :)
@aymentertag6615
@aymentertag6615 4 месяца назад
I see that you added a potensiometer to interact with UI but I didn't see you defining the pin in the code, you wired it with pin 25 on the ESP32 board
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
I did not define it as a set pin, instead I just read it directly in the loop function at the end :) It is in line 117 where it says „analogRead(25)“
@aymentertag6615
@aymentertag6615 4 месяца назад
@PhilippThalhammer it makes sense now thank you.
@KirinDave
@KirinDave 4 месяца назад
Wait, it doesn't have a Vin pin?
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
This one does not. There are models with 4 Pins, that include a Vin I belive. When I started playing around with it, I assumed it would be working the same as a Potentiometer and connected 1 pin to ground, one to a GPIO and one to 3.3V. This resulted in me frying my microcontroller 😂
@MitchDavis2
@MitchDavis2 4 месяца назад
While this shows the fundamentals of how incremental encoders work, this implementation wouldn’t work so great in practice because you’re hogging CPU time to make sure you don’t miss a pulse. This would be an excellent time to use interrupts to trigger this logic, which would free up your CPU cycles to actually run the rest of your project.
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
I also had a version that was using interrupts. However, that was causing issues with rest of the code I was using in my project 🤔 I settled for this approach, because its more „general purpose“, I think. Thank you for the comment though. I am also not all-knowing and would love to learn more about the topic :)
@lohikarhu734
@lohikarhu734 2 месяца назад
You might like to look at the STM32 encoder functions, which use 2 timers to do count and direction, with the ability to "chain" the encoder counter to another timer to get the pulse width of the transitions, to generate speed values...
@PhilippThalhammer
@PhilippThalhammer 2 месяца назад
Sounds interesting 🤔
@AdilKhan-jp7hn
@AdilKhan-jp7hn 4 месяца назад
Thank you. I have built the circuit and programmed it with Arduino IDE. The dial works but I am unable to make the needle move. The lvgl library I used is 8.3.6 and it shows the error: exit status 1 Compilation error: exit status 1
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
Did you rename your asset in Squareline studio? This only works if you use the correct name. Maybe it could also be helpful to check out the GitHub repository I linked in the description. I have uploaded the example project there :)
@AdilKhan-jp7hn
@AdilKhan-jp7hn 4 месяца назад
@@PhilippThalhammer No I did not rename the asset. I downloaded your code from the GitHub and compiled it. It gives me this error: exit status 1 Compilation error: 'lv_draw_buf_t' does not name a type; did you mean 'lv_draw_ctx_t'? I am using LVGL library 8.4.0 but have tried all the libraries for example 8.3.0 through 9.1.0 but does not work.
@AdilKhan-jp7hn
@AdilKhan-jp7hn 4 месяца назад
Here are all the error from compiling:C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:13:8: error: 'lv_draw_buf_t' does not name a type; did you mean 'lv_draw_ctx_t'? static lv_draw_buf_t draw_buf; ^~~~~~~~~~~~~ lv_draw_ctx_t C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:28:82: error: expected constructor, destructor, or type conversion before ';' token my_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p ) ^ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:28:80: error: ISO C++ forbids declaration of 'my_disp_flush' with no type [-fpermissive] my_disp_flush( lv_disp_drv_t *disp, const lv_area_t *area, lv_color_t *color_p ) ^ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino: In function 'void setup()': C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:87:29: error: 'draw_buf' was not declared in this scope lv_disp_draw_buf_init( &draw_buf, buf, NULL, screenWidth * screenHeight / 10 ); ^~~~~~~~ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:95:25: error: invalid conversion from 'int (*)(lv_disp_drv_t*, const lv_area_t*, lv_color_t*)' {aka 'int (*)(_lv_disp_drv_t*, const lv_area_t*, lv_color16_t*)'} to 'void (*)(_lv_disp_drv_t*, const lv_area_t*, lv_color_t*)' {aka 'void (*)(_lv_disp_drv_t*, const lv_area_t*, lv_color16_t*)'} [-fpermissive] disp_drv.flush_cb = my_disp_flush; ^~~~~~~~~~~~~ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:97:25: error: cannot convert 'lv_disp_drv_t*' {aka '_lv_disp_drv_t*'} to 'lv_fs_drv_t*' {aka '_lv_fs_drv_t*'} lv_fs_drv_register( &disp_drv ); ^~~~~~~~~ In file included from c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\src\draw\lv_img_decoder.h:20, from c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\src\draw\lv_draw.h:20, from c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\src/hal/lv_hal_disp.h:21, from c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\src/hal/lv_hal.h:16, from c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\lvgl.h:33, from c:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\libraries\lvgl\src/lvgl.h:17, from C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:1: c:\users\adilu\onedrive\documents\arduino\squarelineround\projectfolder\libraries\lvgl\src\misc\lv_fs.h:131:39: note: initializing argument 1 of 'void lv_fs_drv_register(lv_fs_drv_t*)' void lv_fs_drv_register(lv_fs_drv_t * drv); ~~~~~~~~~~~~~~^~~ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:102:15: error: 'lv_fs_drv_t' {aka 'struct _lv_fs_drv_t'} has no member named 'type' indev_drv.type = LV_INDEV_TYPE_POINTER; ^~~~ C:\Users\adilu\OneDrive\Documents\Arduino\SquareLineRound\ProjectFolder\ui\ui.ino:103:25: error: invalid conversion from 'void (*)(lv_indev_drv_t*, lv_indev_data_t*)' {aka 'void (*)(_lv_indev_drv_t*, lv_indev_data_t*)'} to 'lv_fs_res_t (*)(_lv_fs_drv_t*, void*, void*, uint32_t, uint32_t*)' {aka 'unsigned char (*)(_lv_fs_drv_t*, void*, void*, unsigned int, unsigned int*)'} [-fpermissive] indev_drv.read_cb = my_touchpad_read; ^~~~~~~~~~~~~~~~ exit status 1 Compilation error: 'lv_draw_buf_t' does not name a type; did you mean 'lv_draw_ctx_t'?
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
Have you set you sketchbook-folder correctly in the Arduino IDE? Other than that I am not really sure what the problem seems to be. It looks like the library is not found correctly, and that normally happens when you dont relocate your sketchbook.
@AdilKhan-jp7hn
@AdilKhan-jp7hn 4 месяца назад
@@PhilippThalhammer OK, I will try this again and report to you. Thank you for the suggestion and help.
@px64
@px64 4 месяца назад
very nice video with great quality. Keep making more!. Wishing you the best.
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
Thank you for the encouragement, This means a lot to me! I am planning to do more. Anything specific you would like to see?
@ImDadidu
@ImDadidu 4 месяца назад
Great explanation. Great animation.
@disane1987
@disane1987 4 месяца назад
Thank you! It really helps me to get started quickly with my new project :)
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
Glad to hear that!
@hilfsbereit1437
@hilfsbereit1437 4 месяца назад
Ich habe eine Frage, woher weiß der Aufruf lv_img_set_angle( ui_Pointer,... ), dass pointer gedreht werden soll und nicht gauge? Gefunden. Leider fehlt der Schritt mit dem Beschriften der image 1 und image2.
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
1. Das weiß der Aufruf, weil es oben deklariert wird ;) 2. Das Beschriften habe ich beim Aufnehmen vergessen, aber ich habe dafür Text eingeblendet um darauf hinzuweisen (siehe 1:49).
@dfgdfg_
@dfgdfg_ 4 месяца назад
Thank you
@goodn1051
@goodn1051 4 месяца назад
hope you make more......
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
More tutorials? :) Initially I wasn’t going to, but seeing the response to this one kinda changed my mind 😂 I am currently working on one about rotary (ring) encoders, because there seems to be little to no resources about that. Maybe also a showcase on how to use them together with these round displays, as they go great together. Is there anything specific you would like to see? :)
@goodn1051
@goodn1051 4 месяца назад
@@PhilippThalhammer if you could also do one with cheaper and readily avaliable oled displays e.g these ili9341 displays it would be great
@goodn1051
@goodn1051 4 месяца назад
sorry tft displays
@PhilippThalhammer
@PhilippThalhammer 4 месяца назад
It should be very analogue with other tft displays, if you just follow the steps I outlined with this one. I don't really want to make another video about more or less the same topic 😅 Also the one I am using is about 7€😁 If you have problems feel free to ask though :) Maybe I will also create a discord server for stuff like this in the future 🤔
@richonguzman
@richonguzman 5 месяцев назад
nice! maybe I will have to get into Squareline Studio as I wanted to do a small TFT control of Lilygo T-deck :P
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
I haven’t tried doing more advanced stuff with squareline studio, as it does feel really janky and unfinished in my opinion, but I found it to be a shortcut for small projects. Would love to see the results if you try!
@richonguzman
@richonguzman 5 месяцев назад
@@PhilippThalhammer sadly beside this there is no easy (doh!) way of programing the TFT screen
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
Yep, thats true… I mean you could go with LVGL from scratch, but I quickly lost motivation when I tried 😅
@ronakvaishnav-yi3xw
@ronakvaishnav-yi3xw 5 месяцев назад
Nice video Just one suggestion, increase your voice volume, it's so hard to hear you even with headphones on (on full volume)
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
I think that might be an issue on your side 🤔 I just double checked on my PC and smartphone and its quite loud on both devices. Thank you for the suggestion anyways :)
@quirinschweigert7794
@quirinschweigert7794 5 месяцев назад
@@PhilippThalhammerit‘s definitely an issue with this video. I also noticed it right away.
@nulnul7050
@nulnul7050 5 месяцев назад
It is a bit quiet on my phone too
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
Thats wierd. I don’t understand why its not an issue on my devices then 🤔
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
Do you mean the volume on the video in total is low? Could you check with one of my other videos if the problem persists there as well? If thats no trouble for you of course.
@mutoleandro
@mutoleandro 5 месяцев назад
Nice video!
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
Thank you! I appreciate it :)
@TylerD600
@TylerD600 5 месяцев назад
Good work dude!
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
Thanks man :) Means a lot.
@obsolete9734
@obsolete9734 5 месяцев назад
what theme do you use?
@PhilippThalhammer
@PhilippThalhammer 5 месяцев назад
I use "Things" :)
@ImDadidu
@ImDadidu 6 месяцев назад
I want one too
@oskarurbaniak4028
@oskarurbaniak4028 7 месяцев назад
Really cool video, very well structured and edited. Looking forward to seeing more!
@PhilippThalhammer
@PhilippThalhammer 7 месяцев назад
Thank you man. This means a lot :)
@DoktorP99
@DoktorP99 7 месяцев назад
Really cool design and what an awesome idea! Your friends seem to be really nice as well 😃
@Huzky
@Huzky 7 месяцев назад
Great video! 👍 Hope to see more content from you and your projects. Keep up the good work! 🔥