yashsingh1/xdaforums huggingface dataset:
[Touch Diamond, MDA Compact IV ROM Development] lupine_85:
I've been looking into the slide-out keyboard as well, taking the approach of disassembling the Windows driver: KbdNopAll.dll, keypad.dll, OEM_Misc.dll and MicroP.dll - nothing particularly amazing just yet though, i'm afraid. gpio33 is our friend, somehow... i just don't have a good handle on how windows does it all yet. once i do, hopefully i should be able to extract the i2c / gpio information that gets the hardware keyboard working. jobo: maybe we can collaborate somewhat on this? the slide-out keyboard doesn't seem to be a traditional row/cols one...
[Touch Diamond, MDA Compact IV ROM Development] dejant_9:
all :D

read the wikki: http://wiki.xda-developers.com/index.php?pagename=RaphaelLinux

section progress: and create the tmp folder on the root of internal storage,

then replace the wikki's ext2.img by the ext2.img in the cupcakes (http://xdaforums.com/showthread.php?t=402002&page=132 , post #1315)

and replace the zimage by the latest zimage (by NetRipper or Jobo)

and use the default.txt in the wikki with jobo's zimage. for NetRipper's zimage, and if you have a diamond, just change mtype 1910 by mtype 1805. Nothing more.
[Touch Diamond, MDA Compact IV ROM Development] zycho:
when i enter my pin in android, it always told me 'incorrect pin' .. but its the right one.

thats the problem?
[Touch Diamond, MDA Compact IV ROM Development] dejant_9:
already see.. read the forum.. and try to desactivate the pin in WM
[Touch Diamond, MDA Compact IV ROM Development] keerttttt:
Yeah, when i'm using Jobo's latest zImage it also hangs on the "Haret Booting Linux" box. No terminal screen or what so-ever.
[Touch Diamond, MDA Compact IV ROM Development] touch of jobo:
Are you sure? The vol-up and vol-down buttons are really the same. And even if they're not, I made only 1 GPI 'do' something. Nice to know anyway that it work someone else than myself ..and on a Diamond ;)

Of course :) .. anything I can do other than investigate and report, please tell me. I am also in the irc channel (not always paying attention tho).

I added this one to the FAQ on the wiki. :rolleyes:

-Jobo
[Touch Diamond, MDA Compact IV ROM Development] NetRipper:
The kernels that jobo produce don't have raphael/diamond split yet I think, so you'll need to use mtype 1910 (also for diamond, on his kernels).

Yes, still need to do that. I'm still wondering how we will proceed in the future though. Now we just have HTCRAPHAEL and HTCDIAMOND. However, we will also need to get a CDMA version for both, such as HTCRAPHAEL800 and HTCDIAMOND800. I also heard the raph500 and diam500 may differ from eachother as well, so we also need HTCRAPAHEL500 and HTCDIAMOND500.

Do we really want a:

#if defined(CONFIG_MACH_HTCRAPHAEL) || defined(CONFIG_MACH_HTCDIAMOND) || defined(CONFIG_MACH_HTCRAPHAEL500) || defined(CONFIG_MACH_HTCDIAMOND500) || defined(CONFIG_MACH_HTCRAPHAEL800)|| defined(CONFIG_MACH_HTCDIAMOND800)

? :)

One of the spots this will be is the irq.c under mach-msm, pretty low-level.

I guess we're not the first to run into something similar, how is it normally solved in a kernel?
[Touch Diamond, MDA Compact IV ROM Development] balsat:
No i make a mistake, both the up and down button= Power off if hold >1 sec.

nice work with the "Back-button" is safe me for a lot of "ps" and "kill".
[Touch Diamond, MDA Compact IV ROM Development] rjpearce:
Another email i got from Brian after i told him it was for diamond..

==

Trickiest issue is likely to be the radio firmware. I don't think the

AMSS version people use for winmo and the stuff we're using for Linux

