ControllersTech
ControllersTech
  • Видео 253
  • Просмотров 5 436 598
How to Interface Dot Matrix Display with STM32 || PART1
Purchase the Products shown in this video from :: controllerstech.store
________________________________________________________________________________________
Dot Matrix tool :::: dotmatrixtool.com/
Checkout more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd
To download the code and for more details, goto :::: controllerstech.com/led-dot-matrix-and-stm32/
________________________________________________________________________________________
******* SUPPORT US BY DONATING******
paypal.me/controllertech
*******Join the Membership*******
ruclips.net/channel/UCkdqtSMnhYuMsJkyHOxiPZQjoin
Join the Discord Server discord.gg/D32JE5wKyD
Join the Telegram Group t.me/controllerstechdis...
Просмотров: 309

Видео

ESP32#4 How to use I2C || PART 2 || Read & Write data to MPU6050
Просмотров 758День назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART1 :::: ruclips.net/video/xCVAuSobOxU/видео.html Check out More ESP32 Videos: ruclips.net/p/PLfIJKC1ud8ghS_i2Yky2actXWbQoqrscN To download the Code, goto :::: controllerstech.com/esp32-4-how-to-use-i2c-part2/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCkdqtSMnhYuMsJkyHO...
Interface 1.3" SH1106 I2C OLED Display with STM32 || Text || Bitmap || Gif
Просмотров 1,5 тыс.14 дней назад
Purchase the Products shown in this video from :: controllerstech.store Watch SSD1306 0.96" I2C OLED video :::: ruclips.net/video/M5ddTjrcvEs/видео.html Image tool :::: lvgl.io/tools/imageconverter Checkout more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the code, goto :::: controllerstech.com/interface-sh1106-oled-display-with-stm32/ SUPPORT US BY DONATING p...
ESP32#3 How to use I2C || PART 1 || Interface LCD1602
Просмотров 76114 дней назад
Purchase the Products shown in this video from :: controllerstech.store Watch I2C PART 2 :::: ruclips.net/video/clRqraqjvxw/видео.html Check out More ESP32 Videos: ruclips.net/p/PLfIJKC1ud8ghS_i2Yky2actXWbQoqrscN To download the Code, goto :::: controllerstech.com/i2c-in-esp32-esp-idf-lcd-1602/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCkdqtSMnhYuM...
Continuous Servo with STM32 || PART 2 || Vary RPM using Potentiometer
Просмотров 78721 день назад
Purchase the Products shown in this video from :: controllerstech.store Continuous Servo PART1 :::: ruclips.net/video/M_iE7M00Gq0/видео.html Interface Regular Servo Motor with STM32 :::: ruclips.net/video/WMS0t9WGqVw/видео.html Regular Servo Angle Control in STM32 :::: ruclips.net/video/GQdz5RxIyqo/видео.html Checkout more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To do...
ESP32#2 How to use UART || PART 2 || Control LED from Computer
Просмотров 75121 день назад
Purchase the Products shown in this video from :: controllerstech.store Check out More ESP32 Videos: ruclips.net/p/PLfIJKC1ud8ghS_i2Yky2actXWbQoqrscN To download the Code, goto :::: controllerstech.com/esp32-2-how-to-use-uart-part2/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCkdqtSMnhYuMsJkyHOxiPZQjoin Join the Discord Server discord.gg/D32JE5wKyD J...
Interface Continuous Rotation Servo with STM32 || PART 1
Просмотров 1,2 тыс.28 дней назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART2 :::: ruclips.net/video/rofpd2UvWFQ/видео.html Interface Regular Servo Motor with STM32 :::: ruclips.net/video/WMS0t9WGqVw/видео.html Regular Servo Angle Control in STM32 :::: ruclips.net/video/GQdz5RxIyqo/видео.html Checkout more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the ...
ESP32#1 How to use UART || PART 1 || Simple RX and TX
Просмотров 1,5 тыс.Месяц назад
Purchase the Products shown in this video from :: controllerstech.store Check out More ESP32 Videos: ruclips.net/p/PLfIJKC1ud8ghS_i2Yky2actXWbQoqrscN To download the Code, goto :::: controllerstech.com/how-to-use-uart-in-esp32-esp-idf/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCkdqtSMnhYuMsJkyHOxiPZQjoin Join the Discord Server discord.gg/D32JE5wKy...
Interface Buzzer with STM32 || Play a Melody
Просмотров 1,3 тыс.Месяц назад
Purchase the Products shown in this video from :: controllerstech.store Github repo mentioned in the video:::: github.com/MrRedBeard/DotNet-MXL-Parsing-for-Arduino/tree/master Checkout more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the code, goto :::: controllerstech.com/interface-passive-buzzer-with-stm32/ SUPPORT US BY DONATING paypal.me/controllertech Joi...
Getting Started with ESP32 || ESP_IDF on MAC OS
Просмотров 2,3 тыс.Месяц назад
Purchase the Products shown in this video from :: controllerstech.store ESP32-IDF Download :::: github.com/espressif/idf-eclipse-plugin/blob/master/README.md Install Homebrew on Mac :::: ruclips.net/video/p7hpi084Y_s/видео.htmlsi=qfu5mQChJl4zsG4f Check out More ESP32 Videos: ruclips.net/p/PLfIJKC1ud8ghS_i2Yky2actXWbQoqrscN SUPPORT US BY DONATING paypal.me/controllertech Join the Membership rucl...
Interface TM1637 (7-Seg Display) with STM32 || PART 2 || Display Clock
Просмотров 1,2 тыс.Месяц назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART1 :::: ruclips.net/video/kNZQb1TjgF4/видео.html Some more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the code, goto :::: controllerstech.com/display-clock-on-tm1637/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCkdqtSMnhYuMsJkyHOxiPZQj...
Interface TM1637 (7-Seg Display) with STM32 || PART 1 || Connection & Basic Configuration
Просмотров 1,7 тыс.2 месяца назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART2 :::: ruclips.net/video/daZN_9c1ETk/видео.html Some more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the code, goto :::: controllerstech.com/interface-7-segment-display-with-stm32-tm1637/ SUPPORT US BY DONATING paypal.me/controllertech Join the Membership ruclips.net/channel/UCk...
LVGL on STM32 - PART 7 || Boot Application from Ext Flash || H750
Просмотров 2,3 тыс.2 месяца назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART 6 :::: ruclips.net/video/68YwDGQaW-I/видео.html Checkout LVGL Playlist :::: ruclips.net/p/PLfIJKC1ud8ghGES4CUTjHTn_G4gly_atz Checkout STM32 QSPI Playlist :::: ruclips.net/p/PLfIJKC1ud8ggM_4kmzQF4JAStU4lN07z3 Some more STM32 Videos :::: ruclips.net/p/PLfIJKC1ud8gga7xeUUJ-bRUbeChfTOOBd To download the code, goto ::...
W25Q FLASH Memory || Part 11 || Boot from External Flash || XIP
Просмотров 1,8 тыс.2 месяца назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART 10 :::: ruclips.net/video/vo92RHKxYA4/видео.html STM32 External Loader Repo :::: github.com/STMicroelectronics/stm32-external-loader/tree/contrib Check out the STM32 QSPI Playlist :::: ruclips.net/p/PLfIJKC1ud8ggM_4kmzQF4JAStU4lN07z3 Check out the W25Q Playlist :::: ruclips.net/p/PLfIJKC1ud8gjUw1ExWVbeLsozbdOOigQ...
W25Q FLASH Memory || Part 10 || QSPI & External Loader on H750
Просмотров 2,3 тыс.2 месяца назад
Purchase the Products shown in this video from :: controllerstech.store Watch PART 9 :::: ruclips.net/video/Gil_LbT5UVw/видео.html Watch PART 11 :::: ruclips.net/video/9sDp561MZK4/видео.html STM32 External Loader Repo :::: github.com/STMicroelectronics/stm32-external-loader/tree/contrib Check out the STM32 QSPI Playlist :::: ruclips.net/p/PLfIJKC1ud8ggM_4kmzQF4JAStU4lN07z3 Check out the W25Q Pl...
LVGL on STM32 - PART 6 || How to store Assets into External Flash || QSPI
Просмотров 1,8 тыс.3 месяца назад
LVGL on STM32 - PART 6 || How to store Assets into External Flash || QSPI
STM32 FSMC || LCD PART 3 || Add LVGL & Create UI in SquareLine Studio
Просмотров 2,3 тыс.3 месяца назад
STM32 FSMC || LCD PART 3 || Add LVGL & Create UI in SquareLine Studio
STM32 FSMC || LCD PART 2 || Add touch Interface
Просмотров 1,9 тыс.4 месяца назад
STM32 FSMC || LCD PART 2 || Add touch Interface
STM32 FSMC || LCD PART 1 || How to configure
Просмотров 4,9 тыс.4 месяца назад
STM32 FSMC || LCD PART 1 || How to configure
STM32 UART #10 || Lin Protocol PART3 || Master - Slave communication using the Linbus
Просмотров 2,2 тыс.4 месяца назад
STM32 UART #10 || Lin Protocol PART3 || Master - Slave communication using the Linbus
STM32 UART #9 || Lin Protocol PART2 || Use Lin Transceivers to communicate between Master & Slave
Просмотров 2,6 тыс.5 месяцев назад
STM32 UART #9 || Lin Protocol PART2 || Use Lin Transceivers to communicate between Master & Slave
STM32 UART #8 || Lin Protocol PART1 || Configure Master and send Data
Просмотров 3,9 тыс.5 месяцев назад
STM32 UART #8 || Lin Protocol PART1 || Configure Master and send Data
STM32 UART #7 || One-Wire Protocol || Interface DS18B20
Просмотров 4,1 тыс.5 месяцев назад
STM32 UART #7 || One-Wire Protocol || Interface DS18B20
STM32 UART #6 || Communicate using Single Wire || Half Duplex Mode
Просмотров 3,1 тыс.6 месяцев назад
STM32 UART #6 || Communicate using Single Wire || Half Duplex Mode
Interface I2C-LCD with STM32 || AIP31068 with Built-in I2C
Просмотров 2,4 тыс.6 месяцев назад
Interface I2C-LCD with STM32 || AIP31068 with Built-in I2C
STM32 UART #5 || Receive Data using IDLE Line || Interrupt || DMA
Просмотров 5 тыс.6 месяцев назад
STM32 UART #5 || Receive Data using IDLE Line || Interrupt || DMA
STM32 UART #4 || Receive Data using the DMA
Просмотров 8 тыс.6 месяцев назад
STM32 UART #4 || Receive Data using the DMA
STM32 UART #3 || Receive Data in Blocking Mode & Interrupt
Просмотров 8 тыс.7 месяцев назад
STM32 UART #3 || Receive Data in Blocking Mode & Interrupt
STM32 UART #2 || Use Interrupt & DMA to send Data
Просмотров 12 тыс.7 месяцев назад
STM32 UART #2 || Use Interrupt & DMA to send Data
STM32 UART #1 || How to configure Parameters || Send Data
Просмотров 13 тыс.7 месяцев назад
STM32 UART #1 || How to configure Parameters || Send Data

