Jump to content

Joel Bodenmann

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Joel Bodenmann

  1. Joel Bodenmann

    uGFX-Studio v0.20 - Beta

    This is the official thread for the currently running beta of the µGFX-Studio v0.20. History The µGFX-Studio v0.20 is a complete rewrite. Everything has been rewritten from scratch. There are quite a lot of fundamental changes compared to the earlier versions (v0.15 was the latest). Most notably, the new µGFX-Studio directly uses the µGFX library for any rendering. This means that the results shown on the virtual display inside of the µGFX-STudio is exactly the same as the result on the real hardware. Changes like that require a complete rewrite of the µGFX-Studio. Registration To get access to the new µGFX-Studio v0.20 beta, please drop me a private message and let us know why you think that you're a good participant of the new µGFX-Studio beta program. Update cycle We are now devoting a lot more resources to the development of the new µGFX-Studio. During the beta, we'll update on an irregular interval. Whenever there's something new or fixed we'll push an update and a forum post in this topic, so stay tuned! FAQ µGFX-Studio v0.15 (and earlier) project files are not compatible. Download Once you were added to the µGFX-Studio beta program group you can download the µGFX-Studio from the download section:
  2. Joel Bodenmann

    ST7920 and NOKIA LCD 5110 Monochome and Stm32F103CB (128kb, 20kb RAM)

    There's currently no driver for the ST7920 display controller that comes with the µGFX library but µGFX is very agnostic: It will work with virtually anything. There are plenty of existing GDISP drivers (also for monochrome displays) that you can use as examples to implement your ST7920 driver.
  3. Joel Bodenmann

    µGFX Library

    Version 2.9


    This is the actual µGFX library - the real deal! The µGFX library is completely free, without any restrictions, for home, hobby & educational use. Please note that you have to purchase license in order to use µGFX in a commercial project or product. Note that these licenses are very affordable and can be purchased directly through our web store. You can find more information about commercial licenses and the available pricing options here: http://ugfx.org/pricing You can also access the official Git repository if you like to use Git or make contributions via pull requests: https://git.ugfx.io/ugfx/ugfx
  4. Joel Bodenmann

    ST7920 and NOKIA LCD 5110 Monochome and Stm32F103CB (128kb, 20kb RAM)

    The STM32F103 is quite an outdated microcontroller. Any particular reason why you'd be using this model? µGFX will definitely work in all of those configurations. How much RAM you want to have to work with is of course another discussion (and your personal decision). µGFX can work with very little resources. Having more resources available just enables you to do fancier stuff.
  5. Joel Bodenmann

    STM32L1 nucleo + ILI9225

    Happy to hear that you got it working! The issue with the chip select sounds like the GDISP driver is not properly calling those functions.
  6. Joel Bodenmann


    Hi, We appreciate your motivation to donate. Once we started selling commercial licenses we decided to take down the donation option. Money is clearly the main hold-back issue here as we can't afford more man-power but donations usually don't result in an amount and steady supply of money that would allow to improve this. We're close to release µGFX v2.9. It's already ready - we just need to do the actual release. µGFX v3.0 is also making progress
  7. Joel Bodenmann

    CAN Dashboard Project

    Hello & Welcome to the µGFX community! There are many factors to consider such as the resolution and color space you want. The more pixels you have to control the more resources you'll need (memory, CPU, bandwidth, ...). For something of this size the newer STM32F4 families or the STM32F7/STM32H7 microcontrollers are extremely popular. If you're not very experienced I'd stay away from the STM32H7 for the moment as support for it seems to be quite scarce on all levels (including debugger support). The STM32F7 is by now pretty well established but tends to be a lot harder to work with compared to an "old school" STM32F4 due to newly introduced technologies such as the memory cache which can lead to many sleepless nights: http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:cortexm7_dma_guide The STM32F429/STM32F439/STM32F469 are extremely well supported and will most likely provide enough resources for what you're after. Also, you can get various development boards for those with displays so you can get yourself familiar with all the software components before you have to mess with custom hardware.
  8. Joel Bodenmann

    STM32L1 nucleo + ILI9225

    The ILIxxxx display controllers are known to suffer from differences across series and revisions. Also, some (chinese) sources love to sell you an ILI9225 as an ILI9220 and so on. Therefore, once you confirmed that the SPI is working correctly, try to grab the initialization code (sequence) from your supplied and plug it into the init() function of the corresponding µGFX driver. Another thing you might want to do is trying to read out the display controllers version register / chip ID. This will tell you exactly what display controller you have and will also confirm that the communication is working well.
  9. Joel Bodenmann

    Mutiple definitions uGFX + Eclipse + STM32L1

    Happens to the best of us
  10. Joel Bodenmann

    Problem with text edit

    You should definitely work against the latest master branch of the official git repository (https://git.ugfx.io/ugfx/ugfx).
  11. Joel Bodenmann

    uGFX-Studio v0.20 - Beta

    Instructions are given in the red box at the top of the µGFX-Studio download page.
  12. Joel Bodenmann

    ghTextedit + gwinSetText

    > I am working with a recent git version of ugfx and Chibios 18.2. How recent is recent? There has been a text edit fix two months ago: https://git.ugfx.io/uGFX/uGFX/commit/509fc7501e7bd30b1b314fc0d4838d7cdf6ac621 I'm currently on the road so I can't dive into this right now. But can you reproduce it with the most minimal test case? Eg. using gwinSetText() with a simple string parameter (no runtime buffer stuff) and setting the last argument to TRUE? So I guess the response to your "I suppose using dynamic text could provide a workaround, but I thought I would ask before trying too many things." statement is pretty much: That's exactly what I'd recommend you to try to track down the problem.
  13. Joel Bodenmann

    Mutiple definitions uGFX + Eclipse + STM32L1

    Hmm... the board file template is definitely missing. Thank you for bringing this to our attention. Many of the drivers are community driven and do not originate from the official µGFX developers. We're definitely going to take better care of this in µGFX 3.0. We're thankful for any kind of bug reports and/or patches. Usually a forum post will do - if possible with a patch that we can just apply. Alternatively you can make a pull request on the µGFX git server. It's correct that those functions will actually write data to your display controller (in your case) through your SPI peripheral. Most displays that are in the style of the ILI9225 have a pin called D/C or similar - sometimes it's an additional bit in the SPI frame. That bit will tell the display controller whether the data it's receiving is actual pixel data (write_data()) or commands such as changing the viewport, changing rotation or setting any other kind of register value (write_index()).
  14. Joel Bodenmann

    Mutiple definitions uGFX + Eclipse + STM32L1

    I'm currently on the road so I can't easily check, but I'd say it's rather likely that the board file can be found in the /boards directory of the library or in the downloads section of this forum.
  15. Joel Bodenmann

    Cannot access the documentation

    Thank you for bringing this to our attention. We'll fix it ASAP.
  16. Joel Bodenmann

    Bug in List widget

    Are you able to supply a patch (diff)?
  17. Joel Bodenmann

    Bug in example

    Thank you for bringing this to our attention! As you mentioned yourself there is the need to clean the widget initialization structure prior to using it. We have updated the example code in the wiki.
  18. Joel Bodenmann

    Online Font Converter

    That sounds like a content-size / timeout related issue. I'll dive into this ASAP.
  19. Joel Bodenmann

    Yocto Embedded Linux

    If I understand you correctly the return value of the ioctl() function call is different from your observation. Could you check the value of fb-fix.line-length before passing it to the ioctl() function? Also, I am bit surprised that you mentioned multiple calls to the framebuffer driver initialization. I don't have all the code in my mind but that seems a bit fishy - are you using two displays?
  20. Sorry for the late reply - not sure how this didn't show up in my notifications list. That's certainly possible. We have several customers who use µGFX for overlays / OSDs. I'd recomment that µGFX provides its own video output that you then mix together / on-top of the video using gstreamer.
  21. Joel Bodenmann

    Online Font Converter

    I'm having serious trouble reproducing this - could someone else give it a try?
  22. Joel Bodenmann

    gwinPrintg not truncates floats

    Hello and welcome to the µGFX community! I'd have to check the code to be sure but if I remember correctly the vfnprintg() implementation doesn't support leading zeros at the moment. If that's the case we'd be more than happy if you decide to add support for that.
  23. Joel Bodenmann

    Yocto Embedded Linux

    Did you try to debug to figure out where the segmentation fault origins from? It will most likely be due to an issue in the GOS abstraction as everything else is high-level code that builds on top of that.
  24. Joel Bodenmann


    I'll have to look at this when I got a bit more time to understand this properly. However, unless you're in a serious memory shortage I'd recommend you not to destroy & re-create the widgets. Instead, just use gwinShow() and gwinHide() (alternatively gwinSetVisible()) to make the appropriate widget become visible.
  25. Joel Bodenmann

    optimizing gdisp_lld_ILI9341 for STM32 SPI DMA

    Thank you for sharing this - much appreciated!