yashsingh1/xdaforums huggingface dataset:
[Gen8 General] scholbert:
Hi FrEcP,

thanks again for your comments :)

Had a look in the kernel sources again.

Seems bad news.... AFAIK some elementary signals are missing.

Though the signal fm_enable_gpio is defined in the board file, it seems to be a dummy setting.

From what i know from OMAP powered devices GPIO0 is used to for the power button (sysn_irq) and it simply doesn't make sense to share this line and use it as an output to activate the FM part of the chipset.

After looking into the sources of the gen7 kernel there's a different mapping which in fact looks right.

Also picked up the firmware from Archos 5 IT which is known to have working FM receiver part. There are some additional start-up scripts and the wifi firmware is based on a different source.

Another thing missing seems the FM-Antenna connection.

So i guess even if we would tweak the firmware file and the init scripts, it won't be successful.

As a conclusion, i guess it's impossible to activate the FM part inside Archos gen8.

I'm developing embedded hardware for a few years now.

If you are familiar with the OMAP processor architecture you might call it basic knowledge. In fact i like reverse engineering and it's fun to digg out some secrets. In the end i just try share my thougths :rolleyes:.

Anyway by looking at a mainboard design, i try to follow the path of the engineers who created the device. Sometimes the design is more or less straight forward and with some background knowledge, it's possible to draw conclusion about the hardware in general.

Have fun!

scholbert
[Gen8 General] scholbert:
Understanding tiwlan.ini

Hi,

i just wanted to add some additional information about the wifi chipset initialisation.

In UrukDroid three different templates exist in /system/etc/wifi:

tiwlan.ini

tiwlan_RF3482.ini

tiwlan_TQM67002A.ini

AFAIK these are for different HF frontend components on the module itself.

My device uses a RF3482.

At first startup the .ini file gets copied to /data/misc/wifi and is used at every startup of wifi.

Attached you'll find my default tiwlan.ini

The Ti document sprugt8.pdf gives some detailed insides of the different sections in the ini file.

An overview of the frontend chip is also attached just for completeness.

Regards,

scholbert
[Gen8 General] scholbert:
light sensor on A101

Hi again,

it's getting quiet here.... :D

I stumbled over a thread these days, asking about the white spot above the camera and it's purpose.

EDIT:

I contacted Archos to lift the secret.

There'd been an immediate reply...

It's a light sensor, but it's not assembled on every board.

These guys are very kind!!

Thanks a lot at this point.

P.S.: I'm really sorry for the blurry pic :rolleyes:

Regards,

scholbert
[Gen8 General] scholbert:
MMC1 power rail

Hey fellas,

for thoose who like reading about technical stuff, here's some info about the power supply rail for MMC1 interface.

See the pic attached, says it all... :rolleyes:

Stay tuned!

scholbert
[Gen8 General] sciurius:
Interesting. How can you find out you have one on your board? How to use it?
[Gen8 General] scholbert:
Hi sciurius!

I got no further information which mainboard versions got it soldered.

You can find out by opening the case and search the area, where the camera is attached.

See the pics above, the red circle marks the sensor...

... though the pic is little blurry :o

Anyway i'll have to digg deeper in the kernel sources, and search for some code related to this feature.

Maybe it simply is not supported.

To answer your second question, i don't know yet.

In the settings there's nothing about automatic brightness control.

In fact i guess Archos left it out, because they got a deadline during software development or something like that.

Maybe there also had been some issues with the implementation... but this is just guessing.

I'll post it here if i find something related :D

Regards,

scholbert
[Gen8 General] 722C:
As far as I can tell, Archos integrated the sensor into the firmware (at least for 2.0.71 and 2.1.08). If you have root, you can place the following line in local.prop, which is located in /data/

ro.board.light_sensor=yes

Other hidden settings that can be set with root and by editing local.prop:

enable some hidden system settings

I can confirm it does work with both of the above firmwares. It integrates into the brightness settings like it does on a normal android build.
[Gen8 General] scholbert:
Hi 722C!

Wow thanks a lot for contributing.

Just changed the setting... though in Urukdroid these property settings could be changed by editing the *.rc scripts in /etc/init/.

Nice thread...

I can confirm that the option for automatic backlight control appears, but nothing more...

Have you noticed any backlight dimming using the sensor?

Anyway, thanks for the hint, this points into the right direction, but i guess the kernel is lacking support for the sensor.

