STM32 microcontroller demo with ST7789 240x240 LCD (mandelbrot, checkboard, image)

  Рет қаралды 18,474

Miroslav Bendik

Miroslav Bendik

Күн бұрын

STM32F103C8T6 microcontroller driving 240x240 LCD.
Demo contains:
colors
checkboard
mandelbrot
image
Code: github.com/mir...
Pins: A7, A5 connected to LCD SPI. Reset pin is connected to A9

Пікірлер
@MrSasha3050
@MrSasha3050 5 жыл бұрын
Sooo fast 🔥👍
@wegi9621
@wegi9621 Жыл бұрын
Cheessboard was nice =)
@harrisoncreates
@harrisoncreates 4 жыл бұрын
Would you be willing to do a tutorial on how you set this up? Super interesting!
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
I don't have enough free time for tutorials at the moment
@harrisoncreates
@harrisoncreates 4 жыл бұрын
@@MiroslavBendik Okay no problem! Would you happen to have the code or pinouts you used instead? If not it's totally okay, just trying to make something similar
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
@@harrisoncreates pins A7 and A5 are wired to LCD SPI. Reset pin is connected to A9. All other pins are unconnected or connected to something else (not used in demo).
@harrisoncreates
@harrisoncreates 4 жыл бұрын
@@MiroslavBendik thank you so much!! I really appreciate it!!
@BobrDrob
@BobrDrob 5 жыл бұрын
Wow, that's awesome! The examples I've seen before were running like 4FPS or so. Actually rumors were saying that it is the display itself very slow. (the redraw of the inner buffer was slow) P.S. Is there any way to use something like double buffering for the cases when you need to transfer the difficult picture to the screen and you want this picture to appear momentarily? (Can you load the picture slow, but refresh screen only after that?)
@MiroslavBendik
@MiroslavBendik 5 жыл бұрын
This display is not slow. Maximum framerate is 119fps. Double buffering is not possible, controller has no extra memory for second buffer (ST7789V datasheet, part Example 2: MPU write is slower than panel read).
@matthewspotten3533
@matthewspotten3533 4 жыл бұрын
You have made a pretty amazing library for this. I have one question though, I would like to get the current scan line of the display device and have played around with the read command functions in your library with no success. Is it even possible to read from this device because it has no MISO line, or is the SDA bidirectional? I would like to do this to avoid the tearing effect.
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
It's board with CS(X) pin? When yes then reading should work. After read commands its not possible to continue writing without reseting link state with CS pin. My display board/module does not have CS pin. I spent many hours trying to remove tearing, without effect, but without CS it's not possible.
@matthewspotten3533
@matthewspotten3533 4 жыл бұрын
@@MiroslavBendik I also spend a ton of hours trying to do it without CS. I could not figure it out either. Thanks for the info.
@gunterotte
@gunterotte 4 жыл бұрын
@@matthewspotten3533 Maybe this could help for this :-) www.instructables.com/Adding-CS-Pin-to-13-LCD/
@kolyahome22
@kolyahome22 4 жыл бұрын
Добрый день. А можете прикрепить фото с подключением выводов?
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
Pins: A7, A5 connected to LCD SPI. Reset pin is connected to A9, other pins are connected to another project.
@PP-bb8vp
@PP-bb8vp 3 жыл бұрын
When we were passing command and data to a register should we release CS line after each spi transaction, or only need to toggle D/C line with CS low?
@MiroslavBendik
@MiroslavBendik 3 жыл бұрын
Toggle is mandatory only for reverse transfer (reading framebuffer or display ID, display status). My display module has no CS pin.
@artsiomkazlouski5127
@artsiomkazlouski5127 9 ай бұрын
can it be used, for example, with f407?
@MiroslavBendik
@MiroslavBendik 9 ай бұрын
This uses direct register access, aggresive overclocking ... so no. You can rewrite hardware specific quirks, or rewrite it with HAL.
@artsiomkazlouski5127
@artsiomkazlouski5127 9 ай бұрын
@@MiroslavBendik I don't have enough knowledge. low beginner level. thanks for the answer.
@locker87
@locker87 4 жыл бұрын
Do you know of any small displays such as this one that has a high refresh rate that can display video? I’ve Been looking through adafruit but I haven’t really found anything.
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
Most LCDs up to 240x240px are fast enough to display video. A LCD with a parallel interface instead of SPI must be used for higher resolution.
@j.lietka9406
@j.lietka9406 4 жыл бұрын
I should know, but what arduino board is that? Thank you & cool program! The screen seems to respond well! 🤓🖖
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
Its STM32F103C8T6 minimum system development board (sometimes called the blue pill). Price cca $1.5 USD.
@j.lietka9406
@j.lietka9406 4 жыл бұрын
@@MiroslavBendik thank you 🤓
@filigenzilab9613
@filigenzilab9613 4 жыл бұрын
Is there a way to make it display video input? Thanks
@MiroslavBendik
@MiroslavBendik 4 жыл бұрын
Video input? STM32F103C8T6 does not have any video inputs
@filigenzilab9613
@filigenzilab9613 4 жыл бұрын
Miroslav Bendik ok, thanks
@projektmaster5980
@projektmaster5980 2 жыл бұрын
DMA aktiviert?
@MiroslavBendik
@MiroslavBendik 2 жыл бұрын
yes
@RomanGen1
@RomanGen1 5 жыл бұрын
great job (despite small amount of views). 2Questions: 1. if i not mistaken, pinout of display looks like i2c, where is MISO/MOSI/SCK ? 2. did you try to connect two displays (STM32 provides 2 spi ?) , i`m going to try make simple "living eyes" toy
@MiroslavBendik
@MiroslavBendik 5 жыл бұрын
1. This is SPI. Wires connected to I2C are part of BME280 sensor (not used in this demo) 2. Two displays should not be problem (with separate SPI or on same SPI using CS signal), but not with my library.
@resetcoder
@resetcoder 5 жыл бұрын
Why was the image rendering so slow? Was it realtime jpeg decoding/scaling, or?
@MiroslavBendik
@MiroslavBendik 5 жыл бұрын
No, image is uploaded as raw bitmap via gdb -> st-link. MCU does not have enough memory for the whole image, so it is uploaded in parts.
@resetcoder
@resetcoder 5 жыл бұрын
@@MiroslavBendik Nice though, I've used your code to create a good spi+dma library, actually this was the most useful code I've found in days. Thx for sharing!
@resetcoder
@resetcoder 5 жыл бұрын
@@MiroslavBendik Really, Your example code helped so much to create a good SPI library, the arduino framework for stm32 is useless, doesn't even support the DMA, this maple or wth library didn't work at all, the original STm32F4 library by STMicro is awful, the HAL drivers using so much program space, ram, and it is slow as fuck. I'm using STM only since about 2 weeks and it was a much better idea to create a nice clean and optimized library for myself, and the simplicity of Your initialization of the peripherals just got me immediately. I've ported it to F407 and it was kind of difficult for me with zero knowledge about STM's, but now it is working fine. Every example I've found online was useless or overcomplicated. Yay. kzbin.info/www/bejne/iIexg6x5qsild8k this might be familiar
STM32 + LCD TFT = Display Any Data
17:28
Nick Electronics
Рет қаралды 23 М.
Connecting and Configuring the ST7789 LCD SPI Display to the ESP32
11:09
Retro Tech & Electronics
Рет қаралды 68 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.
Enceinte et en Bazard: Les Chroniques du Nettoyage ! 🚽✨
00:21
Two More French
Рет қаралды 42 МЛН
ST7789 Display Review | Uploading Image
6:24
Electronics BD
Рет қаралды 111 М.
IPS дисплей на ST7735S, «Убийца» OLED
3:51
arduinoLab
Рет қаралды 49 М.
Step-by-Step Tutorial: TFT Display with ESP8266
14:11
Mario's Ideas
Рет қаралды 6 М.
Biggest TFT 7" for Arduino or ESP32 - Parallel Communication
10:16
Electronoobs
Рет қаралды 77 М.
IPS displays on ST7789 and ST7735 controllers
13:20
Электроника в объективе
Рет қаралды 225 М.
ST7735 1.8" TFT Display and STM32 || HAL
8:38
ControllersTech
Рет қаралды 42 М.
STM32+LVGL == WATCH
6:15
aries_hu
Рет қаралды 15 М.
IL'HAN - Qalqam | Official Music Video
03:17
Ilhan Ihsanov
Рет қаралды 700 М.