Mini6410 N43i Display / Touchscreen

antifish
Hi @all

as i read in other threads and i have the same problem:
theres a N43i Display wich doenst work with standard tslib / s3c24xx adc
drivers. I need to get it working :)
Anna R. -> you resoldered the 4 resistors and now its working with
the s3c24xx adc driver?
You wrote that the backlight doesnt work... can you try this?
-Resolder resistor R1 to R26 and then set the GPE0 pin to high?
Because R1 is for the TouchOne interface and R26 is directly connect
to the gpe0 pin. At least it shoul light up now, i dont know about the
brihgtness / dimm...

ill try it next week for my self :)

is there a kernel patch to get the s3c24xx soc adc touchscreen driver in my
own kernel?

Juergen Beisert
What kernel do you use? You must register the S3C ADC platform device and
the S3C touchscreen platform device in your Mini6410 board file (and enable
both corresponding drivers in your kernel config).

fatbrain
For backlight control to work for 4.3 NEC display you only need to to short
R26 and it will work.

Ann R. (Russia)
Great!! Will try it tomorrow and  report the results )

antifish
tested it today,

chaning R1 -> R26 works perfect, now tslib works and backlight!
ann: even fatbrain told that you ONLY need to short R26,
my advice is that you solder out R1. better don't connect two outputs with
each other, thats what i learned since i'm electronic enginner :)

Juergen:
i'm using your patched kernel 3.0 from the ptxdist bsp for mini6410 but
compiled with a buildroot created toolchain and a buildroot created rootfs.
i always was verly lucky with this toolchain, never had any compiling
errors.

davef
Well, I have been an electronics engineer for longer than most of you have
been "breathing air" and I find the hardware aspect of this thread totally
confusing.

And I quote:

Anna R. -> you resoldered the 4 resistors and now its working with
the s3c24xx adc driver?

"Resoldered" does not mean changing anything, but resoldering to hopefully
ensure that you do not have an intermittent connection. Possibly another
thread explains this step more clearly.

-Resolder resistor R1 to R26 (Reasonably clear)

Remove R26 and put it somewhere safe, remove R1 and resolder this resistor
where R26 was located.  Or, place R1 where R26 was located.

ann: even fatbrain told that you ONLY need to short R26,
my advice is that you solder out R1. better don't connect two outputs with
each other, thats what i learned since i'm electronic enginner :)

Short R26? I thought it was removed from the board. "Solder out R1", I
guess means remove it from the board AND then what do you with R1. Ah,
above it said to place it where R26 was.  "better don't connect with each
other"  I guess this is referring to the two empty pads left by removing
R1.

May I suggest something along the lines of:

- remove R26
- remove R1
- place R1 in the R26 position

Do not short the PCB pads of R1 together.
******
Correct as necessary so that others can carry out this operation with a
chance of success.

Regards,
Dave

antifish
sorry Dave my english is not perfect.

as there are all 0 ohm resistors it doesnt matter if you:
-remove R26 and place it at R1 
or 
-remove R26 and short the pads of R1

antifish
...

actually you can choose if you have a N43 or a N43i with this resitors,
just like jumpers. so there never should be a boad with R1 (0ohm) AND
R26(0ohm) on it. Either R26 is closed (0 ohm resistor in it or shor) OR R1
is closed (0ohm or short)

davef
My second attempt:

*****
Configuring the LCD board controller board for N43 and N43i LCD displays

For the N43 display:
- place a 0 Ohm resistor in the R1 position (R26 is NOT placed)

For the N43i display:
- place a 0 Ohm resistor in the R26 position (R1 is NOT placed)

Note: 
- either R1 or R26 should already be a 0 Ohm resistor so you should only
have to reposition this resistor as above.  If you have lost the 0 Ohm
resistor you can short the pads of R1 or R26 together with a small piece of
wire and/or a "blob" of solder.
*****

It would be helpful to identify these two displays.  I understand that the
N43i display is made by NEC and the N43 display is made by ?

I suspect I may  still have this wrong so please correct me.

Juergen Beisert
Dave,

from my collected list, the "N43" seems to use a 4.3" NEC NL4827HC19-01B
and the "N43i" seems to be a 4.3" Sharp LQ043T3DX02. Maybe the "i" does not
mean the used LCD, but how the touchscreen is connected.

Anna R. (Russia)
N43i has also NEC NL4827HC19-01B inside

antifish
another try :)

N43 has identical LCD with N43i,
on the N43i controller board is an additional uC(STC12LE4052-12I-SOP20)
which has reads the four x+- / y+- lines from the touchscreen and sets
the backlight. it does one-wire communication with our mini6410 board.

So if you want to use the "normal" tslib touchscreen interface with kernel
driver which reads the touchscreen position by the adc from mini6410 you
have to reconfig your controller board by swapping the resistor.

Dave: have a look at this scheme, it will be clear then:
http://www.friendlyarm.net/dl.php?file=lcd43_schematic.zip