Regards,

scholbert
[Gen8 General] jfmcbrayer:
I have tried that setting out in the past, and as far as I can tell, it does add the auto-brightness setting, but the auto-brightness setting does not actually do anything (on my A70S; it may work on other devices if it's in fact the case that the light sensor is only assembled on some boards).
[Gen8 General] 722C:
scholbert,

The light sensor is fully functional on my A101 V6 with 2.1.08.

722C
[Gen8 General] scholbert:
That's good to know...

If i enable the automatic adjust, i see no effect on backlight diming on my A101 V5, though the sensor is soldered on the mainboard.

BTW, i use UrukDroid latest RC4.

Anyway, doesn't matter much to me. I just wanted to clear up this issue.

Thanks a lot!!!

Regards,

scholbert
[Gen8 General] sciurius:
A101IT, UrukDroid 1.6RC5, local.prop setting added.

"Automatic brightness" setting is available and actually works. It takes a couple of seconds for the brightness to respond.
[Gen8 General] scholbert:
Hey sciurius!

Cool... thanks a lot for the feedback!!!

Have a nice day!

scholbert
[Gen8 General] sciurius:
Well, I have to add that the position of the sensor is exactly there where I have my thumb while holding the A101 in landscape position. So yes, it works... with mixed feelings :) .
[Gen8 General] alex@debi:
Thanks for nice job!

It seems that accelerometer and camera are not included in hardware list? As far as I can see, the kernel loads some drivers for them, but I don't remember their names right now.

Is it possible to remove A101's battery easily and to put it back again without soldering?
[Gen8 General] scholbert:
Thanks!

I didn't get you... which hardware list are you refering to?

Sure, the kernel should load the drivers if everything is nice :confused:

No, it's not possible to remove battery without soldering.

In fact the GND contact needs a lot of heat to get the wires properly unsoldered.

I did it several times though and decided at some point to solder some connector on the mainboard. You might see it on the pics i already published.

This is one of my hardware tweaks :D

Regards,

scholbert
[Gen8 General] alex@debi:
"Hardware list" is the collection of datasheets in this post: http://xdaforums.com/showpost.php?p=16452190&postcount=12

It's hard to find something more detailed about A101 hardware elsewhere.

But also I noticed that it lacks sheets for accelerometer (as I can see, it's Freescale MMA7660FC) and camera (OmniVision OV7675).

Also touchscreen is not clear for me: from datasheets it looks like Pixcir on Touchplus TR16C0, but in syslog I see it loading something named UNITEC USB Touch (Win7). Maybe it's the same thing, or I'm misunderstanding something. Unfortunately I'm not a microelectronics engineer in any way...
[Gen8 General] scholbert:
Aaah i see you're speaking of the datasheet collection...

Maybe i'll add a chip list in the first post and re-arrange the post a little bit :D

Yeah i got those already, will have to include them to the archive though.

In fact this is irritating :p

From what i found out about touchscreen unit inside A101it:

The controller is definitely a TR16C0 manufactured by Touchplus Corp.

The controller then get's assembled on a flex-cable PCB and put together with the glass unit to work as a capacitive touchscreen by Pixcir.

They also do the firmware programming and sell the controllers seperately as a single chip solution named "Tango".

Unitec then is just an OEM who sells these touchunits.

So the firmware inside TR16C0 (a.k.a. Tango) got "labeled" as UNITEC USB Touch (Win7).

I even found the Windows driver package and firmware update for one of these units on an electronics distribution server.

This software is labeled by Unitec, got drivers by Pixcir and firmware utility from Touchplus.

Got it ??? ;)

Regards,

scholbert
[Gen8 General] alex@debi:
More or less... So, UNITEC is yet just another distributor's name, right?

Actually, the point is that as far as I know, there's a generic Pixcir driver in the latest mainline kernel. Interesting, if it works with A101 touchscreen... Unfortunately, I didn't yet managed to build a bootable mainline kernel to test it.
[Gen8 General] scholbert:
Yeah kind of...

Mainline kernels won't boot up on our devices.

You need special tweaks in the kernel to support all the hardware and get a functional piece of code.

I'll have a look at Pixcir driver code... i know about some french students who wrote some x-server extensions for USB-touchscreen units.

There are also multitouch devices using the I2C interface to connect to the CPU.

BTW, if someones interested, see the attached software package.