are converged yet, so unless you have some QCT or HTC contacts helping

you, there's probably going to be a good bit of reverse engineering of

the shared memory interface to make everything go.

Good luck!

Brian
[Touch Diamond, MDA Compact IV ROM Development] Global_Inferno:
Owch... Sounds painfull.
[Touch Diamond, MDA Compact IV ROM Development] andrewloh:
In such stage, I think still have to wait for 1-2Q before a workable complied Android CODE will be there for Diamond... :o
[Touch Diamond, MDA Compact IV ROM Development] skiwithpete:
http://www.engadget.com/2008/08/20/htcs-touch-diamond-pro-are-multi-touch-gods-just-not-how-you/

This little beaut is multi-touch, lets hope that Android will take that to the next level.
[Touch Diamond, MDA Compact IV ROM Development] Delusionz:
I'm missing something here,

This thing boots Android from the existing WM6.1 OS? it's not a ROM you install and it wipes the OS? it doesnt flash the ROM right?

If while trying this the phone stucks, a soft-reset will solve it?

Android looks so cool, hope it would work smoother on a diamond than the damn slow WM6.1

cant wait for the final rls and hopefully a rom for the diamond!
[Touch Diamond, MDA Compact IV ROM Development] gebruikershaes:
Is is me or does the "phone" on the video that andrewloh posted look exaclty like the diamond? Could it be that the Dream phone from HTC will look like that?
[Touch Diamond, MDA Compact IV ROM Development] NikPraskaton:
I will definitively try to install Android on my Diamond once someone get it to work...
[Touch Diamond, MDA Compact IV ROM Development] sensorama:
Its just a dummy interface that comes with the SDK.
[Touch Diamond, MDA Compact IV ROM Development] flibblecx:
From the debugging I have done I am sure that it is haret giving the current issues.

If you get it to clear the FB earlier you will see that it will crash a different points (fractions of seconds apart), sometimes writing small amounts of garbage to the FB.

This leads me to think that it isn't taking control of the hardware correctly and something else tramples on it before it trampolines

I haven't done any more work on it since my last post but wanted to make sure people working on it are aware that we haven't got to the stage where we need to work on the linux zImage yet. I have built both patched kiser and vogue kernels and complete checkouts of the android (git) kernel. Hopefully one will show promising results when we get to that stage.
[Touch Diamond, MDA Compact IV ROM Development] p65174:
yes, i agree. From my tests, the problem seems to be in mmu_trampoline (armstuff.S). Some guys on #htc-linux think that it can be sram (??) or physical<=>virtual ram mapping problem. So i can't do better tests on it because i dont really know how it work :( :(
[Touch Diamond, MDA Compact IV ROM Development] espenfjo:
Ill do some FB tests with haret tonight i think, just to see how stable the FB is before the trampoline.

Its just so odd that i _once_ saw the PSR output from the preloader function called by the asm code (trampoline).

And sometimes i get some garbage just after the trampoline is called, just some pixels drawn where the PSR should be.

EDIT: Ok... FB works perfect before the trampoline, so the next step for me should have been debugging the trampoline itself, the only problem is that i dont understand ASM, and not that good with memory management/MMU stuff, and the other stuff done in the trampoline.
[Touch Diamond, MDA Compact IV ROM Development] dzo:
I wrote the MSM7X00 port for the Vogue and the problem is that these devices can't do any I/O with the MMU off (including MDP DMA for the FB). What I did was boot with the MMU on until I could get the VIC and MDP code working but you shouldn't need to do that. All you really need to do is rip out all the clock code and use the android VIC code. For debugging, there is a simple mdp driver (ttyMSM) in my board-htcvogue.c. My patches are at http://cs-alb-pc3.massey.ac.nz/vogue but these won't work completely because the MSM7X01A VIC is different.