========================================
Enable normal ADC Read for Touchscreen & GPIO Backlight instead of Friendly
Arm proprietary TouchOne
//for Touchscreen wires:
- place a 0 Ohm resistor in the R28 position (R34 NOT placed, remove it)
- place a 0 Ohm resistor in the R29 position (R35 NOT placed, remove it)
- place a 0 Ohm resistor in the R30 position (R36 NOT placed, remove it)
- place a 0 Ohm resistor in the R31 position (R37 NOT placed, remove it)

//for LCD Backlight
- place a 0 Ohm resistor in the R26 position (R1 NOT placed, remove it)

davef
antifish,

Getting better.  If I ever brought a mini6410 with one of these displays I
am feeling slightly more confident that I would be able to ensure that the
LCD was configured properly.

I am left with at least one question and maybe something that completes
your well-written summary above . . . what happened to R1? I understand
from previous comments (near the top of the thread) that it is only placed
when using TouchOne.  Also, according to the schematic R26 is placed for
TouchOne and in your summary (Enable normal ADC Read for Touchscreen & GPIO
Backlight) it is placed as well.  It seems redundant to mention anything
about R26.

[quote]
so there never should be a boad with R1 (0ohm) AND
R26(0ohm) on it.
[unquote]

However, the schematic shows both resistors are placed and there is no
mention that they change.

Reading lcd-43_schematic_v1043.txt doesn't mention anything about R1 and
R26 when changing from use on the mini2440 (Enable normal ADC Read for
Touchscreen & GPIO Backlight?) and the mini6410 (Friendly
Arm proprietary TouchOne?). Or, have I made an incorrect assumption here
linking a dev board with a touchscreen driver method?

Is this thread is trying to sort out two separate issues:
- different display types AND
- different methods of driving the displays.

If so, the summary table needs to cater for four different combinations.

Regards,
Dave

antifish
yes the schematic show both placed, but on my board (n43i, default:
touchone) only R1 was placed. And its correct for the "i" Version. R26 is
only for the standard, NOT TouchOne mode.

N43i / TouchOne:
R1 connects the output of the OneWire/TouchOne Controller to the
CTRL(Enable) pin of the LED Backlight Supply. Signal Name: LCD_EN
So there must be a command in this TouchOne Protocoll which enables the
backlight.

N43 / "normal"
R26 connects the GPIO pin of the Mini6410 to the CTRL(Enable) pin of the
LED Backlight Supply. Signal Name: LCD_PWR
The Kernel is configured to pullup the GPIO Port when starting the board to
enable the Backlight.

So i would not recommend to place both resistor, as you would short the
GPIO output with the TouchOne output... ok it could be that the TouchOne
pin stays high impedance until it gets a command to enable the backlight,
but better dont place both, at least not 0 ohms :)

what i dont know is what happends when you connect that thing to a
mini2440, never had one. We used a sky2440 with a custom display/spi touch
before i bought a mini6410 for private fun :)

davef
antifish,

So, the schematic does not reflect reality.  Won't be the first time!  

Maybe someone could advise them to update their schematic.  If putting both
resistors on , as per the schematic, causes a problem they should advise
users via an errata sheet.

You have captured your 43i knowledge to a good level, now you can get back
to developing the product!

Cheers,
Dave

deltaT
Hi Guys,
I resoldered R26 and R28 - R31. The touchscreen seems to work flawless, but
I can't get the backlight to work.
I am using Juergen‘s BSP with the 3.0 kernel -- can you guys tell me, what
kernel module I need to enable?

antifish
did you removed R1?
actually the Kernel form Pengutronix BSP automaticaly enables the
backlight, its done with the GPE0 output of the mini6410.¨no special module
needed.

you can try setting GPE0 port high manually?

deltaT
antifish:
I removed R1 and placed it on R26.
I tested it with the FriendlyARM-Ubuntu Distro, and there, the Backlight
was working fine.
Which Pengutronix-Release are you using? I am using the latest git.

Can you give me a quick recap on how to enable GPIO-Ports? I am a bit rusty
on the subject ;)

Juergen Beisert
deltaT: Did you play with the backlight sysfs entry? Maybe this display
unit needs a different polarity to enable/disable the backlight (I can't
test it, because I have only an N43 (without the 'i') here).

antifish
i used the latest (git) bsp too, worket out of the box!
did you reconfigured the kernel or changed antything else?

for setting gpio port high:

find the right gpio port number:
- $ cat /sys/class/gpio/gpiochipxxx/label(or something, it should give you
the name of the gpio port [do it with all gpiochipxxx until you find GPE :)
])

- $ echo xxx > /sys/class/gpio/export (where xxx is the number from the
gpiochip wih name GPE)
- $ echo out > /sys/class/gpio/gpioxxx/direction
- $ echo 1 > /sys/class/gpio/gpioxxx/value

+ have a look here:
http://www.avrfreaks.net/wiki/index.php/Documentation:Linux/GPIO#gpio-sysfs

deltaT
@Juergen:
technically speaking, I now have a N43, too. I tried playing with
backlight-sysfs, but no cookie.

@antifish:
Thanks!
With the FriendlyARM-Ubuntu Kernel, it worked fine too. I didn't modify the
kernel, which version are you using? I'm on 3.0 here.

