ONLINE AIR TICKET REGISTRATION ASP.NET PROJECT
Raspberry PI, Raspbian, XBMC and eGalax 7 inch touchscreen
I have spent some time lately trying to find a solution to get my 7 inch eGalax touchscreen to work with Raspbian(Debian Wheezy) in XBMC 12 Frodo and finally got it working as I wanted.
My Setup |
- Raspberry PI model B: ~30$
- 7 inch display with touchscreen for car rear view camera, from eBay(touchscreen is connected to one USB port): 80$
- HDMI male to HDMI male connector(from eBay): <2$
- 4GB SDHC class 4 card
- 12V(500mA) AC to DC adapter for powering the display
- 5V(1A) microUSB AC to DC converter for powering the PI
- USB keyboard
Edit: Download the latest image from the top right corner of this blog(username: pi, password: a).
Here is what you need to do in order to have a system with Raspberry PI, Raspbian OS and XBMC 12 Frodo stable with eGalax touchscreen working correctly(which means axes calibrated and click working with just one tap&release action):
1. Get latest Raspbian image from here and flash it to an SD card.
2. Build your own kernel with eGalax touchscreen support, like in this post(you will only need to replace kernel.img file and /lib/modules and /lib/firmware folders on the SD card).
3. Build XBMC 12 on Raspberry PI using this tutorial.
Note: After downloading XBMC archive, get this archive and unpack it anywhere.
Apply patches to xbmc files:
cd <patches_folder>4. Touchscreen calibration.
patch -p1 <path_to_xbmc>/xbmc/input/linux/LinuxInputDevices.cpp < LinuxInputDevices_cpp.patch
patch -p1 <path_to_xbmc>/xbmc/input/MouseStat.cpp < MouseStat_cpp.patch
patch -p1 <path_to_xbmc>/xbmc/input/MouseStat.h < MouseStat_h.patch
Create a new file /home/pi/touchscreen_axes_calib on Raspberry PI. It will contain four values for the axes calibration and one value for swapping axes.
The simplest way to swap axes is to switch the four wires cable plug's orientation which comes from the touchscreen to the touch controller.
Here is how the calibration was done.
![]() |
the original behavior(no calibration) |
- "touch panel physical size frame" is the screen starting from (0,0) on the left top corner and going to (width, height) in the right bottom corner.
- "touch panel values frame" is the frame which contains all the number the touch controller is giving.
In order to do this we need to do three steps(the third one is done in software):
a. Scale the value read from the touch driver x and y) in order to fit 0->width range and respectively 0->height range of the "touch panel physical size frame" the scale value for x axis is:
"touch panel physical size frame" width
calib_x_fact = -------------------------------------------------
"touch panel values frame" width
"touch panel physical size frame" height
calib_y_fact = -------------------------------------------------
"touch panel values frame" height
"touch panel values frame" width and height are coming from your XBMC resolution(I have width=1280 and height=720).
"touch panel physical size frame" width and height are a little more trickier to find but nothing hard. In step 2 above, you have calibrated the touchscreen in XFCE. You got some values returned by xinput_calibrator, something like:
Section "InputClass"
Identifier "calibration"
MatchProduct "eGalax Inc. USB TouchController"
Option "Calibration" "1977 32 1893 131"
EndSection
"touch panel physical size frame" width is 1977 - 32 = 1945
"touch panel physical size frame" height is 1893 - 131 = 1762
Now, compute the values and put them in /home/pi/touchscreen_axes_calib file
b. Translate the "touch panel values frame" to the left and up, to match "touch panel physical size frame".
I didn't find a logical method to do this, because we don't know exactly "where is" the "touch panel values frame", so, in order to find calib_x_d and calib_y_d you have to first set them both to zero and then start XBMC. Now, put some sharp pointer on the screen and observe the distances between the cursor on the screen and your pointer's position. Try to approximate these x and y deviations(measured in pixels) and put them in the /home/pi/touchscreen_axes_calib file.
c. Revert direction of axes. This is done in the software(from patches).
5. Math behind.
To accomplish these transformations the following formula was implemented in the file
xbmc/input/linux/LinuxInputDevices.cpp
pointer.x = value_read.x * calib_x_fact + calib_x_d;
pointer.y = value_read.y * calib_y_fact + calib_y_d;
After I have successfully calibrated the touchscreen I have discovered that single click was not possible from the touchscreen, just double click. After digging through the code, I have found that this was caused by drag action which was triggered because the previous values of the touch were far(more than 5 pixels) from a new press. For example, at the start of the program, cursor is set at 0,0 coordinates; if user is trying to press a button, let's say at 100, 300, the program(XBMC) will calculate the distance between these two points and will find out that this is greater than 5.
Pythagorean theory:
(100-0)x(100-0) + (300 - 0)x(300-0) is greater than 5x5 XBMC will treat this as a drag event.
This drag issue is not caused when you double click, because the previous point in the second click action is very close to the second click point. This also works for mouses, because the previous value of the pointer is always very close to the new value of the pointer(because mouse's pointer drags on the screen and it doesn't jump - so each new value is very close to the previous one).
I have developed an algorithm to avoid this issue:
When the user is pressing the screen(x,y), the touch values are being set to (screen_width+1, screen_height+1 -> outside of the visible screen) just at the first event read(which is BTN_TOUCH PRESS).
After this event, the program will receive multiple X and Y absolute values events. The first two events, one for X and one for Y are used to set the previous X value, respectively previous Y value to the current X respective current Y values. And from now on distance is measured and this is preventing no unwanted drag action.
The user's finger/pointer will not stay at a single point, because the touchscreen's lack of precision, so it will move around 5-6 pixels in x and y directions.
I have also set the click distance to 7. You can change this by changing click_confines value in xbmc/input/MouseStat.h. Originally it was set to 5, but this is not very good for touch screens(I had to click with a sharp pointer and with my nail always, but with a value of 7 I can click with my finger with a slight touch -> really nice).
Enjoy!
Online Recruitment System project
This is a Online Recruitment site , where people can seek for job by registering here. Even they can apply for the job through online using this site. People should just create a account by registering here, then they should upload their CV or resume . So that when their profile is matched for any job. Those people will get a mail to their account. Which will help the people to search job easily by not wasting their time. People may get a job in good companies if they use this software.
This software is error free. Anyone can use this software . you can download this software by clicking on download below. So use this software and get more benefit from from this. If have any doubts then post your doubts below.
Front End : ASP Server
Back End : Microsoft Access
Click here to Download source code : DOWNLOAD
Project synopsis format
1. Introduction Of Project
2. Objective Of The Project
3. Scope Of The Project
4. Project Plan
5. The Existing System
6. Background Of The Organization
7. Current Problems
8. Areas For Improvement
9. Proposed System
10. Input/Output Requirement
11. Hardware And Software Requirement
12. Database Requirement
13. System Design
14. Tables And Fields For Database
15. Database Dictionary
16. E-R Diagram
17. Level 0DFD
18. Level 1 DFD
19. Security Control
20. Future Scope Of The Project
21. Conclusion
22. Reference Or Bibliography
Toshiba Announces Low Power Innovations, Presents them at ISSCC
Toshiba has developed three key technologies to overcome these challenges:
- Column CDS circuits primarily made up of area-efficient PMOS capacitors. The area of the CDS circuits is reduced to about half that of conventional circuits.
- In the readout circuits, a level shift function is simultaneously achieved by a capacitive coupling through the PMOS capacitors, allowing adjustment of the signal dynamic range between the column CDS circuits and the PGA and the ADC. This achieves low power and low voltage implementation of the PGA and ADC, reducing their power consumption by 40%.
- Implementation of a low power switching procedure in the ADC suited to processing the pixel signals of CMOS image sensors. This reduces the switching power consumption of the ADC by 80%.
Pelican Imaging Capabilities
Update: PRWeb: Pelican Imaging will be giving private demonstrations in Barcelona, February 25-28, 2013. Pelican Imaging’s camera is said to be 50% thinner than existing mobile cameras, and allows users to perform a range of selective focus and edits, both pre- and post-capture.
"Our technology is truly unique and radically different than the legacy approach. Our solution gives users a way to interact with their images and video in wholly new ways," said Pelican Imaging CEO and President Christopher Pickett. "We think users are going to be blown away by the freedom to refocus after the fact, focus on multiple subjects, segment objects, take linear depth measurements, apply filters, change backgrounds, and easily combine photos, from any device."
Scientific Detector Workshop 2013
ISSCC 2013 Report - Part 3
JHU Mark Foster Develops 100Mfps Continuously Recording Camera

ISSCC 2013: Panasonic Single-Lens 3D Imager

Aptina and Sony Support Nvidia Chimera Technology

Fraunhofer Adapts Gesture Recognition to Car Quality Control

ISSCC 2013 Report - Part 2
Bentley

INTERNSHIPS ABROAD DURING ENGINEERING COURSE
ISSCC 2013: Sony Stacked Sensor Presentation

Image Sensor Sales to Reach $10.75 Billion in 2018

Build XBMC Frodo from source in Raspbian on Raspberry PI
POST GRADUATION CHEAPLY BUT WITH MORE VALUE
Nikon DSLR Abandons OLPF
BEST COUNTRY TO DO INTERNSHIPS
ISSCC 2013 Report - Part 1
SCOPE OF PRODUCTION ENGINEERING IN INDIA
MOBILE ROBOT PROJECTS