Hope this helps.
[Touch Diamond, MDA Compact IV ROM Development] tughi:
HTC Dream comes around October... I don't believe it will be very different in hardware from the Touch Diamond and that would mean that the Dream ROM could be adapted for Touch Diamond :cool:

I really hope this is the case, because WM is driving me crazy :(
[Touch Diamond, MDA Compact IV ROM Development] NutsyUK:
The real question i dont think anyone has asked yet is...

Will HTC or any of the devs here be building a full touchflow3d interface for the Android diamond operating system?

Im under the impression Android is allot less hoggy than wm6.1/7, wouldn't this mean it would be much more suited for customizing and flashyness?

While android is a great alternative to WM its still ugly as f***, so some system wide touchflow 3d would be great :D
[Touch Diamond, MDA Compact IV ROM Development] skiwithpete:
Lets get it sorted first, then worry about the prettiness.
[Touch Diamond, MDA Compact IV ROM Development] skiwithpete:
Results of the developer challenge are in. Have a look at the link below to see the winners and the great new apps coming to the diamond (once Android has been... you know)

http://code.google.com/android/adc_gallery/
[Touch Diamond, MDA Compact IV ROM Development] premy:
Thanks for the guidance. I understand that you don't think that our problem comes from Haret and the trampoline function, but rather from the kernel. Correct ?
[Touch Diamond, MDA Compact IV ROM Development] dzo:
Yes, it looks like haret because as soon as the MMU is off you can't do any i/o but if you fix the VIC code then it should come to life when the kernel switches the MMU back on. I guess another problem could be the GPU being on since the kernel only knows about MDP.
[Touch Diamond, MDA Compact IV ROM Development] NikPraskaton:
Wish I knew what the f you guys are talking about.. but I sure do hope Ill see Android runnin on my PDA soon :)
[Touch Diamond, MDA Compact IV ROM Development] skiwithpete:
Same.

P
[Touch Diamond, MDA Compact IV ROM Development] touch of jobo:
Correct.

Wouldn't it be much nicer to keep the machine/board as generic as possible and distinguish in probe functions? (Otherwise the number of machines doubles every time a variable is encountered.)

-Jobo
[Touch Diamond, MDA Compact IV ROM Development] lupine_85:
:Of course :) .. anything I can do other than investigate and report, please tell me. I am also in the irc channel (not always paying attention tho)

Heh. well, i'm at the gym just now (i LOVE mobile internet!) - i'll try to catch you when i get back. mostly it's just trying different stuff, see what works, document everything - includig what doesn't ;). I'm mostly on the lookout for constants like the gpios, memory addresses, etc - let me know if there's aything yu think i should look for in particular!
[Touch Diamond, MDA Compact IV ROM Development] xianthax:
hey guys, looking at the hardware blast here: http://www.phonewreck.com/wiki/index.php?title=HTC_Touch_Pro

there is a CY8C20434 and its mounted on the PCB behind the home/back/send/hangup buttons. This is a little 8bit uC with an analog cap sense blocks, its probably running the touch sense aspects of the panel. It most likely communicates with the qualcomm chip via i2c. I would venture that the windows driver gets a GPIO when a button is pushed, they it makes a call to the cypress part to figure out where on the pad a finger is present.

Unfortunately since its not a one function unit and has a programmable uC on board, the interface to talk to it is not documented but something the HTC designers cooked up and burned into the cypress chip, it may be hard to crack. I have an O-scope with I2C bus reading capabilities and surface mount rework equipment at home, worse come to worse i can attempt to put a scope on the bus and see whats happening, that could be very tough in the limited space inside the unit.

There is also a ATMEGA86V listed on that hardware page, a part i can't find, however the ATMEGA series are simple, general purpose 8bit uC's the only thing i can think of that its doing would be managing some sort of key GPIOs? It also appears to be mounted to the same PCB behind the back/home/etc buttons. Doesn't make much sense as the keyboard connector doesn't go to this board so, i dun know.

cheers,