Juergen Beisert
Okay, did a test on my Mini6410 and N43 (without 'i') display unit with my
own kernel here. Backlight control does not work as expected: kernel's
backlight control operates only on GPIOF15 which controls the PWM line
(which has no function on the N43, AFAIK).
But using the LED control works here on my Mini6410:

echo 1 > /sys/devices/platform/leds-gpio/leds/backlight/brightness

Enables the backlight here and

echo 0 > /sys/devices/platform/leds-gpio/leds/backlight/brightness

disables it (this entry switches the GPIOE0 line).

Exporting the GPIOE0 does not work with my kernel, as this GPIO is already
occupied by the LED framework.

BTW: To see who occupies what GPIO you can run a "cat
/sys/kernel/debug/gpio" (if the 'debugfs 'is already mounted)

antifish
@deltaT
i'm using 3.0 too, actually everything default out of the git, just
compiled & it worked.

@Juergen
your right, i think i did it the same way, enabled/disabled with the led
backlight control

i'm using a moddified n43i too (switched the 5 resistors), everything works
great :)

deltaT
do you have the device entry
"/sys/devices/platform/leds-gpio/leds/backlight/brightness" ? nothing
changes when exporting 1 or 0 to it?

is your rootfs from the pengutronix BSP too or do you use your own?

antifish
another option would be removing R1 and connect the enable pin directly to
3.3V, so that blacklight would be always on.

deltaT
antifish:
just checked it - exporting Nr. 32 (GPE) doesn't release the GPIO-files
(direction, value etc) -- all I have is base, label, ngpio, power/ <empty>,
subsystem and uevent...

deltaT
alright... according to debugfs, gpio-32 (backlight) is exported and high
-- yet, it's dark

antifish
@deltaT
i think you are in the wrong directory :)
after the "echo 32 > /sys/class/gpio/export"
there should be a new directory called
/sys/class/gpio32

can you check if that exists?

antifish
maybe you have no output on the display and backlight is on? :)
i cant remeber if ptxdist bsp does some output if you dont start anything
like a Qt application or something...

try starting ts_calibrate or something?

just an idea :)

deltaT
antifish:
like Juergen said, Nr. 32 is already occupied as backlight and set to high
by default...
I just checked the solder-pads, seems fine (no shorts)...
Can you post your ptxconfig somewhere? Maybe it's just a matter of
different git versions

Juergen Beisert
You should notice: My kernel does not use the screen. So it is always empty
until you run some kind of application using the screen (like my default
little Qt app).

antifish
deltaT:
i stoped using ptxdist because of the missing USB support, so i don't have
a config. put i allways used default configs, so id should work at your
board too.

as Juergen said, can you try starting a execuatable which produces output
on the framebuffer device? A Qt app? or fbtest (if its included) or ts_test
or ts_calibrate?

deltaT
ts_calibrate and fbtest work fine, but there's just no output ;)

antifish
Can you upload a picture of your modded n43i board where i can see all the
resistors? Then i can compare to mine

antifish
deltaT:
had another look at the schematics

-> try removing R26!
it looks like there is a pullup connected to the enable pin of the
backlight supply ic. so if you have R1 and R26 both removed, your backlight
should always be on

Anna R. (Russia)
deltaT, give me your email. I'll send you my version of 2.6.38 kernel for
N43i

deltaT
delta DOT tatham AT me DOT com

MANY THANKS!!! :)

fatbrain
R26 is in the schematic but not on the board.It is  open just short it and
the backlight will work. Anyway it is 0 Ohms. I paired a mini6410 lcd  N43
with a mini2440 and it works.

Ann R. (Russia)
sorry deltaT, but my kernel also doesn't init backlight :(

Today i replaced R26 With R1 and still no luck. No backlight :(

deltaT
fatbrain: 
I desoldered R1 and shorted R26 (it is on my board) - no cookie.
I will re-flash it with a FriendlyARM-Image and check, which device the
FA-Kernel uses for backlight-control

Ann R. (Russia)
Any news?

deltaT
yeah.. bad news:

resoldering the 5 resistors is only half the game.
Apparently, the backlight-controller interface (not the actual backlight)
differs from the regular N43 too.
I played around a bit with kernel settings etc - no cookie.
I just installed a Kernel from the Ubuntu-Image and shazaam - it lit up.
Following mindee's tip, I played with "echo 0...128 > /dev/backlight-1wire"
and it actually worked.
But:
The LCD is not synced properly - I'm not an expert, but I see vertical
lines, seems like the sync-rate isn't set properly.

Any tips?

Ann R. (Russia)
:( 

Whare to buy N43?
Do FA sell them?

I'm so tired with N43i...

deltaT
I hear ya!

Let me work my contacts in Shenzhen,
maybe I can get some shipped..

Ann R. (Russia)
That'll be great!

astonix
@antifish

Have you tried to re-calibrate the touchscreen?
I have tried, at first with a USB mouse to select menu recalibration on the
menu: settings -> recalibrate. After recalibration, restart the OS, then
use the stylus to touch the screen.

It Works well :)