Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 10 of 10

Thread: Qt for MCUs

  1. #1

    Qt for MCUs

    There are a few users of Qt in this forum.

    They have just released a toolchain for MCU's, of which the Teensy4 Beta (i.MX RT1050) is supported.

    https://www.qt.io/blog/qt-for-mcus-1.0

    I can imagine if this ever became an option on the Teensy4 platform, with the multitude of LCD's and drivers, it would open up some new and exciting projects.

    I'm hoping to have a closer look over the break, but if anyone has any insight I'd be interested see everyone's thoughts.

  2. #2
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    12,412
    Note the Teensy 4 as released uses the 1062 version of 1060. First beta unit before 1060 was public and in shipping mode was a the 1050 series 1052.

    Not sure if that would be included in the Qt support package. Even if so getting PJRC's Arduino/Cpp&C level of support likely a decent amount of effort.

  3. #3
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    22,767
    Any idea how much memory it uses?

    If they used NXP's eval board, there's a good chance it depends on the large SDRAM chip NXP put on those boards.

  4. #4
    Junior Member
    Join Date
    Jan 2020
    Posts
    6
    I am a user of Qt with Arduino boards, now looking to "upgrade" to Teensy boards with their faster CPU speed and more I/O. Usually though I am running Qt on a PC or Raspberry Pi rather than the MC itself (I'm communicating with MC over serial port), so at the moment this toolchain would not be so useful to me. Anyway, while that is not really on topic, I thought I would say that out loud in case anyone wants to get in contact/chat.

  5. #5
    Senior Member
    Join Date
    Oct 2019
    Posts
    148
    I thought I would revive this thread as I just came across Qt for MCUs and now that we have the T4.1 with the option to expand both SDRAM and Flash - might allow one to utilize the Qt framework
    But I suspect that Qt SDK for the 1060 requires breakout for the LCD control pins, which are not exposed on the T4/4.1

    Anyways, if anyone has more info on this I would be really happy to learn more

  6. #6
    Senior Member
    Join Date
    Jul 2020
    Posts
    174
    Quote Originally Posted by Rezo View Post
    I thought I would revive this thread as I just came across Qt for MCUs and now that we have the T4.1 with the option to expand both SDRAM and Flash - might allow one to utilize the Qt framework
    But I suspect that Qt SDK for the 1060 requires breakout for the LCD control pins, which are not exposed on the T4/4.1
    It all hinges on the framebuffer. I guess the questions are in this order:

    1. What displays can you use with a Teensy 4, which are good enough for your GUI use case? Can you drive them over SPI, or is that too slow? These chips have DMA, so you may have some other options.
    2. What kind of framebuffer does Qt for MCUs use? (I assume they supply it, or it's a customized fork of some open-source FB.)
    3. Can that framebuffer talk to your display; and if not, can you plug in some other framebuffer that can?


    There is also the issue of touchscreens (assuming you want to use them), and whether and how you can plumb that into their API.

    I didn't dig very deep, but from reading that page it seems like this is probably a paid product, and you may not get to look at the source.

  7. #7
    Senior Member
    Join Date
    Oct 2019
    Posts
    148
    Quote Originally Posted by Pilot View Post
    It all hinges on the framebuffer. I guess the questions are in this order:

    1. What displays can you use with a Teensy 4, which are good enough for your GUI use case? Can you drive them over SPI, or is that too slow? These chips have DMA, so you may have some other options.
    2. What kind of framebuffer does Qt for MCUs use? (I assume they supply it, or it's a customized fork of some open-source FB.)
    3. Can that framebuffer talk to your display; and if not, can you plug in some other framebuffer that can?


    There is also the issue of touchscreens (assuming you want to use them), and whether and how you can plumb that into their API.

    I didn't dig very deep, but from reading that page it seems like this is probably a paid product, and you may not get to look at the source.
    1. For my needs, ILI9488 or HX8357 both supporting 16bit (or 18 bit) color depth and a resolution of 480x320
    2. I have no idea, I have not gotten into the working parts of Qt, this is why I responded to the thread The driver libraries available for these displays support large frame buffers on both the T4 and the T4.1 with the extra RAM.
    3. As above

    I've read the license modal briefly, they do have an open source package available. But I might just go with LVGL as the level of effort to implement it seems much lower.

  8. #8
    Senior Member
    Join Date
    Jul 2020
    Posts
    174
    ILI9488 uses SPI, and at that resolution I don't think you will have any trouble. There is already an Arduino library for talking to it, although you probably have to modify some stuff (GPIO pin numbers, possibly more) to get it to work on the Teensy. There is a thread on these forums about support for it.

    There is also a thread here about the HX8357.

    I don't know if either of these libraries work on the 4.x series, but I bet someone has figured it out. At that resolution, SPI is probably fine, depending on how many frames you want to push through. (I don't know whether either device is capable of accepting data faster than SPI, were you to use their other interfaces.)

    They are bugging me to register without letting me download the content, and their GitHub doesn't seem to have any repos matching "mcu" or "microcontroller," so I don't have an easy way to look at the code. They do seem to have a whitepaper and webinar on their page that describes how to port apps to microcontrollers, so presumably there will be some info there on how to get the framebuffer working.

  9. #9
    Senior Member
    Join Date
    Oct 2019
    Posts
    148
    Im already using those libraries on the T4x, have been for the last 6 months. But they are simply an API to send commands to the display to draw lines circles strings etc.
    Qt is the layer that handles the GUI, similar to LVGL.

    I think you misunderstood my initial comment, im not looking for a driver, im looking for a GUI framework and Qt has some really impressive stuff to offer

  10. #10
    Senior Member
    Join Date
    Jul 2020
    Posts
    174
    I think LVGL is probably going to be less effort. Teensy users already have it working with a small LCD + touchscreen.

    If you go with Qt for MCU, the question is whether it will compile in the Arduino toolchain, which uses a subset of C++. Qt may require a fully standards-compliant compiler, in which case you might be out of luck. Then, you would have to plug it into the driver somehow. One of the two (forget which... I think the ILI) has a framebuffer, and the other doesn't.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •