Create CMSIS Pack for Touch Driver GT911


I have created a Touch Panel Driver for the g_sf_touch_panel_i2c Touch Panel Framework on sf_touch_panel_i2c for the GT911 chip, so I used the ft5x06 file as my base file, which I then altered to suite the GT911, now if I select the ft5x06 as the driver in the configurator then I can edit that file and mark it as read only compile and then run the application and all is fine, the issue is I now want to make it a CMSIS pack driver so that in the configurator I can select the driver as a option.

The issue I am having is that I dont know the steps involved in making a CMSIS pack for this driver, so that it adds it to the available list, now I have tried to understand Jeremy's commecnt in the following thread - - however in the SSP 1.7.5 I dont think this is the method anymore, so what I did was take the .pack file for the ft5x06 and edit it to be a gt911 ect, now it all imports with the exception that in the synergy->ssp->inc->framework->instances->sf_touch_panel_i2c.h file I had to edit that now and add the following line at the end - 

extern const sf_touch_panel_i2c_chip_t g_sf_touch_panel_i2c_chip_gt911;

then save the file and mark it read only, then it all works as I need, now my issue is that if I have to edit a file and mark it readonly then I can just as well edit the ft5x06.c file and then mark that readonly, I am looking for a guide or something that shows how to create drivers for a specific framework like the sf_touch.


Ronald Hare

