Official Atmel Touchscreen Driver on GitHub - Hardware Hacking General

Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel

thank u for ur valuable information, well can u pls post what are the latest changes and updates. that will help the devs much more.

Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif

Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
https://github.com/Entropy512/linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
https://github.com/atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.

Entropy512 said:
Is https://github.com/atmel-maxtouch the correct URL?
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
Click to expand...
Click to collapse
But it's not Atmel who are to blame. Atmel are doing a great job working directly with upstream so that all the users of mainline linux can benefit. I have been using the drivers from the vanilla kernel for quite a while on both my tegra tablet (with chromium kernel) and galaxy s2, and they work just fine, supporting multitouch in xorg in ubuntu.
The problem is OEMs who do crap like hardcoding/hacking drivers instead of using platform data, use machine-specific hacks, custom interfaces and a lot of copy-paste. That's the essence of modern consumer electronics business - no one cares for quality, only about releasing early.

Entropy512 said:
Unfortunately, if it is, the drivers in this repository are structured completely differently from the ones included in many vendor source drops, and unfortunately this causes great negative impact on their usefulness.
See, for example:
linux_kernel_sgh-i777/tree/master/drivers/input/touchscreen - This includes the mxt224 drivers as implemented by Samsung on their device (Galaxy S II)
atmel-maxtouch/linux/tree/master/drivers/input/touchscreen - mxt224_u1.c is completely missing, indicating that the driver here is incomplete or structured very differently from the one used by Samsung, making it very difficult to use. Also, the few files there that do pertain to Atmel MXT such as atmel_mxt_ts.c in there appear identical to the mainline Linux repo.
Click to expand...
Click to collapse
I think you're looking at the unchanged mainline branch: the driver releases are as tags.
The advantage of these drivers is that they are generic for all chips in the maxtouch series. mxt224_u1.c is just a renamed atmel_mxt_ts.c, it contains lots of mxt224 specific configuration and it's unlikely that it will go upstream.
You will also find some user-space tools for extracting config files in a format the kernel driver can load, on the same github account.

Missed the tags, thanks for the additional info!
I'll look into maybe playing with this when ICS time rolls around. It's getting late in the game to do a major driver rework on the Gingerbread kernel I maintain.

sherifhanna said:
Hi showlyshah,
The latest updates include the following:
- Support for Atmel's mXT224E, mXT768E, and mXT540E chipsets
- Support for both protocol A and protocol B reporting
- Support for kernel 3.0 in addition to kernel 2.6.35
More details are available on GitHub in the release notes.
Regards,
Sherif
Click to expand...
Click to collapse
Hi Sherif,
I found the project in Github, but am not able to find the the release notes. Does this driver support the Atmel mXT336S at this time?
Thank you

Hi omaha64,
Support for mXT336S is in progress.
Regards,
Sherif

Question,
I am trying to back-port the 2.6.35.7 driver to 2.6.32. I have mostly succeeded, but probe() fails because of missing platform_data. Digging through the driver code, I found the platform data structure in include/linux/i2c/atmel_mxt_ts.h:
Code:
struct mxt_platform_data {
unsigned long irqflags;
u8(*read_chg) (void);
};
So I assume that in my board file (where my i2c_board_info arrays live) I would want to create a static instance of the above struct and store a pointer to it in the .platform_data member of the i2c_board_info struct, right? But what is the preferred initialization, and what is read_chg supposed to actually do? What's the consequences of just setting it to NULL? (I know it won't crash because the driver checks it before calling it)

Need atmel mxt224 driver for Windows embedded compact 7
sherifhanna said:
Hello XDA developers,
As you know, Atmel maXTouch touchscreen controllers are used in a large percentage of Android phones and tablets out there.
I wanted to let you know that the latest patches for the official Atmel maXTouch Linux driver are available on GitHub. This will allow you to get the latest up to date changes before they make it into the mainline kernel.
On GitHub, search for user "atmel-maxtouch"
Happy hacking
Best regards,
Sherif
Product Marketing Manager - Atmel
Click to expand...
Click to collapse
Hi,
Can you please send me the multi touch driver for ATMEL MXT224(Stream interface PDD layer) for Windows Embedded compact 7.
Thanks in Advance,
Rag

Android Driver Initialization
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.

