aeroman Posted July 7, 2017 Report Posted July 7, 2017 Hello, thank you for your work and providing uGFX as open source. I'm trying to write a gdisp driver for UC1610 controller coming with EA-dog xl 160 lcd screen with the help of driver exemples (UC1601s and UC8173) from git repository. For now, the driver works on stm32F4 and i2c, but for sure, there are many improvements to do. Do you have advices helping to improve the driver ? thanks, Bye dogxl160-7e-4693.pdf uc1610_v1_36.pdf UC1610.zip
Joel Bodenmann Posted July 10, 2017 Report Posted July 10, 2017 Hello @aeroman and welcome to the µGFX community! Thank you for sharing your driver with us, we really appreciate it. I gave it a quick look and so far it looks quite good. We've seen way worse. That's pretty good for your first driver, well done! I'm not sure on the command buffer thing but then again I didn't yet find enough time to properly investigate. I think that this is good enough to be included into the repository. The board file template needs to be created but that's easy. What do you think, @inmarket?
aeroman Posted July 12, 2017 Author Report Posted July 12, 2017 Hello @Joel Bodenmann thank you for your reply, i replaced the cmdBuffer by write_cmd, write_cmd2 functions (at most double bytes commands) and added the board template file. A little video to show the screen : https://www.youtube.com/watch?v=hBitl602EYc UC1610_2.zip
Joel Bodenmann Posted July 12, 2017 Report Posted July 12, 2017 Great work! We'll integrate your driver into the repository soon.
inmarket Posted July 19, 2017 Report Posted July 19, 2017 This has been added to the repository. Can you please check that I haven't broken it as I made some small efficiency changes on the way through.
aeroman Posted July 19, 2017 Author Report Posted July 19, 2017 Hi @inmarket, nothing has broken after changes you've done.
Joel Bodenmann Posted July 19, 2017 Report Posted July 19, 2017 I found two more things: Line 133 through 148 are obsolete and can be removed. Orientation handling is taken care of in the gdisp_lld_control() function as the display driver supports this natively. It's just dead code. Line 188 seems to do a funny or operation on zero. Looks kind of obsolete to me too unless I am missing something. Other than that the driver looks very well built and very mature. Great work!
inmarket Posted July 20, 2017 Report Posted July 20, 2017 Joel, it looks like this controller only supports x-axis reversal (atleast the way the control code is currently set up) and hence lines 133 to 148 is necessary. I haven't checked the datasheet to see if y axis reversal is really possible and I would want to have the hardware before trying that. Line 188 matches line 197. Whilst the or with 0 is unneeded, it will be optimised out by the compiler and properly documents the set/reset instruction for program enable and hence is worthwhile for code readability.
Joel Bodenmann Posted July 20, 2017 Report Posted July 20, 2017 Okay, that makes sense. Sorry for the noise!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now