--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
Linux changes all the time. If you want full SW support for these displays then you would need to add $500 to the cost of each of them.
The concept here is the people that buy them, know how Linux works and can get things going themselves and make what ever tweaks are required. Supporting all the different kernel versions and distributions, that is no feasible.
The concept here is the people that buy them, know how Linux works and can get things going themselves and make what ever tweaks are required. Supporting all the different kernel versions and distributions, that is no feasible.
Probably this is the nice business concept used by TI, CircuitCo, etc. Sell chips and boards, make money, but let the open source community write the software and support everything for free. Just make a product, label it to be "for developers" and sell it without any support.
Gary,It is clear that at some point in time some bug has slipped into the TI SoC ADC kernel drivers or the touchscreen drivers that use these ADC drivers
Thank you for your extensive and philosophic point of view. I just don't understand how Nokia is related to the problem...
. What I am angry about is that CircuitCo (and 4D Systems) know about the problem. Besides the fact that they don't do anything to fix it (although afaik they have good people working on Angstrom), they could at least post a notice on their product's webpages so customers don't have to chase where the bugs come from for weeks.
The fact that they have still not done it makes me think that they want to keep their sales high. Again, the prices for the LCD boards are not low and we cannot talk about break even here.
--
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/SXTaSUf4aSk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
1) Presentation of the BUG
- When you touch the screen repeatedly ( up and down up and down ) the bug seems to happen ! ( rarely, but it does )
- When you touch the screen continuously, you can see that sometime the mouse go far away from your finger .
2) The driver
The name of the driver is TI - TSC ADC (Touschscreen and analog digital converter)
It's easy to find the source of this driver => drivers/input/touchscreen/ti_am335x_tsc.c
3) The Interesting part
The interesting part of this driver, is this function :
static void titsc_read_coordinates(struct titsc *ts_dev,u32 *x, u32 *y, u32 *z1, u32 *z2){unsigned int fifocount = titsc_readl(ts_dev, REG_FIFO0CNT);unsigned int prev_val_x = ~0, prev_val_y = ~0;unsigned int prev_diff_x = ~0, prev_diff_y = ~0;unsigned int read, diff;unsigned int i, channel;unsigned int creads = ts_dev->coordinate_readouts;*z1 = *z2 = 0;if (fifocount % (creads * 2 + 2))fifocount -= fifocount % (creads * 2 + 2);/** Delta filter is used to remove large variations in sampled* values from ADC. The filter tries to predict where the next* coordinate could be. This is done by taking a previous* coordinate and subtracting it form current one. Further the* algorithm compares the difference with that of a present value,* if true the value is reported to the sub system.*/for (i = 0; i < fifocount; i++) {read = titsc_readl(ts_dev, REG_FIFO0);channel = (read & 0xf0000) >> 16;read &= 0xfff;if (channel < creads) {diff = abs(read - prev_val_x);if (diff < prev_diff_x) {prev_diff_x = diff;*x = read;}prev_val_x = read;} else if (channel < creads * 2) {diff = abs(read - prev_val_y);if (diff < prev_diff_y) {prev_diff_y = diff;*y = read;}prev_val_y = read;} else if (channel < creads * 2 + 1) {*z1 = read;} else if (channel < creads * 2 + 2) {*z2 = read;}}}
diff = abs(read - prev_val_x);
if (diff < prev_diff_x) {
prev_diff_x = diff;
*x = read;
}
prev_val_x = read;
static irqreturn_t titsc_irq(int irq, void *dev){struct titsc *ts_dev = dev;struct input_dev *input_dev = ts_dev->input;unsigned int status, irqclr = 0;unsigned int x = 0, y = 0;unsigned int z1, z2, z;unsigned int fsm;status = titsc_readl(ts_dev, REG_IRQSTATUS);/** ADC and touchscreen share the IRQ line.* FIFO1 threshold, FIFO1 Overrun and FIFO1 underflow* interrupts are used by ADC,* hence return from touchscreen IRQ handler if FIFO1* related interrupts occurred.*/if ((status & IRQENB_FIFO1THRES) ||(status & IRQENB_FIFO1OVRRUN) ||(status & IRQENB_FIFO1UNDRFLW))return IRQ_NONE;else if (status & IRQENB_FIFO0THRES) {printk("start\n");titsc_read_coordinates(ts_dev, &x, &y, &z1, &z2);
[ 198.656831] raw x=646[ 198.656854] diff 647[ 198.656876] x=646[ 198.656897] raw x=686[ 198.656918] diff 40[ 198.656937] x=686[ 198.656958] raw x=686[ 198.656979] diff 0[ 198.656998] x=686[ 198.657018] raw x=686[ 198.657038] diff 0[ 198.657058] raw x=686[ 198.657078] diff 0[ 198.657099] raw y=2891[ 198.657119] diff 2892[ 198.657139] y=2891[ 198.657160] raw y=2890[ 198.657180] diff 1[ 198.657200] y=2890[ 198.657221] raw y=2889[ 198.657241] diff 1[ 198.657262] raw y=2888[ 198.657281] diff 2[ 198.657302] raw y=2885[ 198.657322] diff 5
[ 198.659250] raw x=685[ 198.659270] diff 686[ 198.659290] x=685[ 198.659310] raw x=686[ 198.659330] diff 1[ 198.659350] x=686[ 198.659370] raw x=685[ 198.659390] diff 1[ 198.659410] raw x=683[ 198.659430] diff 3[ 198.659450] raw x=680[ 198.659470] diff 6[ 198.659490] raw y=2879[ 198.659510] diff 2880[ 198.659530] y=2879[ 198.659550] raw y=2878[ 198.659570] diff 1[ 198.659590] y=2878[ 198.659611] raw y=2879[ 198.659630] diff 1[ 198.659651] raw y=2879[ 198.659670] diff 1[ 198.659691] raw y=2873[ 198.659711] diff 5
titsc_read_coordinates(ts_dev, &x, &y, &z1, &z2);
[ 184.476705] x=2889[ 184.476726] y=1300[ 184.476748] deltaZ=-7 z=207
[ 184.478764] x=2889[ 184.478784] y=1293[ 184.478806] deltaZ=-22 z=185[ 184.478827] z ignored, deltaZ=-22
[ 184.480760] x=2890[ 184.480781] y=1289[ 184.480803] deltaZ=-20 z=165[ 184.480824] z ignored, deltaZ=-20
[ 184.482753] x=719[ 184.482774] y=3591[ 184.482796] deltaZ=56 z=221
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
4) CONCLUSION:
I fixed the bug, but the original source of this bug is hardware for me .The solution to fix this problem is to put a better filter ! Enjoy ;)
[ 71.146681] deltaZ=0 z=249[ 71.148661] start[ 71.148705] x=856[ 71.148726] y=3114[ 71.148749] deltaZ=-1 z=248[ 71.150734] start[ 71.150775] x=852[ 71.150796] y=3109[ 71.150818] deltaZ=-3 z=245[ 71.152802] start[ 71.152844] x=851[ 71.152865] y=3113[ 71.152888] deltaZ=-3 z=242[ 71.154876] start[ 71.154916] x=851[ 71.154937] y=3114[ 71.154960] deltaZ=-7 z=235[ 71.156976] start[ 71.157017] x=851[ 71.157038] y=3116[ 71.157060] deltaZ=-7 z=228[ 71.159024] start[ 71.159059] x=855[ 71.159080] y=3558[ 71.159102] deltaZ=-14 z=214[ 71.159123] z ignored, deltaZ=-14
[ 184.476705] x=2889[ 184.476726] y=1300[ 184.476748] deltaZ=-7 z=207
[ 184.478764] x=2889[ 184.478784] y=1293[ 184.478806] deltaZ=-22 z=185[ 184.478827] z ignored, deltaZ=-22
[ 184.480760] x=2890[ 184.480781] y=1289[ 184.480803] deltaZ=-20 z=165[ 184.480824] z ignored, deltaZ=-20
[ 184.482753] x=719[ 184.482774] y=3591[ 184.482796] deltaZ=56 z=221
[ 141.325412] start[ 141.325453] x=2896
[ 141.325473] y=1955[ 141.325496] deltaZ=-51 z=132[ 141.325517] z ignored, deltaZ=-51
[ 141.327402] start
[ 141.327438] x=2583[ 141.327458] y=1799[ 141.327480] deltaZ=-2 z=130
--
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/SXTaSUf4aSk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
git clone git:
//github.com/RobertCNelson/linux-dev.git
cd linux-dev/
git checkout origin/am33x-v3.
8
-b tmp
./build_kernel.sh
You should ask Robert Nelson about that.
Micka,
--
Hi Piotr,
Have you studied the errata for the processor? IIRC some issues and
workarounds with the TSC are documented there.
-- Bas
On 24-2-2014 12:51, mich...@o2.pl wrote:
> Hi,
>
> I step in as everybody looking to find solutions for TS issues.
> Actually, I'm still working on solving it. However, I have some tips
> and "discoveries" I'd like to share, meby someone will find it useful.
>
> 1) I have just external TS, no cape at all, the TS is 10 inch.
>
> 2) I found "after many hours :(" that ti_am335x_tsc driver can not be
> build in, and must be loaded as a module after the cape for TSC is
> loaded. That's because I use "overlay-ed" cape for TSC. Even though it
> is set to be loaded in uEnv.txt!
>
> 3) Big touch screen has bigger capacity, it results in permanent
> "auto-touch" event generation, driving me nuts since LCD7 TS works
> nicely. I have discovered, that adjusting delays in driver is the
> solution!!! There are "open-delay", "sample-delay", "charging-delay"
> defined in ti_am335x_tscad...
Well, It's good that it works in other device :)Micka,On Mon, Jan 27, 2014 at 9:32 PM, Terry Storm <terrys...@gmail.com> wrote:
BrilliantThank you Robert, and thank you Micka for the patch.Just ran it up, booted from SD card and I cant fault the touch in the few minutes I have played with it.Great news, thank you both.Will continue to test.Terry
On Tuesday, 28 January 2014 02:45:40 UTC+13, RobertCNelson wrote:On Mon, Jan 27, 2014 at 4:36 AM, Terry Storm <terrys...@gmail.com> wrote:
> Great news
>
> Can someone please link me to the l
...
--
For more options, visit http://beagleboard.org/discuss
---
You received this message because you are subscribed to the Google Groups "BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to beagleboard...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
From: Micka [mailto:micka...@gmail.com]
To: beagl...@googlegroups.com
Sent: Thu, 13 Mar 2014 00:59:42 -0800
Subject: Re: [beagleboard] Re: Touchscreen Jitter / Jumping on Beaglebone Black LCD Capes
You received this message because you are subscribed to a topic in the Google Groups "BeagleBoard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/beagleboard/SXTaSUf4aSk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to beagleboard...@googlegroups.com.
From: Micka [mailto:micka...@gmail.com]
To: beagl...@googlegroups.com
Cc: Robert Nelson [mailto:robert...@gmail.com]
Sent: Thu, 13 Mar 2014 11:08:23 -0800
There is a part in the driver (ti_am335x_tsc.c):
config = STEPCONFIG_MODE_HWSYNC |
STEPCONFIG_AVG_16 | ts_dev->bit_yp |
ts_dev->bit_xn | STEPCONFIG_INM_ADCREFM |
STEPCONFIG_INP(ts_dev->inp_xp);
titsc_writel(ts_dev, REG_STEPCONFIG(end_step), config);
titsc_writel(ts_dev, REG_STEPDELAY(end_step),
STEPCONFIG_OPENDLY);
end_step++;
&...
/** Delta filter is used to remove large variations in sampled* values from ADC. The filter tries to predict where the next* coordinate could be. This is done by taking a previous* coordinate and subtracting it form current one. Further the* algorithm compares the difference with that of a present value,* if true the value is reported to the sub system.*/I see that note missing in newer versions and that section gone, so this critical piece of code was removed for some reason.time for the champagne :)
...--
For more options, visit <a href="http://beagleboard.org/discuss
I have a solution!
From: Micka [mailto:micka...@gmail.com]
To: beagl...@googlegroups.com
Cc: Robert Nelson [mailto:robert...@gmail.com]
Sent: Thu, 13 Mar 2014 11:08:23 -0800
Hi!
I have a 4DCAPE-43T LCD and tested it with Beaglebone Black and the latest Angstrom image (2013.08.21). Unfortunately, I am experiencing input jitter / jumping. I use TSlib's ts_calibrate for calibration and ts_test for testing. In Gnome's calibration tools the same problem appeared: Instead of clicking, I often have some dragging or even random jumping of the pointer. The problem appears especially if the pressure applied to the touchscreen is lower.
I wrote 4D SYSTEMS support regarding the touchscreen jitter and got the following reply:
"The 4D Cape 43T LCD has been based on the LCD4 from Circuitco and uses the same drivers written for the LCD4 on the Angstrom. Upon testing and verification, the problem of jitter is evident as well on the LCD4 display of Circuitco using the Angstrom 2013.06.20 and 2013.08.21 images so in effect this has nothing to do with the hardware but it’s a software problem."
Actually, I found a video on Youtube with LCD7 where a similar jump / jitter problem can be seen:
http://www.youtube.com/watch?v=vEfnwL-Jxgw @ min 2:00
Any idea how the problem can be solved?
Thanks in advance,
Anguel
Hi!
I have a 4DCAPE-43T LCD and tested it with Beaglebone Black and the latest Angstrom image (2013.08.21). Unfortunately, I am experiencing input jitter / jumping. I use TSlib's ts_calibrate for calibration and ts_test for testing. In Gnome's calibration tools the same problem appeared: Instead of clicking, I often have some dragging or even random jumping of the pointer. The problem appears especially if the pressure applied to the touchscreen is lower.
I wrote 4D SYSTEMS support regarding the touchscreen jitter and got the following reply:
"The 4D Cape 43T LCD has been based on the LCD4 from Circuitco and uses the same drivers written for the LCD4 on the Angstrom. Upon testing and verification, the problem of jitter is evident as well on the LCD4 display of Circuitco using the Angstrom 2013.06.20 and 2013.08.21 images so in effect this has nothing to do with the hardware but it’s a software problem."
Actually, I found a video on Youtube with LCD7 where a similar jump / jitter problem can be seen:
http://www.youtube.com/watch?v=vEfnwL-Jxgw @ min 2:00
Any idea how the problem can be solved?
Thanks in advance,
Anguel
Hmm,There are 2 Android builds that I know of, one from TI which is the 3.2 Kernel which does work fine http://downloads.ti.com/sitara_android/esd/TI_Android_DevKit/TI_Android_JB_4_2_2_DevKit_4_1_1/index_FDS.html, and then this one which uses 3.8 which also works fine http://icculus.org/~hendersa/android/Both work correctly for touch...I didn't realise Angstrom was abandoned, that is not good.So what is the new most supported distribution for the BBB and LCD capes?The touch problem is incredibly frustrating.Thanks for the info
On Monday, 16 December 2013 19:56:40 UTC+13, Anguel wrote:I have given up with all LCD capes, there are driver bugs in the 3.8 kernel as stated before (see my previous postings). Afaik Android uses the old 3.2 kernel an therefore works ok.
Also, I have the impression that Angstrom development for the BBB is completely abandoned now.
Just hope that the Buildroot people will soon have full support for the BBB...