|Adafruit 2.2" TFT with a BeagleBone Black|
|Code to measure screen redraw time|
Depending on how much of the screen was being redrawn and the load on the BBB it would take between 0.7 seconds to 0.9 seconds to execute the disp.display(image) function. The following output is for the example image.py that draws the cat.jpg file to the screen:
|Output measuring screen redraw time|
One of the commenters on my previous post tracked down the slowness to one specific function named 'image_to_data' in the file ILI9341.py. He also supplied a modification that reduced his screen redraw time dramatically by using NumPy. I tried it out and it reduced my screen redraw times dramatically. Screen redraws went from 0.85 seconds to 0.17 seconds. That is an 80% improvement!
|Screen redraw times when using NumPy|
If you want to make this modification yourself here is what you need to do:
1. Install PyNum. This is easy to install as it is available as a pkg.
|Install the python-numpy package|
2. Edit the file Adafruit_Python_ILI9341/Adafruit_ILI9341/ILI9341.py
First add the import statement at the top
|Add import statement for numpy|
Next modify the image_to_data function. Here is the original function
|Original image_to_data function|
and here is the function after being modified to use NumPy
|Modified image_to_data function|
3. Save the file and then re-run the installation script.
If you don't want to manually make these modifications you can use my forked version of the library: https://github.com/matt448/Adafruit_Python_ILI9341
I have submitted a pull request to Adafruit for this change so maybe in the future this will be included there. [UPDATE: Adafruit has pulled these changes into the master branch of their library. If you download the latest version here https://github.com/adafruit/Adafruit_Python_ILI9341 you will get the improved screen drawing speed.]
Here are videos before and after I made the change. It's quite noticeable when making quick changes. Before making the code changes the display would lag behind when adjustments were made to the pot.
[Updated 2014-10-08: Added before and after videos.]
[Updated 2015-03-11: Added note about my pull request being included in the main library.]