ceskobassman said:
Hi,
I would like to use MaxTouch mxt224 on a TI am335x-evm board running Android ICS, I'm looking for documentation on how to initialize mxt224 driver from board's configuration file. Can someone help me?
Thanks.
Click to expand...
Click to collapse
.
I don't know if there's such documentation to tell you how to initialize. At least a sample exists; look here:
arch/arm/mach-exynos4/mach-nuri.c
The values in "mxt_init_vals" come from Atmel's mxt224 datasheets/manual, so you'll have to find those. I would be surprised if you could not find these by Googling. When I was trying to get the mxt224 to work on an Omap4 board, I had to hack up the driver a little to handle the reset going to the IC, and to handle the /READY line from the IC to the host. Also, for ICS, you will need to have an IDC file in your root file system. Just Google for "Android Input Device Configuration File" (I'm new here and cannot post links yet).
Without that IDC file, Android considers the touch device to be a pointing device (like a mouse).
Good luck

Atmel Mxt768e Driver details
Hi Sherif & All,
Can you please share the atmel MaxTouch mxt768e driver link, I would also request you to share the driver which has the implementation for fIrmware upgrade.
Thanks,
Balaji S

Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?

KurianOfBorg said:
Is there some place I can learn to understand and modify these? I've never done driver development before. Before I waste any time with this, can someone confirm if the input lag in most devices is because of filtering in the driver or because of the Atmel hardware?
Click to expand...
Click to collapse
I don't think you'll be able to find a single place that describes the driver. Luckily, these drivers are small, the mxt224 is just a single C file. I've looked at the mxt224/mxt336, so the following info is specific to those. Some high level info for you to get started:
* The driver allows the exchange of "objects" between the touch IC and the host processor. To understand what the objects are, you'll need to find the datasheets/manual for the chip you're using. Just try Googling for it. Objects from the host to the IC are typically configuration data, and objects from the IC are probably touch data
* In the case of the mxt224/336, the driver needs the I2C driver
* The driver has a structure that needs to be setup from your board file (example arch/arm/mach-omap2/board-???.c). This structure has some configuration data needed by the driver
* Typically, there's a reset line that has to be pulled high on the board. May need pinmuxing to set the functionality of the pin correctly.
* The IC will also have a /CHG line that will go low when it has data to send to host. You will need to set up pinmuxing for this pin as well.
* The driver has an interrupt routine handling the /CHG line. When a touch/drag happens, objects will be sent to the driver to process. The driver formats the data and forward that up to the user space via the input subsystem.
* If you're doing this for Android, you'll need an .idc file in your root file system. Info: {link removed because I'm new. Just google Android IDC }
* The driver will look for a config file in /system/vendor/firmware, upon starting up
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.

omaha64 said:
I can't comment too much on the lag you're talking about because I don't know the nature of the lag you're seeing. But I can tell you that the Atmel touch IC needs a "tuning" process where the internal parameters have to be adjusted to operate properly.
If you find more info on this subject, please post it here.
Click to expand...
Click to collapse
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.

KurianOfBorg said:
The "lag" is because the touchscreen does not recognise fast taps. You must press and hold your finger on the screen for several milliseconds before it actually recognises a touch. If it was purely a latency, then even a fast tap would be recognised after a delay. In this case, only a continuous press of a minimum duration is recognised. This makes the screen unresponsive and useless for games that need taps.
Is this something that can be resolved in the driver? I have a feeling this is coded in the firmware blob that gets uploaded to the touchscreen on initialisation.
Click to expand...
Click to collapse
I believe that if the issue you're describing is due to the IC's noise rejection algorithm, then you may be able to alter that in the driver. There are params in the chip such as number of valid ADC samples for the touch to be recognized as a true touch, that you can play with. But I don't know if you can change these parameters on the fly, or has to be done at start up. I haven't played with these params. See if you can grab hold of a "Protocol Guide" for the touch controller that you're working with. That shows all the params that you can change. In fact, you may be able to alter some of these params without having to touch the driver; search for mxt_app in github. I've used mxt_app to load configuration and change T9 object before, but that's the extent of my use of it.

Thanks for your help. Time to start reading. Some of the mach-* initialisation params can be changed at runtime such as the Vitalij value.

What is the real world best case input latency of these controllers? Can the Galaxy S2's touchscreen actually be made as good as the iPhone 5 or are the iPhone controllers simply superior?

Related

Linux on BlueAngel (MDA3)

Hi guys,
after having some trouble with the haret-0.3.2 from
the xanadux site, i've managed to
find the framebuffer address, 'dump mmu',
watch the e/gpio lines and dump ms-registry
over wireless.
The hardware looks very similar to Himalaya,
but there are some minor differences.
The himalaya kernel doesn't boot, but that
can be a haret fault.
If somebody wants to help/advise/supply me
with the patches/wiring for the serial console,
i'd like to hear from you !
I would like to help any way that I can.
I'm awaiting a Sprint PPC-6600 Blue Angel and want to be able to use a Linux distribution for it.
I'm not experienced with much beyond compiling x86 kernels and drivers while following a recipe, though.
Anything I can do to help?
Re: I would like to help any way that I can.
philverb said:
I'm not experienced with much beyond compiling x86 kernels and drivers while following a recipe, though.
Anything I can do to help?
Click to expand...
Click to collapse
I think there are two areas where useful things can
be done right now: to patch the bugs in haret
(some lowlevel wince knowledge required), and to
describe the hardware details in wiki.
To support the basic CPU/USB/framebuffer& ramdisk is
not really difficult, since we have Himalaya code in the handhelds CVS.
The next crucial and complex step will be to understand how ATI Imageon supports the SDIO.
The next important thing is to port a driver for
the ACX100 wifi chip. The guys working on
HPAQ hx4700 (also designed by HTC) have it too
and made some progress.

Are there NO news on the Linux developement ?

I follow the Wiki very well since months, but there seems to be no news on Linux-Porting efforts!?
Is the project stopped, or where have I to look for the current state, news and problems?
I am willing to help, - but I am a linux newby.
Is there some Kind of Mailing Archive for the developement? The one in Sourceforge seems not to be used since a year!!
Where can I follow the current status ?
Best Info I found, and I am refering therefore is http://forum.xda-developers.com/viewtopic.php?p=30148#30148
JuNuKN said:
Where can I follow the current status ?
Click to expand...
Click to collapse
The Himalaya code is merged into the handhelds.org CVS. The main problem
is the missing SD driver, which should be
reverse engineered from the wince code.
So at the current stage linux on the HTC
PDAs (HP ipaq hx4700 included) is not for
newbees
so basically, do you mean that those smart Linux Developper are not able to code that SD driver and will steal into Microsoft OS?
No wonder Microsoft is calling that stealing intellectual property!
well unless the hardware sdchip maker or the software dll maker let people in on the interface there really is no way to make a new interface without reverse eng the existing stuff
unlockMe said:
so basically, do you mean that those smart Linux Developper are not able to code that SD driver and will steal into Microsoft OS?
Click to expand...
Click to collapse
The Linux developers don't have the hardware datasheet for ATI Imageon chip
that describes how the SD interface works.
If you have followed the Linux driver development, the majority of drivers are
reverse engineered, because many
hardware companies think that
hadrware description is
"intellectual property".
unlockMe said:
No wonder Microsoft is calling that stealing intellectual property!
Click to expand...
Click to collapse
Who cares what microsoft says ?
Reverse engineering for interoperability
is legal
even in the "Land of the Free".
Isn't it going on (elsewhere) ?
It seems, that the developement is going on (elsewhere) ....
http://www.handhelds.org/moin/moin.cgi/HTCWallaby
NEWS 2005/4/4
*
Added support for flash and gsm-(bootloader) uarts.
*
New binary distribution v0.2.
greetings all. i'm new here, so forgive me if this has all been asked before.
i've got one of these BlueAngels (mine's branded i-Mate) and small annoyances with wince drove me to look into running linux on my PDA. i think that i can be of help on this project and would like to talk to others who have made some progress already.
my main question in this: how similar are the wallaby, himalaya and blueangel? should I be able to get as far as previous developers have with those other devices? I cannot find much information on the blueangel in the wiki here and information on HTC devices at handhelds.org is scarce. do i just need to keep digging?
sjs said:
how similar are the wallaby, himalaya and blueangel?
Click to expand...
Click to collapse
himalaya and blueangel are similar,
wallaby is different.
sjs said:
I cannot find much information on the blueangel in the wiki here and information on HTC devices at handhelds.org is scarce.
Click to expand...
Click to collapse
Take the himalaya wiki as a basis and
change the things that differ, for example,
MMU 1st level descriptor table is at A01D0000.
WiFi is ACX100-based.
Find out if ASIC3 SDIO (driver exists) or ATI3220 SDIO (???) is used.
Read on handhelds.org about the HP hx4000 and hx4700 ipaqs - they are also by made HTC.
Isn't it possible to use Qtopia or Movista on these HTC devices?
cr2 said:
himalaya and blueangel are similar,
wallaby is different.
Click to expand...
Click to collapse
ok, this is what i suspected. i've been reading more on the himalaya as that is what is supported by the current hh.org kernel. i'm hoping to have success running one of those kernels on my device as soon as i get it to compile. since they both have a pxa263 i think it should work. (famous last words)
cr2 said:
Take the himalaya wiki as a basis and
change the things that differ, for example,
MMU 1st level descriptor table is at A01D0000.
WiFi is ACX100-based.
Find out if ASIC3 SDIO (driver exists) or ATI3220 SDIO (???) is used.
Read on handhelds.org about the HP hx4000 and hx4700 ipaqs - they are also by made HTC.
Click to expand...
Click to collapse
thank you for this info. i will have to start reading a lot. i'm currently reading the intel dev manual for the pxa processors... unfortunately between school and work there's not a lot of time for this but as they say, Rome wasn't built in a day. 8)
Jainoxi said:
Isn't it possible to use Qtopia or Movista on these HTC devices?
Click to expand...
Click to collapse
Qtopia works off the raw framebuffer.
If you have the working framebuffer driver,
then yes.
sjs said:
Rome wasn't built in a day. 8)
Click to expand...
Click to collapse
Here is some more info.
thank you again. i think once i grasp how the kernel boots this device (first time hacking on a kernel) and familiarize myself with the dev manual i'm going to attempt to get a console on the device. i still have to see how far the lcd and keyboard drivers are.
have you had any success booting a kernel on this device? i have gotten as far as haret showing me a fully red thermometer and the penguin's eyes changing but then it freezes, every time. the only kernel i have attempted so far is the 2.6.3 one for the himalaya on the wiki. i would be happy to even see a kernel panic. i haven't used linexec yet, but i don't think haret is the problem here.
there is lots that can be done with haret but i'd rather start debugging the current code to get a feel for it before i jump in and write my first kernel code.
sjs said:
have you had any success booting a kernel on this device?
Click to expand...
Click to collapse
No. Buggy haret freezes during boot.
sjs said:
i have gotten as far as haret showing me a fully red thermometer and the penguin's eyes changing but then it freezes, every time.
...
i haven't used linexec yet, but i don't think haret is the problem here.
Click to expand...
Click to collapse
Don't waste your time on linexec, because haret is its derivative.
Haret is a nice piece of software, but it has some major problems in linboot.cpp
that should be fixed first.
The booting fails for me here:
preloader = (uint8 *)((mem + 0xfff) & ~0xfff);
preloaderPA = memVirtToPhys ((uint32)preloader);
Output (L"TMP Preloader physical/virtual address: %08x %08x", preloaderPA, preloader);
so i have replaced memVirtToPhys (returning -1) with LockPages, get the "real" physical addresses, but it still doesn't boot.
I don't really get it WTF is this garbage collector stuff doing there. Maybe we
can rewrite it completely, but i don't have
time right now
hi there,
this stuff is really interesting...
may I join you somehow?
buzz
cr2 said:
Here is some more info.
Click to expand...
Click to collapse
From atihwtbl0.txt
[USB] //USB
"HostClk"=dword:0x1 // enable function clock if there is a host port
"Port0Mode"=dword:0x2 // 0 disable, 1 host, 2 function, 3 OTG
ATI integrates TransDimension's USB On-The-Go OTG Core into new Imageon display co-processor for handheld devices.
http://www.us.design-reuse.com/news/news4636.html
There are a lot of datasheets on interfacing to PXA* here
http://www.transdimension.com/downloads/index.html
buzz_lightyear said:
may I join you somehow?
Click to expand...
Click to collapse
You can start a blueangel hardware wiki
sjs said:
I cannot find much information on the blueangel in the wiki here and information on HTC devices at handhelds.org is scarce.
Click to expand...
Click to collapse
ATI Imageon has hardware 2D acceleration,
MPEG decoder (betaplayer
source code shows how to use it),
USB OTG (as i have mentioned it is enabled in the "function" mode), video capture port
(also can be used), SDIO port (not yet clear if it is used). If we will trust the atihwtbl0.txt
there is an I^2C port (unused) and some
GPIO lines (unused).
cr2 said:
Find out if ATI3220 SDIO (???) is used.
Click to expand...
Click to collapse
The SDIO and VIDCAP sections are missing in the atihwtbl0.txt file.
The video capture is working...
[SDIO]
SDIOEnable
CardDetectEnable
ControllerEnable
InvertSDClock
[VIDCAP]
DeviceConnected
ITUFormat
buzz_lightyear said:
may I join you somehow?
Click to expand...
Click to collapse
of course! i myself am still getting my feet wet here. currently i'm reading the following intel documents:
(this is roughly the list over at http://zap.eltrast.ru/en/haret.html )
http://www.intel.com/design/pca/applicationsprocessors/manuals/278638.htm
http://www.intel.com/design/pca/applicationsprocessors/manuals/278639.htm
http://www.intel.com/design/pca/applicationsprocessors/manuals/278641.htm
http://www.intel.com/design/intelxscale/273473.htm
http://www.intel.com/design/pca/applicationsprocessors/applnots/278786.htm
These are somewhat in order of decreasing importance (according to HaRET's author). I'm just past pg. 100 of the first one listed, PXA26x developer's manual.
As cr2 said, a page for the Blue Angel's hardware on the wiki here would be useful.
I haven't found any sites with anything really useful apart from on www.handhelds.org and this website here (obviously excluding intel's documentation), but perhaps someone else knows of some other fruitful sources.

AndroidAthenaProject1.0

[size=+1]Introduction:[/size]
I am proud to introduce "AndroidAthenaProject1.0" on behalf of the Athena Project Team! We have successfully ported Android to the Athena (More info about the Athena). This will be the official thread for optimizing and working out bugs related to Android on the Athena.
YouTube Demo
[size=+1]News:[/size]
05/28/2008 - New update available: (Athena-Android "All-n-1" Release) (More Info and even more info). This update adds touch screen support and screen rotation applet. Video driver still needs a lot of work. Screen updates are slow. Coding decent video drivers will be my next priority and if anyone is willing to give a hand, please let me know. Thanks!
[size=+1]Athena/Android Resources:[/size]
Download Android for the Athena (x7500/x7501/Ameo/etc...): Latest Release or Here (Click here for instructions)
Git: https://github.com/mistadman/android-athena/. This should be easier for us to manage changes. Enjoy!!
Diff and .Config (05282008): Download
[size=+1]Project Status:[/size]
Keyboard (not started) (A USB keyboard can be used for testing while we wait for drivers. See this post)
Touch screen (done):
More info
Testing/Bug fixes
Phone (not started)
Video(in progress):
Correctly implement pan_display() function (double buffering)
Speed improvements
Sound (in progress)
Wifi (not started)
Bluetooth (not started)
GPS (not started)
Camera (not started)
Sub-display (not started)
Accelerometer (not started)
Android Application Functionality(in progress):
RotateView Applet added: (More info)
This applet lets you rotate the screen. Unfortunately, due to incomplete video driver, video performance takes a serious hit during rotation.
[size=+1]Contribute:[/size]
If you would like to test or can contribute to one of the outstanding issues above, please let us know. Also, marthynovak has posted quick and dirty guide to testing our releases. See this post for more information.
-----
_--Reserved--_
This post has been reserved!
_--Reserved--_
This post has been reserved...
Here is small how to to start android on Athena.By mistadman
Download Android for Athena here(last build): http://rapidshare.com/files/118229739/Android-Athena-05282008.exe.html
free method(please use only when you cant you rapidshare) http://gymjs.net/~m.novak/Android-Athena-05282008.exe
Once downloaded, unzip and copy the unzipped files to a SD Card. The root of your SD Card should have these files:
haret.exe
default.txt
zImage
initrd-android
Once you have verified the files listed, insert the SD Card in to your Athena. From there just load up Windows Mobile and browse to your "Storage Card" in "File Explorer". Click on the file called "haret.exe", and once the program has loaded; click run.
Just remember that this is work in progress!
more info:
its only the system,the keybord is not working,screen isnt working.Just remember that this is work in progress!
Here is some plan what must we do(by mistadman):
1.) Add some Ati specific 3D acceleration (Double Buffering, Rotation).
2.) Optimize Power Saving...
3.) Add/repair touch screen driver.
4.) Add/create keyboard driver.
5.) Add sound
6.) Add phone driver support (be able to make a call).
7.) Add Wifi Driver.
8.) Get the camera working maybe?!?!
more also here:http://forum.xda-developers.com/showpost.php?p=2242471&postcount=19
_-Reserved-_
__-Reserved-__
--reserved--
__reserved__
-= Reserved =-
Keyboard?
As you can see on the post located here, they've written a simple onscreen keyboard. Maybe he'll give you the source for it and it wouldn't be hard to implement it into this kernel for future releases...
Let's pull all of our resources together and make this happen. Whoever can contribute let's post here and let's try to get a 1.0 final out ASAP.
Thanks in advance to everyone for helping where you can.
Areas of interest for developing the project:
- Graphics
- Sounds
- Drivers (highest priority of course)
- Apps
- Functionality (highest priority of course)
If you can provide a driver or something that fits in the categories above, please post a description...a how-to....and a link to a RapidShare download. Thank you all in advance.
Now we are talk'n! LOL!
- Graphics
- Sounds
- Drivers (highest priority of course)
- Apps
- Functionality (highest priority of course)
Click to expand...
Click to collapse
Just remember though, we do not want to duplicate Google's efforts... What I mean is that Google OS/Middleware (Android) will be in direct competition with the iPhone, Symbian, Window Mobile, etc. That means we can expect things like onscreen keyboards, SMS apps, Office Apps (probably complements of Google Docs/Google Gears), mapping/GPS software (Google Maps), a camera app, etc... (See: http://reviews.cnet.com/4520-9239_7-6546759-1.html for more info) And that’s not to mention some of the great work already being done by Third-Party Vendors (Android Developer Challenge: see: http://phandroid.com/2008/05/10/adc-round-1-winners for more info). Heck, look at what was done on the iPhone... And it was/is "closed source"!
I believe the IMPORTANT thing is that we provide a stable kernel for Google's "Middleware". I envision that most of the kernel work will revolve around driver development (in order of priority): (Here is a pictorial representation of the software stack:http://i.i.com.com/cnwk.1d/i/bto/20080521/android_stack_540x387.jpg, as you can see the kernel is the base to which all other software depends on.)
Keyboard
Touch screen
Phone
Video
Sound
And of course:
Wifi
Bluetooth
GPS
Camera
Long term objectives:
Sub-display
Accelerometer
Of course there will need to be work done on Android itself... Maybe we will need to develop applications custom to the Athena Hardware. At the very least, we will have to provide Android with a way to talk to hardware via kernel icotls (e.g. Camera Settings, Video Settings, etc…). So having some with inside knowledge of Android will help. Not sure though, because I haven’t hacked on Android (yet ;-) )...
Once the kernel/drivers are stable I believe Android will be a better fit for the Athena than WM6 could have ever be.
What do you guys think?
FYI: Looks like Google is already improving Android: http://www.talkandroid.com/99-adc-finalists-receive-android-sdk-snapshot-access/
i will have new develop version of Android soon.i hope so.so maybe it could be better for this project.i will let you know!
marthynovak said:
i will have new develop version of Android soon.i hope so.so maybe it could be better for this project.i will let you know!
Click to expand...
Click to collapse
Check your PM.
we should look here,there are plany of informations about android.its for vogue,but i think that something we can use.they said that touchscreen is working now
http://forum.xda-developers.com/showthread.php?t=382265
also see this.its on screen keybord included in the zimage.i cant try it right now,im away and my athena is not with me.
http://forum.xda-developers.com/showpost.php?p=2213637&postcount=303
also see this updates
http://it029000.massey.ac.nz/vogue/
http://forum.xda-developers.com/showpost.php?p=2191014&postcount=344
Update...
Just to let you guys know, I have been working on the touch screen driver. I pretty much have it working perfectly, expect for the fact that the touch screen works in the horizontal position even though Android boots vertically. I am pretty sure I will not be much longer before I release an update.
Also, if anyone is working on any particular issue related to porting Android to the Athena, please let us know. The more the merrier!
The main thing is that we wouldn't want to duplicated efforts or if someone is working on an issue we could match you up with someone doing the same thing. This would speed development a great deal. Two heads or better than one! On the main page I will post updates as to where we are with each issue.
And thanks to everyone who is either showing interest or encouragement!
Maybe you should give to each update a date.So they can know what is new and what is old.I tried to do someting with video driver,but no luck at all.ï can do more when i will be back home.
edit:we have(with mistadman) decided something about marking releases.he will tell everything to you.thx
All in one executable...
Hello everyone,
I am trying something new... Even though there has been some progress with this project, I am re-releasing the original Android release as an All-in-one executable for testing. If all goes well, we will be releasing further updates in this fashion. If you are testing, please post feedback on this thread.
This will help make testing easier, because there will be less files to mess with, and anyone new to testing will not be easily confused. Also the "All-n-1" release will be dated, which should also minimize confusion.
If anyone has any suggestions, or any better ideas, let us know. Thanks!
Here is a the link to the "All-n-1" re-release: http://rapidshare.com/files/117520672/Android-Athena-05172008.exe.html
***NOTE*** There is nothing new with this release, other than the fact its all merged in to one file for easier testing.
New Update...
Hello everyone... I'm back with a new update! I finally got the touch screen working! Still have a lot of work left of course.
If you want to play with it, you can get it here: http://rapidshare.com/files/118229739/Android-Athena-05282008.exe.html. This is an "All-n-1 Release". Just copy the exe to your sd card and run. After clicking, it could take up to 20 seconds to boot. Be patent!
As always, this is work in progress... Thanks for testing!
Here is the patch and .config:
thanks very much it's working fine and waiting for keyborad and wifi

