Testing a defective touchscreen (resistive)

Hello, sometimes I leave one of my tablets in hands not so accustomed to “well-done” works, so this afternoon, I received back, from a technician, one tablet with “some defect in touch screen”. Obviously, when the tablet went out from my laboratory, it was fine, but now it isn’t. Ok, resistive touchscreen is very simple device. In order to understand what happened, I detached the flat cable from its socket and put it in another one, coming from old, used circuit. I soldered 4 wires to such used connector to measure the touchscreen resistence with a simple multimeter. In the picture below (a little bit out of focus, sorry), you can see the touchscreen’s flat cable withdrawn from the “natural” socket and inserted in the testing one.

Touchscreen flat cable removed from its socket and plugged in a wired one.

Touchscreen flat cable removed from its socket and plugged in a wired one.

The following picture one is a particular of the wiring. The four soldered wires are the X and the Y resistors of the touchscreen.

Particular of the wiring; upper two for X, lower two for Y

Particular of the wiring;ย  upper two are for X resistor, lower two for Y.

In the next picture you can see the multimeter, set to range 2K Ohms, that shows left positioned “1” and it means over range resistence. The multimeter cables, actually, are connected to the couple of wires at the left (upper) side of my connector. The over range indicates that the circuit is open, and it’s right, ‘cause I’m NOT tapping the touch screen in any position.

Multimeter showing out-of-range measurement (high resistence)

Multimeter shows out-of-range measurement (high resistence)

Next picture shows the multimeter measuring a value ofย  825 Ohm ; good, ‘cause I’m pressing with my finger approx in the middle of touchscreen, now.

reading 825 Ohm value

reading 825 Ohm value,ย  pressing the touch screen around the center

Now, I repeated the test moving my multimeter cables from the left two wires to the right two (the other axis of the touchscreen), but this time NO LUCK. The value read is always “1” (out-of.range) even with touch not pressed and even if pressed. So, probably the flat cable has an interruption and the touchscreen is unuseable. Looking with optical power magnifier, I noticed that “someone”, closing the tablet after hardware modding, has damaged the small flat (micro interruption) and now there is only to look around on the Internet for a spare part ๐Ÿ™
Ok, hope this will be useful for someone. Bye…

Simplest tool for tablet inspecting / repair

This is the simplest tool I use to see if a tablet is fully bricked or still has some activity. It has just a LED and a resistor, connected to the expander box, so is VERY simple to build. When you power-up your tablet, the green led must turn on and flicker. That means the serial port is outputting data. If the led turns off and your tablet doesn’t start with Android, the device is probably hanged in U-Boot, may be after wrong rom image used for upgrade.
If the led doesn’t turn on, the tablet is fully bricked and you have to reflash the SPI to revive it. If the led stays on until the Android starts and then makes a quick lamp every 60 seconds, your tablet is running fine and so, why are you reading this post ?ย  ๐Ÿ˜‰
The led turns on ‘cause is connected to the TXD data of the tablet. When your tablet sends data thru the serial port, the level that’s normally 3.3V goes to GND so the LED is directly polarized and turns ON. When the tablet doesn’t sends data, the TXD is 3.3V so there isn’t any voltage difference at the led terminals and it remains OFF.
PAY ATTENTION: don’t use a resistor with value less than specified, or you can destroy you serial output ! Look at the picture below for details; remarks are in italian, but I think are readable anyway (this tool is also described here in italian language).

Front and back of the led + resistor connected to the expander box

Front and back of the led + resistor connected to the expander box; click on the image for full size view.

Don’t waste energy !

Sometimes you need to fully discharge your tablet’s battery, ‘cause you must drain all the power to obtain an Hardware Reset that can make your tablet able to restart with the upgrade process. So, I have used this simple technique to speed-up the process and to NOT WASTE energy !
I simply attached a USB battery charger to the tablet’s expander board, so while the tablet’s battery fastly discharges, my AA Ni-Mh charges ๐Ÿ˜‰

dumper