x
[Touch Diamond, MDA Compact IV ROM Development] pauldgroot:
When pressing the volume buttons or the end key on the Virtual Keyboard my diamond hangs.

I'm using the last images and tried using the latest kernels from jobo.

I'd love to get back to the homescreen if possible.

Btw. sending and recieving sms messages works fine!
[Touch Diamond, MDA Compact IV ROM Development] keerttttt:
Yes, changing the Mtype worked, booted fine. And the volume button worked.

Also, indeed holding the button gives me the option to shutdown. However, it sorta 'hangs' while shutting down. But who cares :P
[Touch Diamond, MDA Compact IV ROM Development] Arktronic:
The entire area below the screen is supposed to be capacitive, so it shouldn't be able to detect which buttons are pressed when using gloves, for example. However, WinMo DOES see a difference between the four corners and the Enter button when using cloth to press them. So apparently there is a physical difference when pressing the buttons. A problem will probably arise when trying to get the arrows to work because it's unlikely that there are enough physical buttons to recognize arrows versus other keys without the help of capacitance.
[Touch Diamond, MDA Compact IV ROM Development] c4software:
Hi everyone with the lastest kernel and my HTC diamond when i push the down level sound button. my screen make a fade to black, and i don't find anyway to bring back android.

PS: Thaks everyone for your work.
[Touch Diamond, MDA Compact IV ROM Development] lavender.t:
holy cow ...

didnt realize the keypad was so hitech ... hope i dont have to take apart my diamond physically to write code ... :)

also @jobo. i played with your gpio-test.c (very helpful) and haret last night and found out the same except that there was an I2C touchpad involved. put it in the irc before i went to sleep. just to summarize here, including your comments in the code which i also verified in DIAM110:

GPI 37 -- stylus detection.

GPI 40, 41, 42 -- keypad columns: 0, 1, 2.

GPI 83 -- power button.

GPI 94 -- touchpad.

GPO 32, 33, 34, 35 -- keypad rows: 0, 1, 2, 3.

for DIAM110, got the following key maps: <row, col>

<2, 1> -- volumn-up

<3, 1> -- volumn-down

<1, 2> -- down

<2, 2> -- up

<3, 2> -- enter (the round button)

<1, 0> -- left-half of the touchpad: (home, send, left)

<0, 2> -- right-half of the touchpad: (back, hangup, right)

- lt
[Touch Diamond, MDA Compact IV ROM Development] Akhara:
nice work

i will drink for your success hahahaa :D
[Touch Diamond, MDA Compact IV ROM Development] BGH80:
This is all great news. Looks like we will have a 100% working Android by this time tomorrow.
[Touch Diamond, MDA Compact IV ROM Development] touch of jobo:
You need to set the 'end button behavior' (in spare parts app) to 'go home', and not sleep. (I tested it myself just now.) I merely made the volume buttons 'hit' the end key. I don't influence what the end key key does.

Awesome! Gonna play with that a bit more. I don't think I could get those rows to fire, only the columns..

In linux that is. In HaRET everything fires.

Thanks

-Jobo
[Touch Diamond, MDA Compact IV ROM Development] lavender.t:
that's correct ... only the GPIs (columns, etc) register for IRQs. when the IRQs are handles, the gpio matrix code outputs the scan patterns to the the GPO rows to determine which <row, col> has a key press:

1000

0100

0010

0001

i'm also attaching the keypad code that i modified from halibut-keypad.c if it could save you some time :). for now it just maps the keys to 0 - 9, A and B just to find out the GPIO key mapping.

- lt
[Touch Diamond, MDA Compact IV ROM Development] mdrobnak:
I'm not sure I'd go that far ;-)

But everyone is working hard to get things working as soon as possible.

-Matt
[Touch Diamond, MDA Compact IV ROM Development] vitaminjay1982:
so i was reading through the stuff when you go to load android. and i noticed that it said "ept max 512mb"