It's from VPAD support and uses the same chip on a similar touch unit as we got assembled in the A101it.

This is a driver package for Windows and a firmware toolkit to re-calibrate and test the unit.

Maybe this is of any use :rolleyes:

P.S.: Updated my first post with a chipset list... not complete yet.

The datasheet archive had been updated as well.

The link is also on first post!

Cheers,

scholbert
[Gen8 General] alex@debi:
Oh, you're raining on my parade...

I thought I could make a mainline kernel, even if at the expence of some goodies like HDMI, because I don't think it's good to depend on some custom kernel and not on mainline one... But tweaking the kernel code is too much for me.
[Gen8 General] letama:
Hi Scholbert,

I'm digging this as I bricked my A70 again :). This time, it was my fault, I patched recovery kernel and forgot that my old flasher doesn't rewrite size.

So, I'm interested in trying to boot from mmc1. I'd like to assess if it's an option and if it's worth buying the required hardware.

First, disassembly. Do you know what kind of screwdriver and size is required ? I read around, seems to be torx 5, correct? How is disassembly, not too painfull ?

For this part, you basically unsolder one of the resistor ?

With this, you boot on the A101 microsd port, right ?

I have a dump of mmcblk0, so I should be covered on this, nothing special to take care ?

Here you lost me a bit. I presume I want to go to the "B" method as I don't want to hack bootloader, too many unknown. No problem for the kernel side, the hardware side is a bit tricker for me. Can you explain it a bit more ? "bridge Drain and Source of the MOSFET with a resistor", how should I do that practically ?

I guess I'll do serial console as I'm at it, could you give me a schematic with pinouts of what you did ? Remember, I suck at electronic :)

Thanks,

LeTama
[Gen8 General] FrEcP:
Hi, u are right - its T-5 torx.

You can find very nice pictures about the clamp positions and the screws at archosfans in this thread wich really helped me the 1st time I opened my device (just scroll down for the pictures).

Off-Topic:

Just for the completition in this thread. As I had dead spots on my touchscreen when i bought this device (2nd hand), I also applied the fix they mentioned here - to tape down the ribbon cable on the screen - wich really solved the issue for me. Just if anyone also searches for the solution - and also since it might occur when re-assembling ;)

I know crosslinking forums isn't really liked but I didn't fell like stealing their work or copying it over - so i rather linked em.
[Gen8 General] letama:
Thanks FrEcP, it helped!

Ok, partly disassemble done, enough to get me to the battery. As it was stuck with green light on, I had the small hope that it could start with a real power off. No luck :). Hopefully I didn't blow anything, next step will be resistor but I'm afraid my current solderering iron is not good enough for that.
[Gen8 General] scholbert:
Hi letama,

i'm got no time to give an extensive answer right now....

So just in short:

Aaaargh...

Which hardware... soldering might be required, that's it.

I read that oyu already made it. It' no big deal!

Yepp unsolder the pull-down, place a pull up... but this is for A101IT.

We'll have to find the correct signals on A70.

Not yet, so this is still theory, but it would work, i'm pretty sure.

Let me give some comments on this later...

To make it short.. the resistor short circuits the mosfet in the "B" method.

This will power the slot permanently.

It's all there... the level shifting is the awesome part.

We got 1.8V I/O voltage on the mainboard

Please be a little patient... i'll come back to help you on this issue!

Regards,

scholbert
[Gen8 General] divx118:
A70 UART is here http://www.openaos.org/archives/692

divx118
[Gen8 General] letama:
Sure! No problem, no urge, I will have to buy components on internet anyway, no good electronic shop around here.

:) not on a good trend these days, well, this was expected with what I do... Anyway, this is a good way to get a kick to get this rs232 console done :)

Well, soldering iron (I'm afraid mine is a bit too big for this task, I'll try to sharpen it a bit), rs232 board, voltage adapter, resistor to shortcut the gate, at the end, I'm about half the price of a new a70it :).

Ok... I'll remove the shielding and try to make good pictures of the board. Out of time also so it won't happen before weekend.

From what I read, it seems that you had a kernel booting, right ? As long as I have a kernel and rs232 console, I'm saved. I don't need to boot a full android, I just want to rewrite a proper rawfs on internal and it can be done with only a booting kernel+initrd.

I understand this part, what I need there is what resistor value and between which pins.

Here you lost me :)