Using Android tablet as SIRC remote control (#2)

This is my second program to use a tablet as a remote control. The first one (read here for additional infos) was based on a simple IR-Led plus resistor, placed on the “hidden” serial port present on the tablet’s dongle. Such solution was very cheap, but needed for some firmware modding and and for dongle opening, to solder wires on (sometimes) difficult points. So, I modified the software (and the hardware) to make it easier to install on every “original” Android tablet. The only mandatory request is that the tablet must have a “driver” for USB to RS232 interfaces. I tried with units based on popular PL2303 chip (from Prolific) or CP210x chips (from Silicon Labs) and both were detected (as ttyUSB5). The whole system is shown in the picture below :

Note that the “dongle” is open, but it’s only ‘cause all my devices are always “under testing” ๐Ÿ™‚ . You don’t need to “look inside”, just plug the USB to RS232 interface in the USB socket and go. Note that the interface shown in the picture is based on PL2303 chip. Obviously, the USB to RS232 isn’t enough to send SIRC commands to your TV. You must build (or ask to a friend to build for you) this VERY SIMPLE interface :

As you can see, there is one DB9-F connector (for RS232), one resistor, one IR-Led and one diode. With such components, I can control my Sony Bravia TV from up to 1.5 meters distance (aiming the receiver spot). If you add some active components (transistors), that distance can be widely enlarged.

Well, now let’s look at the software. When you install the apk on your tablet and start the program, you will receive a screen like this :

The program was written for 800×480 screen tablets, landscape orientation. For my tests I used a LAVA 7″ (original firmware) tablet. This tablet recognized the USB to RS232 interface and assigned the /dev/ttyUSB5 name to it. My program, actually, uses this name as fixed setting. It will NOT work if the interface is recognized with another name (you will receive an error). Obviously, this can be modified, but I will do it in a next release.

In the “display” box, you can see “cmd: 21” ; this is the default command the device will send to your TV when you touch the button “Send”. This command is the TV-On or TV-Off. If you want modify the command, for example to send a Channel+, type on the numeric keys “16” then touch “Set” and your display will show “cmd:16”. Now, touching “Send” will send the command to your TV that will ( if powered-on ! ) skip on next channel. The “Can” key will erase a bad typed number. Note that this behaviour isn’t particular “user friendly”, just ‘cause I developed the program as a “tool” for my experiments. Not a problem to write some “fixed” keys, more user friendlyย  ๐Ÿ™‚

For a list of available commands, you can take a look at the following picture (the red rectangle at the right) :

Note that all the images in this article can be enlarged clicking on the miniatures.

Finally, the apk to be installed can be download directly from this link. It doesn’t exists on “the market”, ‘cause I don’t like that way to distribute software. I think it’s too monopolistic way and I don’t agree with such terms. So, the disclaimer is : TRY THIS PROGRAM AT YOUR OWN RISKit’s my original work, and is not certified or approved by others than me ๐Ÿ™‚

ASUS tablet TF101 bootstrap

My son has a tablet… while I have all low-cost clone devices, he has an expensive Asus TF101 model. Obviously, it wasn’t purchased by me ๐Ÿ™‚ but has been received as birthday’s gift. Well, this tablet is fast, powerful, elegant, really better than the ones I own. But now there is a problem. As usual, the tablet was connected to the Internet and received, automatically, a firmware upgrade. After that firmware upgrade, the tablet WON’T TURN ON anymore. If you turn it off (not suspend), you can’t turn on again, even pressing the button for two o three minutes. After a lot of @@##@@ to the upgrade authors, I went on the Internet, looking for a “forum” and for some info about this. The info was that ASUS knows the problem and in Taiwan there are technicians working on this.

The tablet (after a lot of tests) can be powered ON again if is connected via USB to a PC or to the charger. Well, isn’t completely dead… but I can’t connect to the charger while on the road and also I don’t want to take with me a PC just for starting the tablet ! So I realized this small tool that is my bootstrap device ๐Ÿ™‚

As you can see, it’s simply a 3V battery (CR2025) connected to one USB plug. That’s all. With the tablet off, insert the usb cable into this device, then press the tablet’s power-on button… The tablet will start ๐Ÿ™‚ Ok, remove quickly the “bootstrap” circuit to avoid any current flowing from the tablet into the battery (that is NOT rechargeable) and you have done. In the next picture, the device has been fully covered by insulating tape. Much more secure and professional ๐Ÿ˜‰

Update: a new program to rebuild the SPI flash memory contents

In my previous post here I proposed a program that was able to create the SPI flash memory contents for an Android tablet, starting from U-boot.bin and W-load.bin taken from FirmwareInstall folder of a working, original or modded, firmware rom. The previous program had a limit : the environment variables (and the boot script that is stored in the same space) were not used in the creation of the my-spi.bin output file, so when you re-program the SPI flash memory with the file produced by the old program, you must supply the needed instructions to upgrade the system via serial terminal.

Now, the new version adds the full environment variables and the necessary CRC32 code to the output file my-spi.bin, making the file much more useful and easy to use. Obviously, while in the first version you had to supply only two “input” files (u-boot.bin and w-load.bin), now you must supply a third: the env_uboot, that can be found on the FirmwareInstall/env/ folder or the usual, working, firmware distribution related to the tablet.

The instructions for use are exactly the same as for previous version, just add the env_uboot file in the program folder. As usual, the program was written in FreeBASIC and compiled under Win7. It doesn’t require installation, just unzip the downloaded file in a folder, and add the needed input files, then start the application…. that’s all. Hope this will be useful for someone ๐Ÿ™‚

Download the zip file at this link.

The memory areas of the resultant my-spi.bin files are:

0x00000 to 0x5FFFF reserved for u-boot.bin
0x60000 to 0x6FFFF reserved for environment variables
0x70000 to 0x7FFFF reserved for w-load.bin

Remember to get the right w-load—.bin file from the FirmwareInstall folder.
Generally, in most of the tablets I’ve seen (but NOT in all), the right one has the string DDR3_700M_1066M_8bit_2_256MB in the filename. Obviously, when you copy this file in the application folder, you must rename it in w-load.bin, ‘cause the program looks exactly for that file name.

Gambas2 su tablet WM8650 9.7″ (prove)

Programmare in Gambas2 ( Basic visuale per Linux ) direttamente su un tablet cinese da 100 Euro ? Si puรฒ fare !

Nella foto, una applicazione di esempio, compilata quindi avviata, per il test della porta seriale ttyS0 del tablet ; mediante un’ interfaccia RS232 collegata al dispositivo, si trasmettono e ricevono dati con il programma HyperTerminal ( o qualsiasi altro terminale seriale ) su un PC Windows ( protocollo 19200,N,8,1 ). Funziona.! Cliccare sull’immagine per una visione ingrandita.

Backup your SPI flash memory on SD card (Wm8505 – Wm8650 tablets)

The most important thing to do before attempting to change / upgrade / modify the default firmware for a tablet (we speak about the WM8505 / WM8650 models), is to create a backup of the internal SPI flash memory. The internal SPI flash memory is the hearth of a tablet. If you can rewrite it with original contents, you can always restore your tablet to the original state.

I highly recommend, for anyone wants to play this “game” with his own tablet, to build a serial interface, that is a basic, but powerful, instrument to “look” inside a tablet. There are many interfaces available to convert the 3.3V signals, present in the tablet, to RS232 levels, and other cheap circuits that directly connect 3.3V true logic from the tablet to USB port, that is seen as COM port from a PC. I suggest to use my own design circuit proposed on my page at this link, ‘cause is powered by the tablet itself, so it doesn’t introduce any voltage in the device input lines when the device itself isn’t powered on. I have had problems, with direct USB to TTL interfaces, due to the presence of positive voltages on transmitting side of the interface even if the tablet was off. So, please, build my circuit (it works !), or use one similar…

In the oldest tablet I own, the Evodroid Devo, based on WM8505 processor, there isn’t any “dongle” for the USB / LAN / Serial. There is just a mini plug for USB, but the serial port is always present inside the tablet. So, opening the case, you can solder the 4 wires needed for a serial terminal connection on the 4 pads as in the picture below :

The TXD is intended as tablet TXD, so is the output from tablet, while RXD is obviously, the data input to tablet.

Using a terminal emulator and the RS232 interface, we can make huge amount of tests and experiments. I recently updated my PC serial terminal program for some problems encountered on WM8505 tablets. In the new version, available for download at this link , I added the sequence “+++” ; if you quickly type this sequence on your PC keyboard, the terminal sends a Ctrl-C plus a CR to the tablet, stopping the autoboot (as default, U-Boot automatically starts the Linux Kernel and Android OS that are stored on tablet’s mass storage NAND flash).

Note that, for storing a copy of the internal SPI flash memory, you must insert a FAT32 freshly formatted microSD card in the tablet’s slot !

Well, if you have the serial interface connected to your PC, launch the terminal program, then turn on the tablet. You will see the W-load and the U-Boot messages ; immediatly type on the PC the +++ sequence (or type Ctrl-C and Enter if using another terminal program)… After a while the U-Boot will stop writing the command prompt WMT # ; the autoboot has been stopped and you can execute commands from the U-Boot provided set. Note that the U-Boot versions are different from one tablet model to another, but many commands are always available, even with small syntax differences. Here, I will describe the backups done from a relatively new 9.7″ tablet based on WM8650 processor, and from old 7″ Evodroid tablet (the one shown in the picture).

The first command to enter is the MMC initialization (MMC is the default name for the SD card), so we must type :

mmcinit 0

ย (0 selects the first SD card in wm8650 tablet, that has 2 SD cards capability)

or simply :

mmcinit

ย (in wm8505 that has only one SD card available)

We receive some messages from the tablet ; if all is OK, the MMC (SD) has been initialized and is ready to operate. Remember to use a FAT32 formatted one !

Now, we type the command :

cp.b FFF80000 0 80000

that means : copy bytes from address FFF80000 (the start of SPI flash memory) to address 0 (the start of RAM) for a length of 80000 bytes (that is hexadecimal, as all the data supplied), so 80000 is 8 * 64K = 512K bytes, the size of the whole SPI flash.

This operation will take a couple of seconds… then we have a copy of the whole SPI flash stored in system RAM. Now, we can use the powerful command “fatstore” to save that area to a binary file on the SD card :

fatstore mmc 0:1 0 backup.bin 80000

This command means : store a file on FAT system device mmc (our SD card), on partition 0:1 (the card is freshly formatted, so has just one partition : card 0, partition 1), reading data from RAM address 0, to a file named backup.bin, for a length of 80000 (hexadecimal) bytes. Note that in the wm8650 tablet I havent had any problem to execute this command, but in WM8505 there was something wrong while writing the SD card. The solution, was (simply) to substitute the original 4GB SD card previously used, with another one, a little bit older, sized just 128 MBytes ! That card was VERY OLD, it was in my LG cellphone by many years. So, if you have errors, try with another SD card, freshly formatted, of different type, brand or size.

When this operation terminates with success, you have a copy of your SPI flash stored on the SD card. This 512KBytes file has the U-Boot.bin, the Env_uboot.bin and the W-Load.bin files all in one. You can expand in 3 different files using my software tool that can be downloaded from this link. The zip file contains just one executable written in FreeBasic ; it does not require installation ; just deflate it in a new directory and copy in the same folder the spi.bin file you want to split ; at end of the process you will have u-boot.bin, w-load.bin and env_uboot files in the same folder.

Obviously, you can simply use the full file spi.bin file with an SPI programmer in case of tablet “hard bricked”.

To turn off the tablet, type the command :

shutdown

or, if it isn’t recognized, simply press and hold the power button. Extract the SD card and read the contents with your PC. If you want, send the BIN file to my blog, using the file transfer form ; I will collect the different roms for future help requests… ๐Ÿ™‚

Double the size of LocalDisk on Evodroid tablet (WM8505)

Hello, I purchased an old, used, working tablet based on obsolete processor WM8505. Why an obsolete model ? The reason is very simple : there is, on the internet, a full datasheet of the processor and good documentation, in general. When new products reach the market, they are still very technical, so well documented and simple to use. When it goes to be a business, the “commercials” come in and say to technicians : “you must hide all the infos and introduce some strange key to make impossible for anyone to look inside”. This is ‘cause the “commercials” are not able to produce ideas, they are able just to speak about things they can’t understand, and always have blinded vision of the future. Someone, any time, breaks the locks and looks inside,ย  ‘cause the “perfect lock” doesn’t exists. The result of this stupid behaviour is that the mankind is slowered and uses 20 years to reach the results that can be achieved in two. But the “commercials” are so happy, they sell and make big business. Absolutely haven’t a long view into the future.

Ok, I opened my tablet, just for look what’s inside. Here is a picture :

Just in the middle, you can see the “coreboard”, the hearth of the system, with the processor, the SPI flash with boot program, the ram, the oscillators and … the NAND FLASH ?ย  I can’t see the NAND flash, the “hard disk” of my tablet. Where is the NAND flash ?

ooooh, I found it, Is on a small board, hidden under the main board. But… there are only four wires ! Naaah, the NAND flash is a very common USB memory key ! That’s incredible, so the boot program in SPI flash is able to launch the system from an USB memory… VERY interesting !

I decided to disconnect the module from the tablet and wire it to a standard USB plug, in order to analyze it with my PC.

So, now I have an USB memory key with the hard disk of my tablet… Immediatly put in my PC and use the program Win32 Disk Imager, it’s open source, it’s simple, it works very well. I create a copy (img) of full pendrive and saved to disk for cloning on another USB memory key. Obviously, for using a standard usb memory key, I mounted a female usb plug in the tablet, using the 4 wires where was attached the original board. I used a 4GB memory key as destination of image file and tried to restart my tablet with such pendrive…

Ok, wires are connected, try to boot the tablet :

Uhmmm, animation starts, but continues “ad libitum” without starting the Android OS. There must be something wrong. Now, I extracted my pendrive and put it in another PC, running Puppy Linux. This is for a simple reason, Puppy Linux is my favourite “distro” and has the great GParted program, a powerful application to “look” inside disks and partitions. Inserting the pendrive, I discovered that has MANY partitions inside !

I see the main partition (the start) hasn’t the ‘boot’ flag. May be that’s the reason for tablet not starting ? Mmhh, let’s try to check. Modified the flags adding the ‘bootable’ to the first partition, then extracted the pendrive and tried again on the tablet…

WOW, now it works ! Ok, now, coming back to the Puppy Linux, I looked at all the partitions and the contents. First, the partitions list:

and now, the contents of each one : first SDB1

then, SDB5

then, SDB6

then, SDB7

and, finally, the SDB8

This is our “localDisk” ! Now, the original NAND flash was 2 GB and I have the new one that is 4GB, so i will resize the partition, using the GParted going from this situation :

to this new organization, filling all available space :

OK, all done. Now back again to the tablet and reboot. The led lights, the system starts…

And now, let’s go to measure how big is our LocalDisk ๐Ÿ™‚

Wow… very good. Now, I can’t have an USB memory key attached to my tablet, so I opened the pendrive’s case and discovered that the small board inside is VERY similar to the original one…

So, I desoldered the USB plug and soldered the new circuit in place of the old one. All worked perfectly, tablet closed, disk space doubled.

 

Very simple wifi enhancement for tablet

Hello, my tablet has so many moddings… but when far from the router it has some difficulties to connect to the internet. So I soldered a 32 mm long enamelled wire at the base of printed CS antenna. The gain was more than aspected. Now I can connect from places where it wasn’t possible before.
Obviously, the enamelled wire must be “scratched” in the point where it’s soldered to the circuit. In this picture below you can see my version of this very basic antenna…
P.S. to the R.F. gurus : I know that this is NOT a clean way, but it works…