would this have anything to do with the mms slot not reading a 1 gig or 2 gig card?

just a shot in the dark...
[Touch Diamond, MDA Compact IV ROM Development] touch of jobo:
Thanks, but I just finished putting your pin mappings in a keypad driver... :)

board-htcraphael.c

board-htcraphael-keypad.c

It maps: 'Send' for left half, 'End' for right half, vol up/down, up/down/enter as you would think.

This kernel has those key assignments. (It might be more useful to map 'menu'/'back' for 'up'/'down', since you would scroll and select in lists by touch.)

-Jobo
[Touch Diamond, MDA Compact IV ROM Development] Bimboy:
Do you know if it just goes left to right, row 1-4 (for Raph100), and row 1-5 (for Raph110 - Fuze) for physical keys? If so, then we need (again) another configurations for the different keypad layouts.

I updated the board-htcdiamond-keypad.c driver with the remainder of the alphabet, but realized that it might be the physical key location.

Edit: Nevermind... I see Jobo posted. the question does still remain about the Raph110 vs Raph100 though
[Touch Diamond, MDA Compact IV ROM Development] zEar:
Hi all, maybe Trancecoder theory is not so dumb, try to press the buttons with your stylus, nothing happens !
[Touch Diamond, MDA Compact IV ROM Development] :
Definitely!

Further, if someone has Core Player, load a movie and pause it. Now press the "call end" button with the stylus. The video goes forward one step, which means that this thing is mapped to some key after all.
[Touch Diamond, MDA Compact IV ROM Development] xianthax:
Its a bit of a misconception that all capacitive touch panels can't be activated with gloves on. Current technology is sensitive enough to allow them to work through thin non conductive materials and its also very dependant on the thickness of the dielectric overlay. My fuze works through a scarf for instance even using touch only actions like zoom in opera

For an object to be detected by a capacitive panel it must hold charge (like your finger). The stylus is rubber tipped and probably too small even if it was a conductive metal, won't work. Try the zoom control with the negative terminal of a AAA battery, works great...

anyway it looks like there is no problem accessing the mechanical key presses. Do we know have a chart of i2c addresses for the components in the phone? If we can figure out the address of the cypress IC I could probably write a test program to check its response to commands, most i2c comms protocols are pretty simple hopefully its just a memory mapped/register style system. i'm also hoping the atmega controller isn't involved. i think the hardware site had a typo and meant the atmega88v which is interesting in itself as its the middle device in a pin compatible family, would indicate it may be doing something non trivial.

-x
[Touch Diamond, MDA Compact IV ROM Development] mdrobnak:
Great work man!

I tested it on the Fuze, works pretty well. Only thing missing is a Menu button. Did we find any GPIO related to the PTT button on the Fuze?

The other thing is, I'm not sure what the difference in configuration between your kernel & NetRipper's kernel is, but yours does not produce the Safe Mode message in the lower left corner, where his does...

lupine_85 started doing some disassembling of oem_misc.dll, I'm going to try and see if I can do some as well, but I don't know if I'll have time tomorrow.

-Matt

-
[Touch Diamond, MDA Compact IV ROM Development] c4software:
Nice a most of buttons works. but i have a question (maybe dumb...).

Why we need to put on usb the diamond to boot correctly on linux ??

And always no way to wake up the diamond when android put it in sleep ? (at this time, i just disable timeout screen on android to fix the problem)
[Touch Diamond, MDA Compact IV ROM Development] lavender.t:
yes he's right

true. both jobo's and my tests confirmed this and jobo was already a step further to look into the I2C issues.

this is indeed not a good news which means more dev work for us to figure out the I2C interface and decode the data to map keys -- which could be significant amount of new kernel code.

xianthax's input is very valuable too. for the time being we can simply map the left and right halves into SEND/END keys so at least some features may work.

- lt
[Touch Diamond, MDA Compact IV ROM Development] petay:
there is a test tool for the bottom buttons linked in this post