Sure, no urge, I will have to purchase components as soon as I understand what I need and it will take time to get them anyway... I'm way out of my domain there and won't do anything before you tell me :)
[Gen8 General] scholbert:
... a journey to unbrick A70S...

O.k. got it... perhaps you begin to solder afterwards ;)

No need for that, if the areas of your board look like the pics attached.

So in fact this is a little bit like Sherlock Holmes & Watson on PCB :D

Because i got no hardware this is just a guess or what i could "read" from the PCB.

Please don't take it for granted right now!!

To get sure we need to do some measurements on the board as well.

No i did not boot from external yet. I'm sorry if it was a little bit missleading.

In fact it is just theory, but a convincing one.

Some more background:

While doing some disassembly on the bootcode, i found out there are some switches to choose which mmc interface is initalized first.

So i tweaked some variables to init mmc1 instead of mmc2.

I guess these tweaks would be necessary to make the external boot procedure work.

Sounds little weird but the structure of the code is pretty straight, so i guess it would do.

We would also have to remove security checks in bootcode and place it all on the card.

The patches on bootcode are already done and ready to fly :D

Furthermore there are two different modes to boot from mmc.

Please refer to this:

http://omappedia.org/wiki/E-MMC_boot

Archos uses raw boot as default. Maybe the fat boot mechanism will also work out. We then will have to extract first bootcode, sign it and rename it to MLO.

So there's still a lot to be checked out :rolleyes:

A resistor (~10Ohms) would be nice, but a simple wire would do also.

The internal logik on the archos boards operates at 1.8V.

We need a suitable chip to adapt to USB (e.g. FTDI UART to USB converters).

Some chips (newer ones) already work at levels down to 1.8V others don't.

In this case we'll have to push 1.8V logik level to 3.3V first.

There are commercial USB2UART dongles that will do it.

Anyway, this will be a journey to electronics and it might be a lot to consider.

There's also an alternative by using Ti Flash tool to transfer a RAM executable.

We then will have to set up the board externally with the tool, transfer an image to RAM and start it. This image has to be build up from scratch.

We might need no microSD then but have to change boot mode in any case!

Please tell me your thoughts ;)

Regards,

scholbert
[Gen8 General] letama:
:) Well, I've been soldering long times ago, but never that small. When I was at school, surface mounted where not that common.

Multimeter, I have (cheap one, not sure how it behaves with low voltage).

Oscilloscope, niet!

Ok, got it now.. When you were saying that mmc got shifted and messed up urukdroid, I thought it was coming from kernel.

Well, I was thinking about using Archos bootloader and rawfs partitions mechanism, we'll see.

Ok, no problem for resistor...

Ok, do you have any reference of something that is 1.8 ready? The less I have to play with, the better, so even if it's a little more expensive, it's worth it for me. My first goal is to have console as I expect error message on the bootloader with it, it would at least confirm that I have a chance to do something. And maybe boot from serial would be easier ? Could be interesting...

Yes, completely new and very interesting! I have some basic electronic knowledge, it's so far ago that I forgot most of it, so that's why I said consider me as a complete noob.

I won't do much more damage than the state it is right now, it won't go to rma with what I did to it.

Interesting option too. Well, first, let's try console, if it goes smooth there, we'll see.

Thanks for all this,

LeTama
[Gen8 General] scholbert:
hi letama!

If you start with SMD stop drinking coffee that day :D

Multimeter is all you need.

Ah now i remember what i wrote down. Yeah sure i made an attempt to start from external, and the mmc got "shifted", but i realized that the slot has to be powered all the time obviously. It is switched off by default (after reset).

Yeah sure i'm talking about the stock bootloader. We gonna hack this code :p

Yepp agreed, console should give some message at early boot.

For the adaptor there's nothing reallymade but this one would be capable to manage 1.8V levels on chip-level:

http://www.digitus.info/fr/produits...isseurs/adaptateur-usb-serie-usb-20-da-70156/

This one's inside:

http://www.ftdichip.com/Products/ICs/FT232R.htm

I'd prepare a pic from the PCB, but right now i could not find this bloody thing...

EDIT: O.k. found it...

This is also little fiddly but might be the easiest way because no additonal logic is needed.

You might find better soldering points for RX, TX and please remind the directions:

Transceiver Archos board
TX -> RX
RX <- TX

Yeah no problem... let's kick that OMAP :p

