Jump to content

All Activity

This stream auto-updates     

  1. Past hour
  2. SSD1352 driver implementation questions

    I have another problem. Sometimes some pixels are lost. What can be reason of that? In the attached video I refresh LCD each 1 second. It is white text on black background. Same with BMP files. When I fill BMP there are some pixels from previous LCD content. Not all pixels are refreshed. board_SSD1352.h gdisp_lld_config.h gdisp_lld_SSD1352.c SSD1352.h SSD1352.avi
  3. Cant make widget visible

    I have following widget: wi.g.show = FALSE; wi.g.y = 0; wi.g.x = 0; wi.g.parent = 0; wi.customDraw = gwinProgressbarDraw_Std; wi.text = ""; wi.g.width = 20; wi.g.height = 100; tempProgressBar = gwinGProgressbarCreate(gdispGetDisplay(1), 0, &wi); But when I make it visible from other widget rendering routine nothing changes: if(gw2obj->progressBar) { gwinShow(gw2obj->progressBar); } gui.c corner.c
  4. Today
  5. SW4STM32 IDE & uGFX configuration

    Hello! Sorry for no contact- I was on holiday for 2 weeks. Now I am back. Thank you very much for solving the problem. Youre the best I will try to compile it as soon as I dig myself out of e-mails and hot jobs. I guess I was using the latest library from download section on the site. But true- git sourcing is a better solution.
  6. uGFX-Studio v0.20 - Beta

    Well, that was the reason why I had to go back to uGui ( my setup takes 21.5kB without fonts ). I have STM32F429, but still having quite large functionality besides GUI I could not afford GWIN and GDISP was not enough. So I am interested too how to scale down uGfx. I can tell you how my current system works, so it may be some inspiration: - There are 3 layers - GDISP ( equivalent), the other two split GWIN functionality. One ( RENDER) is responsible just for rendering widgets, the other one (MESSAGES) for processing messages from inputs, touch screen etc. - It is posisble to use only first two - GDISP and RENDER. - MESSAGES is used on demand - you put event there and it processes object hierarchy to trigger possible reaction ( in this particular system only callbacks are used). It is separated from other modules, just has access to their data. I have built my system around GDISP/RENDER only. This means really simple setup - I execute just rendering widgets. When user touches button, I execute different render , periodically I update measurement data on display ( by updating manually widget texts). It means more manual work, but for simple UI which have basically data outputs and simple selections it is enough.
  7. Deterministic periodic display glitch on STM32F7xx LTDC driver

    I am using what I think is the stock 2.7.0 release, rather than follow the repo, so likely I am using an old FreeRTOS port. In any case, it is a subtle bug, but not too hard to search for. Searching for the text portENTER_CRITCAL and taskENTER_CRITICAL will find all critical sections in the FreeRTOS/uGFX interface code, and it should be checked that there is no FreeRTOS API usage (even non-blocking calls such as a binary semaphore push/give - see the note on the FreeRTOS critical section documentation) within the critical sections. In the version I have (stock 2.7.0 I think), gos_freertos.c:139 contains a semaphore give inside a critical section in the gfxSemSignal() function.
  8. Yesterday
  9. uGFX-Studio v0.20 - Beta

    Hi. I want to use the studio for study purpose. Please let me get it =)
  10. Last week
  11. uGFX-Studio v0.20 - Beta

    Just a short comment on what you said about size... ugfx has multiple modules which provide different features e.g. GDISP is just basic drawing, GWIN is a full windowing system. As individual modules can be turned off and on and many sub-features can also be turned off and on it is possible to build a compromise between functionality and resource usage. Unfortunately when you want the advanced features the price in resources must be paid. At one extreme GDISP is small (particularly if only the required features are turned on and only the UI2 font is used). It also does not require any other modules. On the other hand GWIN requires just about every other module in uGFX although again features can still be controlled. We have spent a lot of effort to keep resource usage to the minimum as it is designed for embedded platforms and we believe it is the lightest in the industry. Still, running GWIN on a ATmega8 is not really practicle. Studio is built on top of GWIN. As it is generated code it is never going to be as efficient as hand optimised code (Although again we try hard). Unfortunately, there is a price to pay for the power that Studio brings taking it beyond the capabilities of some devices. That is the thing about embedded programming - it is always a compromise between resources and the power of the provided interface. Any ideas that you (or anyone else) can provide on how we can offer the same functionality with less resource usage we would love to hear from you. Just create a new forum topic, we need all the help and ideas we can get.
  12. Online Font Converter Rendering Issue

    I don't know of anything that would cause this as all our fonts with the exception of the UI fonts have been created using that same tool. The UI fonts were handcrafted by us in bitmap format so that is why they didn't use the font converter. A few things to check... Check you are using the same version of DejaVu font. From memory our original ttf font versions are still in the gdisp/fonts folder. Mcufont supports multiple ways to encode a font and several different ways of optimising them. The way we built them is in a script called buildfonts.sh (I think) in that same directory. Note that script uses the command line font converter which can be found in both source and binary forms in the ugfx tools directory. The command line version contains features we have not exposed through the web interface. Internally the web interface uses the same binary. After you have tried the above options it could be that the ttf fonts in our repository have been corrupted. It can happen with win32 git where it tries to do incorrect newline conversions. In that case search the internet and find new versions of the ttf. Note: due to font versioning it may not be exactly the font we used. I hope that helps.
  13. Online Font Converter Rendering Issue

    Hi, My company is working on a project using uGFX, in which we need to support European languages, such as Spanish, French, etc. Up until now, we have only implemented our application with English, using the DejaVu fonts included with uGFX by default. However, since the default DejaVu fonts only contain a limited character set to preserve space, we have had to convert our own DejaVu fonts with custom character filtering that includes the characters we need for the European languages. I was able to convert the fonts using the uGFX online font converter, add the .c files to the project, and display all of the characters that we need. However, the user fonts that I converted, despite being the same font, size, typeface, etc. as the default fonts, do not look the same as the default DejaVu fonts do. While the default fonts generally look very clean, straight, and uniform, as you would expect, the user fonts look jagged and uneven. I have attached a PDF I put together to illustrate this comparison. Has anyone else experienced issues like this? Is there something I am doing wrong or should be doing differently? Is there an issue with the online font converter that is causing it to render the fonts poorly? I uploaded the DejaVu .ttf files that came with uGFX, so I would surprised if it was an issue with the .ttf files I am using. Is there a different conversion tool I could use? Any help would be greatly appreciated! Thanks! jared.olson - Default Vs. User DejaVu Font Comparisons.pdf
  14. uGFX-Studio v0.20 - Beta

    Thank you for explaining this. The reason it worked for me is because gdispOpenFont() returns the first font it finds if the specified font wasn't found. I was only using one custom font so I didn't notice the problem. This issue has been resolved now as well. We'll implement a feature that will prevent having multiple resources with the same name. Edit: There was actually a fundamental problem with names of resources. We fixed this now. All elements will have unique names now if you create new ones. So you get Unnamed, Unnamed_1, Unnamed_2 and so on.
  15. uGFX-Studio v0.20 - Beta

    Hi, The original problem was here (generated code): resource_manager.h // Font indexes #define Unnamed 0 #define Unnamed 1 #define Unnamed 2 resource_manager.c bool_t guiResourcesManagerInit(void) { size_t i; // Open fonts _fontsArray[0] = gdispOpenFont(Unnamed); _fontsArray[1] = gdispOpenFont(Unnamed); _fontsArray[2] = gdispOpenFont(Unnamed); return TRUE; } First, the names/font indexes were not unique. Second , gdispOpenFont () expects character string as argument - not number. I guess this will be my last comment for a while - I tried to scale down ugfx and it is much more then my previous choice. I have to live with only internal memory so the resources are precious. Especially that I have static gui which needs only simple widgets drawn ( without timers, messages, input etc. - just to update contents on demand).
  16. uGFX-Studio v0.20 - Beta

    Any other wishes for v0.20.4?
  17. uGFX-Studio v0.20 - Beta

    Can you please be more specific? What's the issue with the resource manager? It works well here. As I'll describe further down it was just that the code generator of the widgets didn't generate code for the per-widget font. But the resource manager appears to do well. I couldn't spot any problem with that. Those are not default fonts, those are just fonts we created ourselves. The term "default font" refers to the GWIN default font. It's correct that currently the resource manager doesn't give access to fonts already present in the µGFX library. Just add your own fonts. We do not provide the TTF for the fonts we created ourselves but you don't need that. You can just pick the UI1 and UI2 fonts from /src/gdisp/fonts and add them to the studio like you would with any other font you converted yourself. Just fixed that. Internally everything is present. The code generator simply didn't generate code for that property. Everything works as expected now. v0.20.4 will contain this fix. That's already supported. It was just the code generator that didn't generate the corresponding code.
  18. uGFX-Studio v0.20 - Beta

    Hi Yes, that would be nice. I also recall that there were some issues with resource manager which wanted fonts by names. I fixed it manually, you could try yourself to generate sample code with new fonts and try if it compiles. You mentioned once that you crafted nice pixel fonts. I could not use directly the config file generated from ugfx studio, and by default there are no fonts in the system. The resource manager , if cannot find fonts tries to give first from its repository , but there must be something. I have fixed it in my config file. Your widgets do not seem to have font as part of their internal data - does it mean that you will havo to switch system fonts before creating these widgets ? And I guess - the idea is that multiple fonts at once ( well in different widgets) will be supported ?
  19. uGFX-Studio v0.20 - Beta

    Hello @jarekk, Thank you for providing your feedback. We added everything to the ToDo list. You can either select the font item and hit F2 or double click it to rename. But we'll add Rename as an option to the context menu as well. Can you be more specific on this? Where did I/we mention two default fonts? Will take care of that! Yes, it should. The generated code is µGFX high-level code that should work on any platform that the µGFX library runs on. That is fully supported. You select the default font in the target. Just edit the Default target. Please let us know whether that worked as intended. I will look into why the label doesn't get a font assignment. Most likely that just got missed out in the code generator.
  20. SSD1352 driver implementation questions

    On many controllers rotation is simply not possible due to hardware limitations even in software with everything becoming painfully slow. Although ugfx supports software rotation it still requires certain hardware capabilities. In ugfx V3 we intend to broaden this capability to support rotation on just about any hardware. This however is not simple and requires a redesign of the entire gdisp module and the driver interface. In short, retrofitting generic rotation into ugfx V2 is just not possible. Some hardware support is required. When looking at your datasheet look for wording related to window direction or scan incrementing or wrapping direction. Most controllers support it in some manner, it usually comes down to whether bugs in the hardware make them usable e.g. see the Nokia6610GE8 driver for a list of some of the types of issues and workarounds.
  21. Starting a Project with ugfx on chibiStudio (ChibiOS 3)

    More likely, you are using code intended for ChibiOS 17.1.x - this is the latest, and is generally recommended over ChibiOS 3.x (IIRC, 3.x is now unsupported).
  22. Starting a Project with ugfx on chibiStudio (ChibiOS 3)

    Supplement: I got the demo /gdisp/basic to run. After that I tried another demo "/gwin/slider" there I got an error regarding the "PAL" error: 'PAL_STM32_PUDR_FLOATING' undeclared (first use in this function) After a short research I found out that PAL_STM32_PUDR_FLOATING isn't declared in ChibiOS 3.x anymore? Is there something I can do to fix this?
  23. Starting a Project with ugfx on chibiStudio (ChibiOS 3)

    Ok, I got it running: /* * PWM driver system settings. */ #define STM32_PWM_USE_ADVANCED FALSE #define STM32_PWM_USE_TIM1 FALSE #define STM32_PWM_USE_TIM2 FALSE #define STM32_PWM_USE_TIM3 FALSE #define STM32_PWM_USE_TIM4 TRUE #define STM32_PWM_USE_TIM5 FALSE #define STM32_PWM_USE_TIM8 FALSE #define STM32_PWM_USE_TIM9 FALSE #define STM32_PWM_TIM1_IRQ_PRIORITY 7 #define STM32_PWM_TIM2_IRQ_PRIORITY 7 #define STM32_PWM_TIM3_IRQ_PRIORITY 7 #define STM32_PWM_TIM4_IRQ_PRIORITY 7 #define STM32_PWM_TIM5_IRQ_PRIORITY 7 #define STM32_PWM_TIM8_IRQ_PRIORITY 7 #define STM32_PWM_TIM9_IRQ_PRIORITY 7 I set STM32_PWM_USE_TIM4 on TRUE. Now It works. Thanks for the help.
  24. I'm going to use uGFX for SSD1352. This LCD is not present in drivers list, there is SSD1351 but it's not same. My driver implementation is almost working. I am able to show BMP on LCD, but colors are swapped at this time. Biggest problem for me screen rotation. I have to rotate it for 180 degree. I found nothing about rotation in datasheet. And as I see uGFX doesn't support software rotation. I found only calls to hardware implementation of rotation in another LCD drivers. Is there any helpful information to implement software rotation? Thanks in advance!
  25. uGFX-Studio v0.20 - Beta

    Ok, now I can confirm that this is just not yet supported Adding in code e.g.: gwinSetDefaultFont(gdispOpenFont("FreeMonoBoldOblique32")); sets the font for all the widgets
  26. Visual Studio 2013 build issues

    Thanks. Much much better - now indeed it works without any glitches
  27. Starting a Project with ugfx on chibiStudio (ChibiOS 3)

    Do I understand that right, I have to set the pwm in halconf.h one TRUE so that it looks like: /** * @brief Enables the PWM subsystem. */ #if !defined(HAL_USE_PWM) || defined(__DOXYGEN__) #define HAL_USE_PWM TRUE #endif Is that right? But when I do that I got an new error regarding the TIM: #error "PWM driver activated but no TIM peripheral assigned" The Complete Console output is: . C Compiler Options.... Compiling board.c Compiling ../../ugfx/src/gfx.c arm-none-eabi-gcc -c -ggdb -O0 -mcpu=cortex-m4 -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm -MMD -MP -MF .build/dep/fakethumbfile.o.d -I. -I../../ugfx -I../../ugfx/3rdparty/tinygl-0.4-ugfx/include -I../../ugfx/boards/base/Embest-STM32-DMSTF4BB -I../../ugfx/drivers/gdisp/SSD2119 -I../../ugfx/demos/modules/gdisp/basics -I../../chibios161/os/common/ports/ARMCMx/compilers/GCC -I../../chibios161/os/common/ports/ARMCMx/devices/STM32F4xx -I../../chibios161/os/ext/CMSIS/include -I../../chibios161/os/ext/CMSIS/ST/STM32F4xx -I../../chibios161/os/rt/include -I../../chibios161/os/rt/ports/ARMCMx -I../../chibios161/os/rt/ports/ARMCMx/compilers/GCC -I../../chibios161/os/hal/osal/rt -I../../chibios161/os/hal/include -I../../chibios161/os/hal/ports/common/ARMCMx -I../../chibios161/os/hal/ports/STM32/STM32F4xx -I../../chibios161/os/hal/ports/STM32/LLD/ADCv2 -I../../chibios161/os/hal/ports/STM32/LLD/CANv1 -I../../chibios161/os/hal/ports/STM32/LLD/DACv1 -I../../chibios161/os/hal/ports/STM32/LLD/DMAv2 -I../../chibios161/os/hal/ports/STM32/LLD/EXTIv1 -I../../chibios161/os/hal/ports/STM32/LLD/GPIOv2 -I../../chibios161/os/hal/ports/STM32/LLD/I2Cv1 -I../../chibios161/os/hal/ports/STM32/LLD/MACv1 -I../../chibios161/os/hal/ports/STM32/LLD/OTGv1 -I../../chibios161/os/hal/ports/STM32/LLD/RTCv2 -I../../chibios161/os/hal/ports/STM32/LLD/SDIOv1 -I../../chibios161/os/hal/ports/STM32/LLD/SPIv1 -I../../chibios161/os/hal/ports/STM32/LLD/TIMv1 -I../../chibios161/os/hal/ports/STM32/LLD/USARTv1 -I../../chibios161/os/hal/ports/STM32/LLD/xWDGv1 -DGFX_USE_CHIBIOS=TRUE -DGFX_USE_OS_CHIBIOS=TRUE -DCORTEX_USE_FPU=TRUE -DUSE_FPU=hard -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB fakethumbfile.c -o .build/obj/fakethumbfile.o . Compiling ../../ugfx/src/gos/gos_chibios.c Assembler Options..... arm-none-eabi-gcc -x assembler-with-cpp -c -ggdb -O0 -mcpu=cortex-m4 -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -fomit-frame-pointer -Wall -Wextra -Wstrict-prototypes -fverbose-asm -MMD -MP -MF .build/dep/fakethumbfile.o.d -I. -I../../ugfx -I../../ugfx/3rdparty/tinygl-0.4-ugfx/include -I../../ugfx/boards/base/Embest-STM32-DMSTF4BB -I../../ugfx/drivers/gdisp/SSD2119 -I../../ugfx/demos/modules/gdisp/basics -I../../chibios161/os/common/ports/ARMCMx/compilers/GCC -I../../chibios161/os/common/ports/ARMCMx/devices/STM32F4xx -I../../chibios161/os/ext/CMSIS/include -I../../chibios161/os/ext/CMSIS/ST/STM32F4xx -I../../chibios161/os/rt/include -I../../chibios161/os/rt/ports/ARMCMx -I../../chibios161/os/rt/ports/ARMCMx/compilers/GCC -I../../chibios161/os/hal/osal/rt -I../../chibios161/os/hal/include -I../../chibios161/os/hal/ports/common/ARMCMx -I../../chibios161/os/hal/ports/STM32/STM32F4xx -I../../chibios161/os/hal/ports/STM32/LLD/ADCv2 -I../../chibios161/os/hal/ports/STM32/LLD/CANv1 -I../../chibios161/os/hal/ports/STM32/LLD/DACv1 -I../../chibios161/os/hal/ports/STM32/LLD/DMAv2 -I../../chibios161/os/hal/ports/STM32/LLD/EXTIv1 -I../../chibios161/os/hal/ports/STM32/LLD/GPIOv2 -I../../chibios161/os/hal/ports/STM32/LLD/I2Cv1 -I../../chibios161/os/hal/ports/STM32/LLD/MACv1 -I../../chibios161/os/hal/ports/STM32/LLD/OTGv1 -I../../chibios161/os/hal/ports/STM32/LLD/RTCv2 -I../../chibios161/os/hal/ports/STM32/LLD/SDIOv1 -I../../chibios161/os/hal/ports/STM32/LLD/SPIv1 -I../../chibios161/os/hal/ports/STM32/LLD/TIMv1 -I../../chibios161/os/hal/ports/STM32/LLD/USARTv1 -I../../chibios161/os/hal/ports/STM32/LLD/xWDGv1 -DGFX_USE_CHIBIOS=TRUE -DGFX_USE_OS_CHIBIOS=TRUE -DCORTEX_USE_FPU=TRUE -DUSE_FPU=hard -DTHUMB_PRESENT -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB fakethumbfile.s -o .build/obj/fakethumbfile.o . Linker Options........ arm-none-eabi-gcc -Wl,--defsym=__process_stack_size__=0x400 -Wl,--defsym=__main_stack_size__=0x400 -mcpu=cortex-m4 -falign-functions=16 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -fsingle-precision-constant -nostartfiles -mthumb -T../../chibios161/os/common/ports/ARMCMx/compilers/GCC/ld/STM32F429xI.ld -L../../chibios161/os/common/ports/ARMCMx/compilers/GCC -lm .build/obj/fakethumbfile.o -o .build/LCD.elf . Compiling ../../ugfx/src/gos/gos_freertos.c In file included from ../../chibios161/os/hal/include/pwm.h:92:0, from ../../chibios161/os/hal/include/hal.h:57, from c:\chibistudio\ugfx\src/gos/gos_chibios.h:19, from c:\chibistudio\ugfx\src/gos/gos.h:462, from c:\chibistudio\ugfx\gfx.h:206, from ../../ugfx/src/gos/gos_freertos.c:8: ../../chibios161/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h:244:2: error: #error "PWM driver activated but no TIM peripheral assigned" #error "PWM driver activated but no TIM peripheral assigned" ^~~~~ In file included from ../../chibios161/os/hal/include/pwm.h:92:0, from ../../chibios161/os/hal/include/hal.h:57, from ../../ugfx/src/../src/gos/gos_chibios.h:19, from ../../ugfx/src/../src/gos/gos.h:462, from ../../ugfx/src/../gfx.h:206, from ../../ugfx/src/gfx.c:16: ../../chibios161/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h:244:2: error: #error "PWM driver activated but no TIM peripheral assigned" #error "PWM driver activated but no TIM peripheral assigned" ^~~~~ make: *** [.build/obj/GFXLIB/src/gfx.o] Error 1 make: *** Waiting for unfinished jobs.... make: *** [.build/obj/GFXLIB/src/gos/gos_freertos.o] Error 1 In file included from ../../chibios161/os/hal/include/pwm.h:92:0, from ../../chibios161/os/hal/include/hal.h:57, from board.c:17: ../../chibios161/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h:244:2: error: #error "PWM driver activated but no TIM peripheral assigned" #error "PWM driver activated but no TIM peripheral assigned" ^~~~~ In file included from ../../chibios161/os/hal/include/pwm.h:92:0, from ../../chibios161/os/hal/include/hal.h:57, from c:\chibistudio\ugfx\src/gos/gos_chibios.h:19, from c:\chibistudio\ugfx\src/gos/gos.h:462, from c:\chibistudio\ugfx\gfx.h:206, from ../../ugfx/src/gos/gos_chibios.c:8: ../../chibios161/os/hal/ports/STM32/LLD/TIMv1/pwm_lld.h:244:2: error: #error "PWM driver activated but no TIM peripheral assigned" #error "PWM driver activated but no TIM peripheral assigned" ^~~~~ make: *** [.build/obj/board.o] Error 1 make: *** [.build/obj/GFXLIB/src/gos/gos_chibios.o] Error 1 I looked at the mcuconf.h file. Every "TIM" is set on FALSE. Do I have to set one one "TRUE" and which one?
  28. Visual Studio 2013 build issues

    Use the git repository version not the released 2.7 zip. The repository has all the latest updates including the fixes you need. http://git.ugfx.io
  29. Starting a Project with ugfx on chibiStudio (ChibiOS 3)

    Same thing again. Your chibios halconf.h needs to be set to enable the required device.
  1. Load more activity