http://xdaforums.com/showthread.php?p=2509753#post2509753

its navdbgtool.eve in the zip it can show where your finger is on the buttons.

just had a play withthe new zImage and its lovely!!! i can really see this doing a lot of good for the diamond/pro.

there are a few errors popping up about settings not responding and i get a few errors about the softkeyboard (im assuming its the cupcake added softkeyboard as there android errors)

also, would mapping the power key allow us to recover from the screen timeout???
[Touch Diamond, MDA Compact IV ROM Development] dejant_9:
there is a log function in this tools. te log is create in \my documents
[Touch Diamond, MDA Compact IV ROM Development] jbelman:
Now Working

Got my DIAM100 on WM6.1 (VF-UK) up and running using:

default:

set mytype 1910
set kernel zImage-jobo
set initrd initrd.droid.cpio.gz
set ramsize 0x6000000
set ramaddr 0x10000000
set cmdline "mem=64M
msmsdcc_id=2 msmts_calib=0x7a.0x5e.0x35a.0x37f"
boot

With:

haret18

zImage-jobo

[From touch of jobo (http://members.home.nl/j0b0/)]

cache.ext2

system.ext2

userdata.ext2

[From cupcakes package (http://xdaforums.com/showthread.php?t=402002&page=132)]

initrd.droid.cpio

[From Wiki package (http://xda.willboost.com/diam-20081229.tar.gz)]

Although it seem's to only load 50% of the time, it will hang and not load keyboard then if reset it will load ok, if reset again it will not etc.

Thanks for everyone's help so far
[Touch Diamond, MDA Compact IV ROM Development] dejant_9:
check this files and remember that you have to get active sync connected before executing haret.exe, and stylus have to be out
[Touch Diamond, MDA Compact IV ROM Development] Gluck:
SMS is fully working. I can send and recieve SMS even with Russian text(only recieve)!

But why Dialer is crashed if i press button? This is same AT commands to modem, which sends SMS manager, as i know.

I testet it on RAPH100 with zimage-keyboard-jobo and partitioned SD card.
[Touch Diamond, MDA Compact IV ROM Development] touch of jobo:
My best guess is that NetRippers kernel has the halibut or trout keypad driver enabled, monitoring a GPI that not wired to the keypad but to something else. This would cause android to boot while a key (menu button??) is pressed, making it run in 'Safe mode'.

From what I see, if you ever had USB connected since last reset, it must be connected when staring linux from HaRET or it hangs. But if you haven't had USB connected since last reset, it will boot up just fine. (Which may give the impression that it works 'every other time'.)

Wouldn't we have to figure out the i2c anyway, for things like light sensor, accelerometer, LEDs, maybe camera controls, .. .. oh yeah .. and the slide-out querty keyboard :)? (..of course that doesn't make it any better news..)

No. Right now, the machine dies when it goes to sleep, no matter _how_ it goes to sleep (timeout, button, menu, ...).

EDIT: Correction: It does not die, it goes blind. As mdrobnak points out in the post below this one, it's still running.

Cool! Thats the 3rd or 4th report of SMS working.

-Jobo
[Touch Diamond, MDA Compact IV ROM Development] mdrobnak:
Wrt point one, that makes sense.

Wrt the power - I'm not convinced it's "dead", as I left it in a call, and the screen died, but my terminal was very much alive...It's just a power management issue with the LCD I think. (I'm being nit-picky here - to the average user, yes, it's "dead.")

-Matt
[Touch Diamond, MDA Compact IV ROM Development] c4software:
Yep same for me i try like you say and its boot.
[Touch Diamond, MDA Compact IV ROM Development] Gavin_H:
Which of these needs to be replaced if I'm already running the TMP contents from the wiki, except with the cupcake ext2s uploaded by lavender.t?

'Cause your webspace is so, so slow it would take me all night to download everything.