Using this method there's no need for extensive soldering and stuff (apart of change the bootmode of course).

We connect to host using the microUSB port. The tool then listens for OMAP boot strings and kicks in the internal ROM bootcode.

You than are able to initiate SDRAM and run everything you like...

Anyway, we should start with the console as you said.

Regards,

scholbert
[Gen8 General] letama:
Hi Scholbert,

Ouch! My current rate is 8 per days, I'm not sure it would be better to stop them all :)

Ok, so you want me going straight smd finally then ? :D

Worth a shot, it's quite cheap. I'll order one, we'll see!

Thanks Again Scholbert!
[Gen8 General] letama:
Ok, I finish dismantling the beast and took pictures. Not very good, but I miss some good light, let me know if you want me to try better or focus on some part.

I couldn't locate visually anything :)

I uploaded to google docs full res here.

Thanks!
[Gen8 General] scholbert:
Hi letama!

Thanks for the link...

I don't know if you knew about the pics already posted here:

http://bbs.imp3.net/thread-953667-1-1.html

How about console access?

You said you'd like to start with this step first.

To make it work with the adaptor you simply would need to locate the VIO 1.8V voltage.

There should be at least some capacitors buffering this voltage.

These components are a good starting point.

Try to do some measurements and attach the USB adaptor with some tiny wires to the all points mentioned in my earlier post.

I once prepared a tweaked driver setup to support the non standard baud rate of 1000000bps used on the Archos.

See this again:

http://xdaforums.com/showpost.php?p=16923184&postcount=35

Regards,

scholbert
[Gen8 General] letama:
Hi Scholbert,

Nice ones, better than mine, board revision seems similar.

Yes! Still waiting for the adapter to be delivered.

I couldn't locate the same points as in the picture pointed by divx118, that's why I took pictures. I thought I had a different board revision, but looking another time, I believe I finally found the probable location:

It's smaaaallll. Oh well, we'll see :) Not sure I'm that agile...

Next step will be finding the boot resistors, but that's another story.

Thanks again Scholbert,

LeTama
[Gen8 General] scholbert:
Yes that's the correct location. Please refer to the other pics if you are still unsure.

FYI:

I update my post here refering to the MicroSD slot on A101IT mainboard.

I found out that on the A101IT there's a LDO regulator powering the slot and i even could find a datasheet of that part.

There's no change for your hack though.

On A70IT a simple transistor seems to be used.

Indeed it is :D

Your welcome!!

Regards,

scholbert
[Gen8 General] scholbert:
true external boot... 1st attempt

Hi,

to sum up, what we are trying here:

- letama bricked his tablet by re-writing some part inside rawfs

- we will use UART3 console to know more about the state of the device

- we already know how to change the boot mode on A101IT

- we will have to power external MicroSD permanently

- we will try to boot the device completely from external media

- use recovery image to fix the problems

So i finished to tweak my A101IT hardware to use external MicroSD slot for booting.

I also needed to tweak the original boot code :p

1st stage bootcode "loader":

- changed some setup to initalize mmc1 (MicroSD) first

- disabled security checks

- changed some boot message to know we got external boot (loader-mmc archos 2011)

- removed the key section (won't be needed anymore)

2st stage bootcode "avboot":

- changed some setup as well to initalize mmc1 (MicroSD) first

- disabled security checks

- changed some boot message to know we got external boot (avboot version)

So right now i got mainly two files to put on the card

I started the FAT booting method first, because it is easier to handle.

The "loader" will be renamed to MLO, avboot resides avboot.

O.K. let's proove it :D

Here's what i got so far:

loader-mmc archos 2011
block 'mmcblk0p1' not registered
Mount failed
loading avboot failed

Not much you would say... but it's a step forward.

Might be a trivial problem in the end.

Take it as a proof of concept first :rolleyes:

In fact this is just for fun... and of course might help letama to unbrick his device ;)

TBC

Cheers,

scholbert
[Gen8 General] letama:
Hi Scholbert,

Thanks for working on this! On my side, I received the serial adapter, I opened it and it matches your picture. I'll work on it this weekend if it's not too busy here.

Looking at your boot traces, I was thinking... Disassembly is showing lots of traces in bootloaders, maybe there is a flag somewhere that we could hack to get a more verbose boot ?

I'll try to take a look at code, not sure I can find it though, not such an arm expert.