I’m working on a project where I need to horizontally and vertically flip the image displayed on a NewHeaven T43 capacitive touch display.
Unfortunately I cannot do this via hardware (flipping the display itself I mean), and i need to do this via software.
From the touch coordinates point of view there is no problem, i can flip the coordinates via software, but I don’t know how to do this for the image displayed on the LCD…
Is there any configuration flag I can set, or any register variable to set on the G120 ?
Thanks everyone for the help!
We had the feature many years ago but I think it was removed as it degrades the performance considerably. There are too many pixels to move around.
thank you for your answer… Yes, I’ve seen that there was a function called “SetRotation” or something like this in the framework…
Ok, no way from the high level point of view, but neither setting some registry into the G120 processor itself ?
As far as I know almost any processor offers this feature and, as it is at hardware level, it should not suffer of great performance issues…
Unfortunately I cannot find anything into the G120 datasheet…
If it is not possible, I have to completely redesign my board and is a very expensive way…
Any idea ?
The processor used on G120 doesn’t support rotation. In theory, you can add an RLP that handles this, or add the feature to the TinyCLR OS framework. But neither of these are super easy. We could add such features for you but honestly I think changing your hardware may end up being less costly.
Thanks for your answer, I will try to see if I can change the hardware.
In any case, as it was dropped years ago, do you have the source codes of the old functionality ?
I can try to implement it and see what i can obtain from the performance point of view…
By the way, sorry but what do you mean saying “RLP” ?
the source code will be internal to the netmf core that GHI developed. It’s unlikely you’d be able to integrate that into something you could deploy to your device, as you’d need to build the WHOLE netmf framework, not something you can do.
RLP is GHIs interoperability capability. A search on the web for GHI and RLP should tell you what you need. it’s compiled C (family) code specific to the microprocessor, so it’s not interpreted and will run faster.
But I agree with Gus, hardware is a cheap(er) solution.
Thanks everyone for your suggestions…
But the real problem is that even the hardware solution will not be 100% ok because, depending on where the device is installed, there is the possibility that I need the LCD in the standard position or in the 180 rotated position. So the software solution still seems to be the best: one hardware, only a configuration matter…
Now, after a bit of search on Internet about RLP etc, before dropping the software choice, I try to explain what I have in mind:
RLP is definitely the right choice if one wants to implement a software solution but, apart from implementing the RLP Itself, where do I have to put the call of the RLP mirroring function ?
In my code I use GLIDE: after a bit of search inside the GLIDE source codes, I’ve seen that every object that displays something inherits from DisplayObjectContainer which holds a Graphics variable which defines a Bitmap Object that is the representation of what I see on the screen… Right ?
Now, if I make my Graphics class, that somewhere (where exactly ??) calls the RLP function on the Bitmap Object, this one will be rotated and once displayed will be shown 180° rotated…
Now if everyone agrees, the problems I face are:
- where do I find the tools to write and compile an RLP ?
- Once I succesfully modify GLIDE source codes, how can i tell Visual Studio to link with the modified glide library and not with the original one ?
Any other idea will be greatly appreciated.
If this is a must feature for a commercial design then I suggest you chat directly with our staff, phone or email.
thanks, i will contact the staff directly.
I believe Gus misspoke a little. The rotation feature that we added a while ago is still in NETMF 4.3. You can find it on the display configuration object at
GHI.Processor.Display.CurrentRotation. While we haven’t tested it in a while and we do not have support for mirroring just X or just Y on their own, you can rotate 180 degrees (the
Half member), which may give you the effect you need.
thanks for your suggestion… To be honest, I saw this feature in the Display documentation, and I tried it, but setting it had no effect in what is displayed (the image is still not rotated) so i thought it was dropped in the last release.
Do I miss anything ?
Did you call
Save after settting it?
No… Calling Save It seems to do what I’m looking for!!
I will try it a bit, but it sounds very promising.