2D Driver Development Project - HTC-CA & Team P3D go 2D!

*** PLEASE READ CAREFULLY BEFORE INSTALLING OR FLASHING ANY SOFTWARE POSTED IN THIS THREAD ***
The software posted here is for TESTING purposes only, Team P3D or any of the posters of software, or links to software on this thread take absolutely no responsibility or liability for damage caused by the result of installing or flashing software or links to software found on this thread - correctly or otherwise, you do so on the sole understanding that you do so at your own risk.
---------------------------------------------------------------------------------------------------------------------------------------------------------------
Project Name: Polaris 2D Driver Project
Driver Name: P3D 2D Driver (Working title)
Development and Testing Team: SEE Post #2
---------------------------------------------------------------------------------------------------------------------------------------------------------------
ANNOUNCEMENT:
The P3D team would like to extend an OPEN INVITATION to all developers and programmers from all forums of EVERY device to come forward and help us create the 2D driver which, as it is being developed from scratch will require much development work with many dll files created from scratch.
If you are interested in helping, please post your interest in this forum and we will add your name to the developers list. If you would like to help but own a different device to which the 3D driver is yet to be ported to, we would also like to hear from you and hopefully assist you with the knowledge we have gained in return for your efforts here. (actually we'll help you anyway but.. we do want your help! )
---------------------------------------------------------------------------------------------------------------------------------------------------------------
11/10 - BigKVak successfully dumped the G810 rom and work has started in analyzing its content
---------------------------------------------------------------------------------------------------------------------------------------------------------------
P3D 2D Driver Development Team:
Administration/Testing:
Support and Testing:
Bally3
NikMel
Neos2007
BigKvak
Imfloflo
Developers: (TBC)
Rogro82
NuShrike
Chainfire
Monkeyass
maqui01
It started with a few simple questions:
"Can the Polaris be hardware accelerated?"
"Why doesnt the CA Kaiser 3D driver work on the Polaris?"
That was a month ago..since then, thanks to the help and support of NikMel, NeoS2007, Rogro82 and NuShrike to name a few, we now have a working 3D driver which is currently in a version 1 state and with the release of the cab version through CA last night, we can now concentrate on improving speed and compatibility to make better use of the graphic chips capabilities.
My intention then was never to start a 2D driver or work on a 2D driver until I was satisfied no more could be done to improve it and a "final" release was in the cards, but through my own testing and various posts and conversations, I now find myself wondering whether the improvements with 3D is linked to the 2D driver?
From day 1, before we released the 3d driver and after, users have expressed faster speeds in 2d as well as 3d - though many have explained it to be a "placebo" effect, we naturally attributed this to the gpu sharing the workload with the cpu which makes sense in a common sense way - itje posted a humorous answer on his thread explaining this very thing as worth a read just to put a smile on your face, but on a serious note a question has to be asked - Does improvement on 3D really effect 2D and if that is the case, would a 2D driver help improve the 3D drivers perfornance?
So why start a 2D thread when the 3D driver still needs refining?
Well, apart from the question above, the overwhelming requests for 2D support on both Polaris and Kaiser forums (it should work on both in theory), we now have a dump of the long awaited Toshiba G810 rom to get us started- A BIG THANK YOU TO BIGKVAK - welcome to the team!
Originally Posted by BigKvak
I have dumped ROM from Toshiba, here the link http://rapidshare.com/files/152085600/dump.rar.html
Click to expand...
Click to collapse
It is inevitable then that work needs to start on this project. We also need to preserve the 3D thread for future 3D driver developments and defer 2D driver related posts from it, for these reasons, this new thread has been opened for all to start working with the P3D team in bringing 2D greatness to our devices.
Lets share our knowledge and have fun doing it like we did with the 3D driver!
PS: Although I have named the project Polaris 3D driver project, I would like to extend an invitation to users of all devices that could benefit from the 2D drivers creation, after all through CA Kaiser development, we have now ported the 3D driver to the Polaris AND the NIKE and hopefully to many more devices
Let our devices not make us divisive - whats is the point?
It is common knowledge that files from newer devices are used to help create the drivers we need for our devices - so why should we gloat and mock other less supported devices, should we not help them and share our knowledge and in the words of a good friend here "Pay it Forward?"
This is not the spirit of XDA Developers and it is certainly not the ethos of Team P3D - We have and pledge tol share all knowledge with users of all devices.
Besides, its so much more fun when we all work together!
It appears that HTC-CA were already in the process of
Reserved for p3d 4
Reserved for p3d 5
Reserved for p3d 6
Reserved for p3d 7
Reserved for p3d 8
Reserved for p3d 9
Reserved for p3d 10
I found this link on microsoft MSDN: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=1214862&SiteID=1
It's a guy asking for a 2d driver library. Maybe we can look into that?
I have dumped ROM from Toshiba, here the link http://rapidshare.com/files/152085600/dump.rar.html
Click to expand...
Click to collapse
To move the discussion of 2d in here..
Windows Mobile 2D and 3D explained on MSDN
I believe this: http://msdn.microsoft.com/en-us/library/aa911096.aspx will be out first place to look. It's mostly there: 2D AND 3D info.
Here's what functions there are:
AlphaBlend API
Provides information about adding support for the AlphaBlend function to your OS design.
Direct3D Mobile
Provide information about adding 3-D graphics support to your OS design and creating applications that use the API.
DirectDraw
Provide information about adding 2-D graphics support to your OS design and creating applications that use the API.
Gradient Fill Support
Provides information about adding support for the GradientFill function to your OS design.
Imaging
Provide information about adding support for compressed still images to your OS design and reference information for the API.
Multiple Screens
Provide information about adding support for multiple displays to your OS design and creating applications to support them.
NeoS2007 said:
I believe this: http://msdn.microsoft.com/en-us/library/aa911096.aspx will be out first place to look. It's mostly there: 2D AND 3D info.
Click to expand...
Click to collapse
reading it now.. some of it we know.. let see what we can learn..
http://msdn.microsoft.com/en-us/library/aa925824.aspx
Here we go:
"Applications direct output to a specified device by creating a device context for the device. The device context is a GDI-managed structure containing information about the device. An application creates a device context by calling device context functions. GDI returns a device context handle used to identify the device.
Applications can direct output to a physical device, such as a display or printer, or to a logical device, such as a memory device.
A device context also contains attributes that determine how GDI functions interact with a device. These attributes eliminate the need to specify every piece of information Windows Embedded CE requires to display an object on a device. If you want to change an attribute, you can use attribute functions to change current device settings and operating modes. Operating modes include text and background colors and the mixing mode that specifies how colors in a pen or brush combine with colors already on a display surface."
GDI is the source of 2D on our devices. Maybe we need to look out for GDI tweaks in the registry?
BPP (Bits Per Pixel) explained
I also found this blog about the colors used on a mobile device. It's said that if you have a colordepth of 18 instead of the usual 8, 16, 32 bits, it's more cpu intensive. Isn't there a registry key for colordepth?
http://blogs.msdn.com/windowsmobile/archive/2005/09/07/462187.aspx
"The next thing to understand is how the bits turn into colors on the screen. Say you've got a typical PocketPC with a resolution of 240x320 and 65536 colors. That means you've got 320 rows of 240 pixels (dots), each of which has 16 bits of data representing its color. All of that information is stored in a chunk of memory known as the "Frame Buffer." The LCD hardware takes whatever is in the Frame Buffer and converts it directly to what's on the screen. Want to change what's on the screen? Change what's in the Frame Buffer and the screen will update.
Okay, so we need 16 bits for every pixel, and we've got 240 times 320 dots. 16 bits is two bytes, so that's a total of 153600 bytes, or 150K of RAM used to hold what's on the screen."
Maybe a good thing to mention: we're hoping that the Toshiba g810 Portege has the files we need to develop a 2D driver. We're currently trying to extract a dump we got. Anyone have experience in extracting Toshiba's .Bin files?
Direct Draw explained
On MSDN:
"The DirectDraw® API provides support for hardware-accelerated 2-D graphics. It offers fast access to display hardware while retaining compatibility with the Windows graphics device interface (GDI). DirectDraw is a specialized memory manager for both system and display device memory and uses hardware acceleration where available. With DirectDraw, you can allocate and manipulate both system and graphics memory, including transfers between the two.
DirectDraw for Windows Embedded CE is adapted from DirectDraw for Windows-based desktop operating systems. Some capabilities from the desktop version have been extended and others have been curtailed to better suit embedded devices.
DirectDraw supports the following effects:
Bit-block transfers (blits)
Page flipping and multiple back buffers
Overlays, which is placing one image surface over another on the video display
Alpha source over destination blending, which is blending two surfaces using the source alpha image component
Video YUV pixel formats and color conversion
Direct video access to the frame buffer
What if we compare our HKLM\system\DDRAW\ keys in the registry with other devices? I see the values in ALL keys there are empty.
Yes.. I've noticed that and played around with them.. no difference.
I've tried the LG KS520, Diamond and HD ddraw.dll files.. none work out of the box. Maybe the G810 one might make a difference?
We need to find out what calls are made and to what other dll files. If you remember the problem we had with the 3.13 ddi? it could be similar situation in that theirs a dependencies issue.

Envy TouchPad NagashMod for Windows 10: the best tool for synaptics touchpad gestures

Envy TouchPad NagashMod
Envy TouchPad is an open source project.
I found the source on the web some time ago, I don't know where or from who.
Please if you are the original author or if you know some reference tell me.
I modded this software from source (with visual studio 2012) to add some new features:
- Gestures for windows 10 (switch desktop with 3 finger left-right, show all desktops.. etc..)
- Options to disable Scrolling (keep driver original scrolling)
- Reverse scrolling
Original EnvyTouchPad features:
- Enable two fingr scrolling (vertical and horizontal)
- Settings for scrolling: speed, acceleration, inertia.
- Can scroll background windows (like mac! Windows 10 introduce this feature but won't works with original synaptics driver scrolling)
- Can scroll vertical and horizontal concurrently (without raise the hand, like multitouch)
- Set action for tapping with 1, 2 and 3 fingers.
- Set actions for 3 finger scroll (up, down, right, left)
- etc..
This software should works with all SYNAPTICS TUCHPADS !!
I'm using it on my lenovo yoga 13.
NB: if you want to use these feature correctly, you have to disable the same feature offered by original touchpad driver.
NB: YOU NEED Visual C++ Redistributable for Visual Studio 2012 x86 (from microsoft, link: https://www.microsoft.com/en-us/download/details.aspx?id=30679# )
Thanks to the original author :good:
--------------------------------------------------------------------------------
Source code uploaded on github
github project: EnvyTouchpad-NagashMod
Reserved1
I have an Asus F555L, I use Asus Smart Gesture atm. Can this work on my laptop too?
KreNtal said:
I have an Asus F555L, I use Asus Smart Gesture atm. Can this work on my laptop too?
Click to expand...
Click to collapse
I don't know, you have to check if your touchpad driver is based on Synaptics.
Usually touchpads are based on Synaptics or Elan.
You can simply download the release.zip and try to start the software.
There is not an installer, just launch and see.
If your PC has synaptics drivers the software will run, either will launch an error message.
NB: the program start as tray icon, as shown in the screen attached
Let me know if it works!
nagash91 said:
I don't know, you have to check if your touchpad driver is based on Synaptics.
Usually touchpads are based on Synaptics or Elan.
You can simply download the release.zip and try to start the software.
There is not an installer, just launch and see.
If your PC has synaptics drivers the software will run, either will launch an error message.
NB: the program start as tray icon, as shown in the screen attached
Let me know if it works!
Click to expand...
Click to collapse
Unfortunately it doesn't work SynCom.dll isn't on my PC so I think I am using Elan drivers
KreNtal said:
Unfortunately it doesn't work SynCom.dll isn't on my PC so I think I am using Elan drivers
Click to expand...
Click to collapse
You probably have Elan touchpad
Hi, your tool is fantastic, thank you very much. In the next release is possible for you to add the option (in the actions section) to launch also an executable of my choice (i can pick it...) and the windows 10 action bar?
Thank you again.
DD
Hello.
Can this work under Windows 7? I don't love Windows, but my studies and future work would require it until I become a mad genious that improves the electronics software and others or I get totally insane. Whatever happens sooner, probably the first!
Are you planning to submit it in GitHub/GitLab? Maybe others could be interested. You would be surprised how ****ty most trackpad software configuration is...
I find trackpads quite cumbersome, but I managed to configure a it my way. Most people would probably hate how I use it,, because I reversed it.
I need to use trackballs and mechanical keyboards because of RSI risks, I love them too . I would sell my body to have a builtin mechanical keyboard and a very hires trackball, but I'm fatty so there's no hope to get at least the MSI Titan
I'm trying to study electronics, maybe I someday will learn that, CAM and CNC to do a custom design. I don't care if it's more bulky, but a mechanical keyboard (I love Model M, but that would be insane even for me), a custom very hires trackball (maybe mixing both could be a good idea, like the early Steam controller) or even 3D controller, a tablet an a lot better battery and some extras related to electronics and more
But I have o learn a lot before be able to do crazy projects like that...
thanks a lot for your interesting software.
I like this, however I like the built in driver config for scrolling with two fingers. I have to check the "Disable two finger scrolling management" box to get it to work right, but when I reboot it doesn't save the config.
Any ideas? Good work though. I love having three finger gestures to change desktops.
Hi
This works, MSI GL62 6QF synaptics touchpad
but the problem is:
the 3 fingers gesture are programmed to work if the fingers move in a parallel way
this isn't all easy, could you add the option to use this with fingers not moving in a parallel way?
for example, if I move my finger horizontally while placing them next to each other, I would like that to be right/lift gesture
now it doesn't do anything unless i put my fingers in a vertical way
Could you please do that?
Is this the source https://www.mediafire.com/?sharekey=10e73hc18ierh
Awesome man, works perfectly. Was looking for it from a long time. Thanks a lot.
@nagash91 Any hopes to release the source code in GitHub?
Anyone interested in resuscitating this project? Open Source drivers for Windows are cool too
timofonic said:
@nagash91 Any hopes to release the source code in GitHub?
Anyone interested in resuscitating this project? Open Source drivers for Windows are cool too
Click to expand...
Click to collapse
Uploaded the project on github with the source code
https://github.com/nagash91/EnvyTouchpad-NagashMod
nagash91 said:
Uploaded the project on github with the source code
https://github.com/nagash91/EnvyTouchpad-NagashMod
Click to expand...
Click to collapse
This is an incredible little gem. Now my Vaio touchpad compares to my MacBook!!!
The app could use some speed optimization (a bit slow to start on boot, medium effect on boot according to task manager).
Also, a more generic name like Synaptics Gestures would be nice
Can you turn this into a native app? Without visual C runtime. I think this is what’s needed to fix performance.
Dr. Hurt said:
This is an incredible little gem. Now my Vaio touchpad compares to my MacBook!!!
The app could use some speed optimization (a bit slow to start on boot, medium effect on boot according to task manager).
Also, a more generic name like Synaptics Gestures would be nice
Can you turn this into a native app? Without visual C runtime. I think this is what’s needed to fix performance.
Click to expand...
Click to collapse
Actually I didn't created this app from scratch: I just modified the Envy TouchPad code that I found on-line some years ago (this is the reason of the name ).
I made this mod for myself and for my brother's notebook, later I decided to share on XDA.
I don't think I'll convert this in a native C++ application (don't have the time and I almost don't use windows anymore).
BTW with the public source code, anyone who want is free to do that
Thanks. I expect more development

Categories

Resources