Top Replies

  • e2studio help contains information on creating a user pack file (this is from e2studio 7.8.0 help) :-

  • Hi Jeremy,

    Thanks for the reply, but the creating of the pack is not the problem, its creating a pack that will make itself available to the framework as a driver for that part of the framework, as I said I can get it to work if I edit a existing .pack file, but then the framework includes are missing as I mentioned since this is not a ssp driver that came with the ssp, so no matter what I do I have to edit a SSP file and make it read only, this is not a solution and if that is the case with synergy then its a bad solution and I doubt that is Renesas's idea of a solution, so I am looking for a guide that will show me how to turn my low level driver into a pack that will include correctly into the framework so that it is usable.

    Sorry if I sound disgruntled, its not meant at you, I just feel that if Renesas wants us to write our own framework low level drivers then give us a guide to create it as a pack to use in the framework, I code from my home and office on the same projects using One drive as sync method, so if I don't have it as a pack and its a file marked as read only then sometimes when I compile it will loose the read only mark and then clear that file and replace it with the SSP one, now when you have 5+ different drivers like that running in 1 project then you can have a huge headache trying to keep each file in check, but if I can create packs and import them then my project never break irrespective of where I am working from.

    Again sorry not aimed at you, I go to Renesas site and enter guide to create CMSIS pack for framework and nothing, so I feel they want me to use there system but they don't want me to be able to customize it, now I get that maybe I did not look in the right place but there is no guide to show me that I looking in the wrong place, creating BSP is easy there is guide, I do those all the time, but nothing for a low level driver to plug into a framework.

    Ronald Hare

  • The User pack file creator will just package the files provided, the difficult bit is to creating the XML to put in the pack file that is required to driver the configurator, and make the component available to add to a stack.

    A pack file is just a zip file compress with the correct compression method (deflate), so can be viewed in something like 7zip :-


    The XML files required are in the .module descriptions folder in the pack file :-

    Unfortunately I have never seen a document that describes the XML that is required, so when I have created a custom pack file, I have taken an existing pack file for a similar module, extracted it, and used that XML as a start. Not a very good situation I know.

  • Hi Jeremy,

    Thanks for the reply, it then means that the way I have been doing it is the same way, the answer needed now then is what to do about the framework file synergy->ssp->inc->framework->instances->sf_touch_panel_i2c.h that needs this line -

    extern const sf_touch_panel_i2c_chip_t g_sf_touch_panel_i2c_chip_gt911;

    since without that line the code wont compile, and as I mentioned if I have to edit that file and mark it read only I might as well edit the ft5x06.c file and mark that readonly and then I dont even need to export the CMSIS pack, but again I dont think that is the way this is intended and I hope someone can give me the answer as to where I can change something so that the line mentioned is not needed, will test if I place that line at the top of my .c file if it will help solve the problem.

    Ronald Hare
  • Attached is an example pack file for a touch controller called gt911 (rename to .pack to use), it is based on the ft5x06 pack file. To create it i did the following (with e2studio closed) :-


    1) Copy and rename the file Renesas.Synergy_touch_panel_i2c_ft5x06.1.7.5.pack to Renesas.Synergy_touch_panel_i2c_gt911.1.7.5.pack in the directory internal\projectgen\arm\packs under the e2studio installation.


    Then, the rest of the changes are to the contents of the pack file Renesas.Synergy_touch_panel_i2c_gt911.1.7.5.pack


    2) Edit the name of the .pdsc file in the pack file, to match the name of the pack file :-


    and in the .pdsc file change any occurance of *ft5x06* to *gt911* e.g :-


    3) in the .module descriptions folder, rename the XML file to match the name of the pack file :-


    and in the XML file change any occurance of *ft5x06* to *gt911* e.g :-




    I also added to the XML :-

    This will add

    extern const sf_touch_panel_i2c_chip_t g_sf_touch_panel_i2c_chip_gt911;

    to the header file for the thread, to allow the code to compile.


    4 ) Then in the Synergy folder change the path from "synergy\ssp_supplemental\touch_drivers\touch_panel_i2c_ft5x06\" to "synergy\ssp_supplemental\touch_drivers\touch_panel_i2c_gt911\" and the name of the c file also needs to be changed to touch_panel_i2c_gt911.c :-


    I also did a search and replace in the file  touch_panel_i2c_gt911.c, changing ft5x06 to gt911, you would want to replace the contents of this C file (in the pack file ) with your actual code for the GT911 touch controller, that you have written.


    With e2studio closed, This pack file is then placed in the directory internal\projectgen\arm\packs under the e2studio installation you are using, then e2studio is opened.

    When you start a new project, this GT911 pack file then gives you the option to add a GT911 touch controller to your project :-



  • Hi Jeremy,

    Thanks for this post, so I almost did everything as you have accept the
    I also added to the XML :-
    So this is what is missing for my solution.

    So what I would suggest you do, is take this process and make a manual or guide even if it is on this forum, but at least when someone searches how to do this they will find your guide and have there answer, I have marked this as my answer to assist someone looking for the same, but people will only find it if they are possibly doing a search for Touch Panel I think.

    What I would like to know is where you found the information that you had to add that section into the XML, this is the info I would have like to find in a guide, that says something like, if you do your own driver you need the following in a xml to add your variable to the SSP header file for functional compilation.

    PS Sorry I ranted, again it was not meant at you, but it would be nice if Renesas gives us the guides we need to achieve the goals we want to use there systems, and this should for ease of finding be in a guide called writing and adding your own drivers for frameworks, something like that.

    Ronald Hare
  • Hi Jeremy,

    I also wanted to add that for me to get the driver available on the list I have to copy the Renesas##HAL Drivers##touch panel##touch_panel_i2c_gt911####1.7.5.xml file to the renesas->synergy->"e2studio install"->internal->projectgen->arm->modules folder, this might be because my install is not in standard location, but once I did this with the updated xml file that includes the header part it now compiles no need for readonly files, so this confirms that was the key, but again a guide with this would be great.


    Ronald Hare

  • Hi Jeremy, 

    followed the above. renamed version to 2.3.0 and renamed i2c to chip in file names and within the files.

    renamed pack files as below.
    Renesas##HAL Drivers##touch panel##touch_panel_chip_gt911####2.3.0.xml

    modified .pdsc file and changed i2c to chip.

    It is now listed in the Stacks.

    I found ssp_supplemental folder is not added to the project for gt911 chip

    but it is added when I select  ft5x06.h am I missing anything ?


  • Hi path,

    I get it in mine, but I would have to check for you what I did to make it work.

    I have the CMSIS pack will see if I can upload it, then you can just install it and it will work for you


    just remove the .zip from it and use e2 studio to install the pack, its for 2.2.0

  • Thank you very much Pray

    Will try and let you know. 

Reply Children
No Data