Комментарии

  • @avr_stm_pro2955
    @avr_stm_pro2955 11 часов назад

    Спасибо 👍

  • @ahmadhabibpoor6288
    @ahmadhabibpoor6288 15 часов назад

    How cpu working on hal delay and transmit_it in same time? If it doesn't work on transmit_it what is differences between interrupt and dma?🤔🤔

  • @prakashpcbdesigner9966
    @prakashpcbdesigner9966 15 часов назад

    Wonderful 🎉. Keep posting more in stm32. I'm learning more from you.

  • @YevheniiKolomiichuk
    @YevheniiKolomiichuk 16 часов назад

    I have a problem. When I used esp32, mpu return 70. When I check mpu with stm32, register `who_a_me` return 0x68. Where could I have made a mistake?

  • @woldecosgrove
    @woldecosgrove День назад

    Hello can u come out the instruction for this video?

  • @woldecosgrove
    @woldecosgrove День назад

    Hello why there is no instruction page to follow?

    • @ControllersTech
      @ControllersTech День назад

      It is not there for this video. The project.zip file is linked in the description. That's all there is.

  • @AlirezaFallah-gf7lg
    @AlirezaFallah-gf7lg День назад

    Tnx

  • @reinaldodesflamino2764
    @reinaldodesflamino2764 3 дня назад

    Thank you!

  • @madayaswanth1205
    @madayaswanth1205 3 дня назад

    how much current can produce by a pin in stm32f4

  • @cesarcordero4923
    @cesarcordero4923 5 дней назад

    I tried a lot of things, read documentation and saw several videos until I found this one. Thanks for the help!

  • @tilekt4248
    @tilekt4248 5 дней назад

    Don't you have a microphone?

  • @Yankee14ed
    @Yankee14ed 5 дней назад

    Thanks for the video, as always. As an aside, I've been wondering for a few months, what is the name of the intro song you use on your videos? I recently stumbled across a RUclipsr who makes LabVIEW tutorials, that uses same song. It instantly reminded me of your videos. Just curious.

    • @ControllersTech
      @ControllersTech 5 дней назад

      I don't know the name. It was a part of the video editing software, so I just used it.

  • @vedantmanjrekar1820
    @vedantmanjrekar1820 5 дней назад

    The code works perfectly with good explanation.But if discount the PWM signal physically or After some cycle stop the PWM signal the value of frequency remain stuck at last value not getting zero. Any solution ?Thanks in advance

    • @ControllersTech
      @ControllersTech 5 дней назад

      It happens because a pwm of 0 width is actually not read by the timer. Therefore you meed to manually updaye the data here. You can reset the value after eqch read is successful, but in such case you will see 0 popping up quite often . Another thing you can try is set a timeout. Like define a variable in the main file and define same variable externally in the interrupt.c file. Then inside sytick handler callback, increment the variable. Here it is incrementing every 1ms. Then in the main file, write some timeout condition like if (variable>=500){ freq=0; variable=0;. You also need to reset this variable each time in the input capture callback.

  • @kevingai370
    @kevingai370 5 дней назад

    ur using keil.

  • @MikhailGoncharov-tl4cr
    @MikhailGoncharov-tl4cr 6 дней назад

    please tell us about ypurself we need to se you face

  • @nguyen-vt8zy
    @nguyen-vt8zy 7 дней назад

    receiver donnot active

  • @woldecosgrove
    @woldecosgrove 7 дней назад

    Great! Could u do a video on ESP_IDF on Win11/ 10 ?

    • @ControllersTech
      @ControllersTech 7 дней назад

      Why? You just need to install the .exe file from dl.espressif.com/dl/esp-idf/?idf=4.4 That's it.

  • @anicetkemajou2158
    @anicetkemajou2158 8 дней назад

    hello please may i know which NMEA library you used ?

    • @ControllersTech
      @ControllersTech 7 дней назад

      The link to download the project is in the description.

  • @ihsanc5230
    @ihsanc5230 8 дней назад

    For those having problem writing on the screen you might have to adjust the potentiometer on the PCF8574 IC board. That was the solution for me.

  • @madayaswanth1205
    @madayaswanth1205 8 дней назад

    what is the difffernce between peripheral clock and timer clock if timer clock is 72MHZ ,it shows peripheral is 36 MHZ means CAN,UART runs at 36 or 72 MHZ reply bro

    • @ControllersTech
      @ControllersTech 7 дней назад

      Peripheral clock is used by peipherals, like ADC, UART, SPI, I2C, etc. A Peripheral clock of 36MHz does not mean that all the peripherals will run at this frequency. IT is the maximum value and the peripherals will drive the clock from this. Then they use the prescaler to bring down this clock to their operating limits. Timer clock is used by the timer connected to the respective APB bus. Timer runs at this clock, and you can use the prescaler again to bring down the timer clock also.

  • @simosapiens9011
    @simosapiens9011 8 дней назад

    Hey man, great video but I can't access your blog anymore. Everytime I get very invasive pop ups, and it only happens with your website. Can you solve this issue?

    • @ControllersTech
      @ControllersTech 8 дней назад

      Sure. But I need some more info about this. Please contact me on telegram @controllerstech

  • @nguyen-vt8zy
    @nguyen-vt8zy 8 дней назад

    ​@ControllersTech I don't know why I don't satisfy the condition if( isDataAvailable(1) == 1) and the value STATUS register is 0

  • @egar1956
    @egar1956 9 дней назад

    It is not possible to control the phase between the timers in runtime. Is there some mthod for this ? Thanks

  • @varulven5143
    @varulven5143 9 дней назад

    i only see boxes with this code nothing else happens

  • @seyitkont
    @seyitkont 10 дней назад

    Bro I2C Library ? pleasee

  • @ladrochax
    @ladrochax 10 дней назад

    How can i connect this HMI with a PLC? Using RS422 Btw, thanks for your videos!

    • @ControllersTech
      @ControllersTech 9 дней назад

      I have no idea. Please ask it to the company support.

    • @ladrochax
      @ladrochax 9 дней назад

      @@ControllersTech i did it Thanks for your reply Sir

  • @ladrochax
    @ladrochax 10 дней назад

    Thank you so much! By the way your voice is amazing <3 However the debug option doesn't appear at my program, but i was able to send the program to the HMI and it worked.

  • @roy_hawk
    @roy_hawk 11 дней назад

    Hello friend! I wanted to ask you a question. You know that IC (Input Capture) function that we use in timers? I generally saw that it is used to read frequency, I have already tested it for this purpose too and it works well. But one thing that I was never able to do using the IC in that mode that activates the interrupt by rising and falling edges, was to have information whether the interrupt was activated by a rising edge or a falling edge. And a while ago I searched everywhere, I did a lot of tests, apparently a flag was supposed to be set according to the edge that activated it, but it was never set. In fact, I tested this a lot and ended up thinking that it is impossible, which for me is absurd, considering that the information is there, but it seems inaccessible. Having said that, please, is it possible to use the IC with interruption on both edges (rising and falling) and be able to identify the edge? For example, if it was a rising edge, I want to enter an if, if it was a falling edge, I want to enter another if (or else). I really wanted it to be possible, thinking about an application to check synchrony between square waves and the difference in angle between them. If it's not possible, then I'll do it with a timer and perhaps external interruption, but I wanted to use the IC for precision. I would be very grateful if you could clarify whether it is possible or not. Thanks!

  • @user-iy1nl6ke8r
    @user-iy1nl6ke8r 11 дней назад

    Anyone, please helpme. Why f_puts don't work?

  • @tilekt4248
    @tilekt4248 11 дней назад

    Don't you have a microphone, shithead?

  • @electrical_engineer1
    @electrical_engineer1 11 дней назад

    Many time try but not worj😢😢😢 Any easy link available?

  • @madayaswanth1205
    @madayaswanth1205 12 дней назад

    how to receive consecutive 11 recesssive bits on CANRX reply please

  • @m-electronics5977
    @m-electronics5977 12 дней назад

    8:09 Isn't it important what value is programmed first? Because when I write a value in the e.g. 4th bit of a register and then a value in the e.g. 6th bit then the first value will be overwritten or not?

    • @ControllersTech
      @ControllersTech 12 дней назад

      That's why we perform bitwise or ( | ) and bitwise AND (&). They don't modify other bits of the register.

    • @m-electronics5977
      @m-electronics5977 12 дней назад

      @@ControllersTech Hmmm, then something must be wrong in some other code from me, there I must began from the MSB what I need to set. Otherwise the lower bits were overwritten. And I used OR and AND

    • @m-electronics5977
      @m-electronics5977 12 дней назад

      @@ControllersTech But I had read that when we perform e.g. REG |= (1 << 4); that then the four upper bits going away?🤔 Is that true?

    • @m-electronics5977
      @m-electronics5977 11 дней назад

      @@ControllersTech I´ve played around a little bit with bitwise operations in C (not on a microcontroller) and when I do something like that: uint8_t test = 144; //(0b1001000) test &= (0 << 4); Then I got as result: test = 0 and not (how it must be work in a microcontroller?) 128 And I know why that appears (because 0 << 4 is also 0) but if I do the same on a microcontroller the other bits aren´t reset.

  • @madayaswanth1205
    @madayaswanth1205 12 дней назад

    can u make vide on register level

  • @ilsonjunior2805
    @ilsonjunior2805 12 дней назад

    Hi, the video is very good. I would like to know if there was a way to create another type of font. If so, could you give an example or suggest a tutorial?

  • @madayaswanth1205
    @madayaswanth1205 12 дней назад

    it ispossible by one controller sendin data on one controller see data on logic analyser

  • @madayaswanth1205
    @madayaswanth1205 13 дней назад

    it ispossible by one controller sendin data on one controller see data on logic analyser

  • @madayaswanth1205
    @madayaswanth1205 13 дней назад

    I have try this tutorial. But I can't transmit in normal mode. And if I use loopback mode, it can be transmit,can u make video on register level.

    • @ControllersTech
      @ControllersTech 12 дней назад

      Use the analyzer or scope to check the data.

  • @makergaragediy
    @makergaragediy 13 дней назад

    Great video, but driver/i2c.h is legacy by esp-idf, now it's recommended to use i2c_master.h Congratulations for the serie

  • @germanGGGG72
    @germanGGGG72 13 дней назад

    Excellent, thanks so much. Could you make a similar tutorial exemple with 1.28” roud display with GC9A01?, …thanks in advance.

  • @bahjatmurrad8008
    @bahjatmurrad8008 14 дней назад

    This video is old now because you have to use gpdma1

  • @mikejones-vd3fg
    @mikejones-vd3fg 14 дней назад

    Cool thanks, do you know the differences between 1306 and 1106? Other then the scrolling function in the library. I found a ss1315 screen and also wonder what the differences as the specs were all the same, someone said it "likes constrast setttings better" whatever that means, im guessing better power consumption? I wonder what the differences is with the sh1106.

  • @inferno5335
    @inferno5335 14 дней назад

    Hey thanks for your amazing work as always, can you do a video about Epaper display and stm32 please ?

  • @AkanbiSolomon-i8p
    @AkanbiSolomon-i8p 15 дней назад

    I am encountering issues with debugging it request I declare my GPIO pin

  • @breno-p2g
    @breno-p2g 16 дней назад

    error: 'key' undeclared (first use in this function)

  • @ABYSSOPELAGIC-m4p
    @ABYSSOPELAGIC-m4p 16 дней назад

    When I use STM32f407 dics, pwmData not working. Can you help this problem

    • @ControllersTech
      @ControllersTech 16 дней назад

      You are either not configuring it properly or using the wolrong pin.

  • @sloushi7235
    @sloushi7235 16 дней назад

    it doesn't work for me my lcd displays random things and i used chatgpt to understand why but till now i didn't find a solution to that problem. I modified the delays and i used the address 0x27 in my code according to my i2c but nothing works 😢😢 HELP SOS

  • @soaiku4636
    @soaiku4636 16 дней назад

    Great thank you so much for sharing

  • @GuadrianBM
    @GuadrianBM 16 дней назад

    Hi I am working with STM32 H7 board. I want to get sine wave in two channels. I am can able to write date to two channels as a sine wave but the sine wave is not so smooth because i need sine wave of around some 10kHz max. But the sampling time is around some 50khz and it is varying. Can you help me with this?

  • @farukdemirta
    @farukdemirta 17 дней назад

    thank you so much bro <3 like dat