Archive for blog
Cardash LCD cluster with RaspberryPi
Couple days ago we made road test with our new Cardash LCD. It is 12.3″ sunlight-readable LCD (1000 nits) with resolution 1920x720px, connected to Raspberry Pi. LED driver board of this LCD takes power from standard car 12V input, and provides current to LCD backlight (this beast takes 16 Watts!), and also 5V/3A to power RaspberryPi or any other computer module you want to use. RasPi reads OBD2 data from OBD2-USB adapter (can be changed to Bluetooth OBD2 if you hate wires), and output it on LCD as a normal car cluster dash. We designed open-source software for this where you can easily configure how it looks like and how it works with OBD2; add any additional gauge and designed to look exactly like your car dash display or any to your liking. It is C++ project on GitHub that uses Qt5 cross-platform framework (yes, you can run it on Windows as well). All graphics are defined with QML markup language, custom OBD2 commands processing are defined in XML file.
We are working really hard to start selling these wonderful cardash LCD kits, price is not finalized yet, but it will be around $230+ for LCD with video converter board, LED driver board, and all cables. RasPi is not included, but I guess you have couple in your drawers 😉
Refurbished products with 50% discount
We just opened the new section in our webstore with refurbished products: Refurbished products
All products are fully tested, can have minor scratches and are available with 50% discount.
Please, take note that most of them have no touchscreen functionality.
Some updates, what kept us busy
Hello, everyone!
We kept silent for many months, and we had reason for this – we were working hard on new products and will present them soon in our web store:
- First of all, we are going to offer cheap LCD solution for cheap C.H.I.P. board. We decided that $9 board deserves $19 LCD, and now preparing mass production of 4.3″ LCD with resistive touchscreen that can be directly connected to connector U13 on board with single cable. You will get high-brightness 480×272 screen with integrated touch and backlight control.
- Next news will be interesting for all new Van Goghs and Rembrandts who are in digital arts or just want to draw his cat’s portrait on PC. I’m talking about digitizer with pressure-sensitive stylus. Currently, there are several companies who offer such kind digitizers. The most famous is Wacom, plus several less known companies like Huion, VisTablet etc. Of course, Wacom is the best, but their prices are crazy. You have to sell your kidney to buy their digitizer. We are going to offer 10″ digitizer with gorgeous FullHD (1920×1080) screen based on Wacom technology that you can simply connect to your PC/notebook with HDMI+USB. Then you simply buy Wacom stylus and start your career in digital art. Price will be around $130.
- We finished development of new hardware platform called Gen2, it includes 3 HDMI boards with different LCD interfaces: LVDS, MIPI and eDP. All are compact, have convenient pin-type header for LCD cable, interface protection chips, HDMI audio decode, all required on-board voltage generators (like VSP/VSN for MIPI panels) and backlight control with 1024 steps. Boards will be available for purchase in April with cost $34.95 each. We will also offer medium size (5″-7″) FullHD LCD panels for MIPI board.
- Finally, we will offer new versions of our popular black-frame and open-frame 7″ LCD panels based on Gen2 board. The price will be the same, but you will get more robust solution with long-term support.
Follow us on Twitter @ChalkElec to get instant updates.
How to use FullHD+ LCD
Our 10″ FullHD+ LCD bundle supports 24-bits color and has WUXGA (1920×1200 px) resolution. Take note that your host board should support 1920×1200 resolution, otherwise you will get no video output.
Bundle consists of LCD panel, HDMI converter board, and LVDS cable to connect converter to LCD panel. You can also buy optional cables (miniHDMI and miniUSB), power supply to power converter and LCD, ambient light sensor for automatic brightness control, and LCD holder: 10″ FullHD+ LCD with HDMI interface
HDMI-dualLVDS converter board has the following connectors:
Connecting LCD
You should use included LVDS cable to connect LCD to HDMI converter board. Please, take care to correctly insert LCD side of cable – contacts should be on top. Use your nails or tweezers to insert cable completely into LCD connector.
Optional ambient light sensor should be connected with red wire into pin 1 on board connector:
Logic and backlight voltages for LCD are generated on board and supplied by the same LVDS cable, so you don’t need separate power supply for LCD or backlight voltage generator.
Powering LCD
LCD with converter board take up to 1.2A/5A when backlight is set to maximum value. Board and LCD can be powered either by external power supply (5V at least 2A, jack is OD=2.6mm, ID=0.65mm, positive central pin) or by USB. By default it can be powered by external supply only. For USB power you should install 0R resistor in R12 position. Check that your USB host can provide enough current. CAUTION! Do not connect external power supply when R12 is installed, it can damage your USB port.
Basic LCD functionality
We ship LCD with simple demo firmware that turns on LCD backlight and video processor when input video signal is detected. If video signal is lost, LCD backlight will be turned off. On-board LED shows status of video signal – LED is on when active video signal is detected. You can always check that hardware is working well by connecting LCD with this basic firmware into standard PC running Windows. For advanced functionality you will need to update firmware as described below.
Firmware update with USB bootloader
We constantly release new firmware for our products to extend functionality and fix possible bugs. Converter board has embedded USB bootloader for easy firmware update. To update firmware you should switch converter board to bootloader mode by shorting both pins on ambient light sensor connector with jumper, then turn on power. Green LED will light on, and you will have 3 seconds to remove jumper in order to start bootloader. Green LED will blink when bootloader is active. You should follow steps 4 and 5 of this firmware upload procedure: Firmware upload.
HID USB bootloader program for PC is available here: HID USB bootloader.
Latest version of firmware is always available here: FullHD+ firmware
Ambient light sensor and backlight brightness
Ambient light sensor is available as an option, and can measure ambient light level for automatic brightness control.
Ambient light sensor should be connected to connector J1, red color wire to pin 1 on connector. You will need latest firmware in order to get automatic backlight control. Also, with last firmware you can control backlight from your host board or PC through USB HID commands: How to control LCD backlight (USB HID)
- Maximum brightness (MAX_BL parameter) is 35 for this 10″ LCD
- Report ID for backlight control is 0
Converter board schematic
Board schematic is available here: http://goo.gl/NSWTIQ
Technical drawing of LCD
Technical drawing of LCD is available here: FullHD+ LCD drawing
See in action
Video with dualLVDS converter board and our FullHD+ LCD is available here: FullHD+ LCD with HDMI dualLVDS converter
Follow us on Twitter to get instant notification about new firmware release: Follow @ChalkElec
How to control LCD backlight (USB HID)
Starting from version 2.0 all firmwares for our LCD and HDMI converters support LCD backlight control through standard USB HID protocol.
HID report descriptor
The following HID report descriptor is used:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 0x05, 0x0C, // Usage Page (Consumer) 0x09, 0x01, // Usage (Consumer Control) 0xA1, 0x01, // Collection (Application) 0x15, 0x00, // Logical Minimum (0) 0x25, 0x01, // Logical Maximum (1) 0x75, 0x01, // Report Size (1) 0x95, 0x07, // Report Count (7) 0x19, 0x6F, // Usage Minimim (0x6F) 0x29, 0x75, // Usage Maximum (0x75) 0x91, 0x02, // * Output (Data, Var, Abs) 0x95, 0x01, // Report Count (1) 0x91, 0x03, // * Output (Const, Var, Abs) 0x25, 0x23, // Logical Maximum (35) 0x75, 0x08, // Report Size (8) 0x09, 0x71, // Usage (0x71 - Display Brightness) 0x91, 0x02, // * Output (Data, Var, Abs) 0x09, 0x35, // Usage (0x35 - Illumination) 0x26, 0xFF, 0x00, // Logical Maximum (255) 0x81, 0x02, // ** Input (Data, Var, Abs) 0x05, 0x20, // Usage Page (Sensors) 0x09, 0x41, // Usage (0x41 - Ambient Light Sensor) 0x81, 0x02, // ** Input (Data, Var, Abs) 0xC0 // End Collection |
Report usages follow recent changes in official USB HID specification proposed by Microsoft in change request #HUTRR41. Interface # is 0 for HDMI-dualLVDS converter and FullHD+ LCD bundle, Interface # is 1 for open frame/black frame 7″ LCD and for new 10″ integrated LCD. Report ID is 0 for all cases.
Packet format
Firmware accepts 2-bytes packet request from host and reply with 2-bytes packet with information about current backlight mode and ambient light level:
Only one bit can be active in command byte of request packet. If bit 5 is active (Set Brightness command), then next byte contains desired brightness level. For others commands second byte is ignored. LCD will reply with current backlight status and ambient light sensor value to any received command. To get current status without performing command you can send request with command byte equal to 0. MAX_BL is 35 for HDMI-dualLVDS converter and FullHD+ LCD bundle, MAX_BL is 18 for open frame/black frame 7″ LCD and for new 10″ integrated LCD.
How to send commands
The simplest way to communicate with HID devices is to to use cross-platform library HIDAPI from Signal11. With HIDAPI it is just several lines of code to control LCD brightness:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | #include <stdio.h> #include "hidapi.h" // Try to open HID device and return pointer to opened device hid_device* openHID() { struct hid_device_info *devs, *cur_dev; hid_device* device = NULL; int iface = 1; // We use interface# 1 for 7" and 10", and interface# 0 for dualLVDS/FullHD+ // VID=0x04D8, PID=0xF724 for 7" and 10" multi-touch firmware, interface# is 1 // VID=0x04D8, PID=0xF723 for 7" and 10" single-touch firmware, interface# is 1 // VID=0x04D8, PID=0x003F for dualLVDS/FullHD+, interface# is 1 devs = hid_enumerate(0x04D8, 0xF724); if (devs == NULL) { devs = hid_enumerate(0x04D8, 0xF723); if (devs == NULL) { devs = hid_enumerate(0x04D8, 0x003F); if (devs == NULL) return NULL; else iface = 0; } } // Walk through all enumerated devices to find one with correct interface number cur_dev = devs; while (cur_dev) { if ((cur_dev->interface_number) == iface) { device = hid_open_path(cur_dev->path); printf("Found Backlight interface at path: %s", cur_dev->path); break; } cur_dev = cur_dev->next; } hid_free_enumeration(devs); return device; } int main(int argc, char *argv[]) { hid_device* device=NULL; unsigned char buf[3]; buf[0] = 0x0; // Report ID (0) buf[1] = 0x04; // Command (0x20 - Set Backlight) buf[2] = 9; // Backlight value for command Set Backlight hid_init(); device = openHID(); if (device == NULL) { puts("Can't find USB device with interface for backlight"); return -1; } hid_set_nonblocking(device, true); printf("Writing bytes: %02X,%02X,%02X\n", buf[0], buf[1], buf[2]); if (hid_write(device, buf, 3) == -1) { puts("Error writing bytes to device!"); hid_close(device); return -1; } if (hid_read_timeout(device, buf, 2, 100) == -1) { puts("Error reading bytes to device!"); hid_close(device); return -1; } printf("Received bytes: %02X,%02X\n", buf[0], buf[1]); return 0; } |
Above example is universal and will work with all our products with USB backlight control feature.
GUI application for LCD control
Cross-platform GUI application to control different LCD settings including brightness is available here:
LCD control GUI
You will need Qt framework to build it from sources.
See in action
Video with backlight test using our dualLVDS converter FullHD+ LCD is available here: Backlight test video
Follow us on Twitter to get instant notification about updates: Follow @ChalkElech
How to use HDMI-dualLVDS converter
Our dualLVDS converter has two LVDS channels and supports 24-bits color panels with up to WUXGA (1920×1200 px) resolution. It also has on-board configurable backlight voltage generator and microcontroller with USB interface. We offer this converter as a standalone product, and also in bundle with 10″ WUXGA panel.
DualLVDS converter board has the following connectors:
Powering board
Converter board alone takes up to 0.4A current in active mode, with connected 10″ FullHD+ current goes up to 1.2A when backlight is set to maximum value. Board and LCD can be powered either by external power supply (5V at least 2A, jack is OD=2.6mm, ID=0.65mm, positive central pin) or by USB. By default it can be powered by external supply only. For USB power you should install 0R resistor in R12 position. CAUTION! Do not connect external power supply when R12 is installed, it can damage your USB port.
Backlight voltage generator
Converter has on-board configurable backlight voltage generator that can deliver up to 35V/1A. Backlight voltage can be set with R3, R11 resistors (see above picture for formula). We supply boards with default 24V backlight voltage. Take note that R11 should be in 5K – 20K range. If LCD backlight takes more than 3W, then U6 and L1 inductor can have temperature up to 100C degree. In this case you should use additional heat sink to avoid overheating.
LVDS cable
If you buy standalone board, then you will need to make your own LVDS cable for your LCD panel. We supply mate housing connector and 50 pcs of pin terminals together with board, they can be crimped to cable wires with AWG #32 crimp tool. We recommend using PA-09 crimp pliers, it has affordable price and provides high quality results. Below is pinout of LVDS connector, PDF version is available here: dualLVDS board pinout.
Pins GPIO_xxx are connected directly to PIC microcontroller and can be used to control different functions of LCD. We ship board with our standard example program (see source code below) that uses pin GPIO_RA5 to turn on LCD backlight when input video signal is detected. If video signal is lost, LCD backlight will be turned off. Also, pin GPIO_RC5 is connected to PIC PWM generator, and can be used to control brightness of LCD backlight.
Update of EDID information
We supply our converter board with pre-loaded EDID data for our 10″ FullHD+ LCD (resolution 1920×1200 px). You will need to update EDID information in converter in order to use it with your own LCD. EDID update procedure is described here: How to program custom EDID data in HDMI converter
Firmware update with USB bootloader
Board is supplied with embedded USB bootloader for easy firmware upload. To update firmware you should start board in bootloader mode by shorting both pins on ambient light sensor connector with jumper, then turn on power. Green LED will light on, and you will have 3 seconds to remove jumper in order to start bootloader. Green LED will blink when bootloader is active. You should follow steps 4 and 5 of this firmware upload procedure: Firmware upload HID USB bootloader is available here: HID USB bootloader. You can use firmware for our FullHD+ LCD bundle for your own LCD projects, latest version of firmware is available here: dualLVDS/FullHD+ firmware
Building PIC firmware
To build own PIC firmware you will need MPLAB.X environment from Microchip with XC8 compiler: MPLAB X, XC8 compiler.
Bootloader occupies the program memory region 0x000-0x903. The application firmware is supposed to occupy the 0x904-[end of flash] region of program memory.
Here are two linker setting changes that are required for the application project:
- Under the build configuration–>XC8 global options–>XC8 linker–>Option categories:Additional options the “Codeoffset” must be set to: 0x904
- Under the build configuration–>XC8 global options–>XC8 linker–>Option categories:Memory model, the “ROM ranges” must be set to: default,-0-903
In addition to the above, make certain that all configuration bit settings between the bootloader firmware project, and the application firmware project, match 100% exactly, see our example firmware for details:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #include "typedefs.h" __CONFIG(FOSC_INTOSC & WDTE_OFF & PWRTE_ON & MCLRE_OFF & CP_OFF & BOREN_ON & CLKOUTEN_OFF & IESO_OFF & FCMEN_OFF); __CONFIG(WRT_OFF & CPUDIV_NOCLKDIV & USBLSCLK_48MHz & PLLMULT_3x & PLLEN_ENABLED & STVREN_ON & BORV_LO & LPBOR_OFF & LVP_OFF); #define _XTAL_FREQ 48000000 // Frequency of crystal (INTOSC in our case) void main(void) { OSCCON = 0xFC; // 3x PLL enabled from 16MHz HFINTOSC ACTCON = 0x90; // Enable active clock tuning from USB while(OSCSTATbits.PLLRDY == 0); // Wait for PLL ready/locked ANSELAbits.ANSA4=0; TRISAbits.TRISA4=1; // Define SCDT In pin (input) LATAbits.LATA5=0; TRISAbits.TRISA5=0; // Define SCDT Out pin (output, default to 0) LATCbits.LATC5=0; TRISCbits.TRISC5=0; // Define PWM pin (output, default to 0) LATCbits.LATC3=1; TRISCbits.TRISC3=0; // Define LED pin (output, default to 1 - LED Off) while(1) { // If video signal is detected if (PORTAbits.RA4) { LATAbits.LATA5=1; // Enable video outputs LATCbits.LATC5=1; // Enable backlight (PWM=1 - max. brightness) LATCbits.LATC3=0; // Turn LED On } // If video signal is lost else { LATAbits.LATA5=0; // Disable video outputs LATCbits.LATC5=0; // Disable backlight (PWM=0 - turn off backlight) LATCbits.LATC3=1; // Turn LED Off } } } |
Ambient light sensor and backlight brightness
Ambient light sensor is available as an option, and can measure ambient light level for automatic backlight control.
Ambient light sensor should be connected to connector J1, red color wire to pin 1 on connector. Light level is available as a voltage in range 0 (dark) to 2.5V (max. light) on pin RC2 (ADC channel 6) of PIC microcontroller. Backlight brightness can be controlled with help of PWM signal on GPIO_RC5. Additional information about backlight control through USB HID commands is available in this how-to: How to control LCD backlight (USB HID)
Board schematic
Board schematic is available here: http://goo.gl/NSWTIQ
See in action
Video with dualLVDS converter board and our FullHD+ LCD is available here: FullHD+ LCD with HDMI dualLVDS converter
Follow us on Twitter to get instant notification about new firmware release: Follow @ChalkElec
Unpleasant surprise from Molex and Mouser
We just finished shipping out all pre-sale orders for our new integrated 10″ LCD, and finally I have time to tell you whole story.
As you know, we expected to ship out all pre-orders end of October – beginning of November. First delay came from Malaysian customs department. They like to withhold shipments with new LCD p/n that is not in their database, and change HS code to the wrong one. DHL customs agent can’t help in situations like this, and we travel to airport, talk to customs officer, prove him that panels are to be used in computing applications, not in TV because of touch screen, no audio input, etc. They consider, then refuse, and we repeat this procedure several time until we meet up with the customs director to tell the story. Then they change to correct HS Code and release shipment.
Well, finally panels were received and we started with assembling process. PCB have been assembled already and successfully tested on our test prototype by production guys. So, we expected simple and fast procedure of assembling boards with LCD, final test and shipping out. How wrong we were! 2/3 of boards were returned from assembly back to production with “QC no pass” sign. Well, production tested these boards again and found out that video processor is dead for unknown reason. They repaired boards and send them back to assembly. And they again failed during assembly process! We got emergency case, and I cancelled my conference trip to get back to office and check situation myself. Indeed, problem magically arise in assembly room – assembled and tested boards simply die during assembly. We checked everything: LCD panels, every component on our board, connectivity, reflow profile, solder paste, ESD equipment used during assembly. Everything was OK, but board still randomly died during assembly process.
Source of problem has been found also accidentally. We received new stereo microscope for production, and after thorough inspection of own nails and killed fly, our technician put Molex FPC cable under microscope just for fun – and source of problem has been found! Half of FPC cables that we used to connect LCD to our board had shifted contacts! Cable has very fine pitch – just 0.3 mm, and shift was about 0.1 mm – its impossible to notice using standard magnifier that we used for manual inspection and we didn’t think we have to check Molex brand cable received from Mouser under microscope!
Due to this shift, we got accidental shorts between neighbor contacts by FPC connector contacts. As a result, video chip simply die. Around 60% of cables were affected. By chance, production used good cable for tests, and assembly used the rest of cables from purchased batch. That’s why boards worked during post-production tests, but accidentally failed during assembly final test.
Finally, we sorted out our problem, and now assemble next batch of panels to open stock. Good lesson has been learned – always perform QC to ALL components – even if they are from brand companies like Molex and came from “trusted” sources like Mouser!
How to use our new 10-inch integrated LCD
Prerequisites
For first startup you will need:
- 10″ integrated LCD panel
- miniHDMI cable (available as an option)
- 5V/2A power supply, jack is OD=2.6mm, ID=0.65mm, positive (+) central pin (available as an option)
- miniUSB cable for touchscreen (available as an option)
LCD control board is fixed on the back side of LCD and connected to LCD panel by FPC cable:
Powering LCD
LCD with control electronics takes around 1.2A current when backlight is set to maximum value, and it can be powered either by external power supply (5V/2A, jack is OD=2.6mm, ID=0.65mm, positive central pin) or by USB. Power mode is selected by installing one of 0R resistor – R6 for normal power supply or R7 for USB power. CAUTION! Do not install both resistors at once, because this can damage USB port on your computer.
By default we supply LCD with R6 installed, therefore you will need external power supply to run LCD. For USB power you should change 0R resistor from R6 position to R7 position, and make sure that your USB port can continuously provide at least 1.2A current. Power consumption can be significantly decreased by lowering backlight level.
Firmware upgrade
We constantly add new features and provide bug fixes by releasing new firmware for our LCD panels. To update firmware you should start LCD in bootloader mode by shorting pins 5 and 7 on extension header before switching on power, then follow this firmware upload procedure: https://www.chalk-elec.com/?p=1826
New firmware for this 10″ panel is available here: http://goo.gl/wg8WY5
Follow us on Twitter to get instant notification about new firmware release: Follow @ChalkElec
Capacitive touchscreen
LCD touchscreen is based on capacitive technology with up to 10 fingers support, and can work in two modes depending on programmed firmware: single-touch mode and multi-touch mode. We supply LCD with default single-touch mode, because it can work without drivers with any USB host. For multi-touch mode you will need to follow firmware upgrade procedure described above and update Linux/Android kernel as per this How-to: https://www.chalk-elec.com/?p=2028
Ambient light sensor and backlight control
Starting from version 2.0 firmware for our 10″ integrated LCD supports LCD backlight control through standard USB HID protocol and automatic backlight control with optional ambient light sensor. Ambient light sensor should be connected to connector J1, red color wire to pin 1 on connector (pin 1 is marked with white dot). Additional details about backlight control from your host board or PC through USB HID commands are available here: How to control LCD backlight (USB HID).
- Maximum brightness (MAX_BL parameter) is 18 for this 10″ LCD
- Report ID for backlight control is 0x01
Capacitive button
To be added.
How to get multi-touch working (Linux and Android)
All of our panels come with USB HID multi-touch controllers and are supported by standard “hid-multitouch” driver available in mainline Linux/Android kernel.
If your system already has this “hid-multitouch” driver available as a kernel module, then you can easy add multi-touch support by adding the following commands to your /etc/rc.local file (before “exit” statement):
1 2 | modprobe hid-multitouch echo W X Y Z > /sys/module/hid_multitouch/drivers/hid\:hid-multitouch/new_id |
where
- W – is USB bus number of touchscreen USB, can be figured out by “lsusb” command
- X and Y – are VID and PID of touchscreen USB, also can be figured out by “lsusb” command
- Z – is 1 for 7″ and 10″ panels, and 259 for 14″ and 15.6″ panels
If your system has no “hid-multitouch” driver compiled, then the following steps are required to get multi-touch working:
- Download kernel sources for your board.
- Modify hid-multitouch.c file, located in kernel/drivers/hid/ folder.
- Re-build the kernel with the HID-MULTITOUCH option enabled.
- Create an IDC (Input Device Configuration) file (required by Android only).
Let’s consider these steps in more details.
- Modify hid-multitouch.c file
First of all, you should download kernel sources and default kernel configuration file for your board. Then, you should go to kernel/drivers/hid older and find there file hid-multitouch.c. This files contain VID:PID values of USB touchscreens that will be processed by hid-multitouch driver. And we should add VID:PID of our touchscreens there. They are:- 04D8:F724 for 7″ and new 10″ touchscreens
- 0EEF:A107 for 14″ touchscreen
Open file hid-multitouch.c, find mt_devices[] struct and insert the following code at the beginning of this structure define:1
2
3
4
5
6
7
8
9static const struct hid_device_id mt_devices[] = {
/* Chalkboard Electronics 7" and 10" */
{ .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(0x04D8,0xF724) },
/* Chalkboard Electronics 14" */
{ .driver_data = MT_CLS_DEFAULT, HID_USB_DEVICE(0x0EEF,0xA107) },
// here the rest of definitions comes - Re-build the kernel with the HID-MULTITOUCH option
Type “make menuconfig” to configure the kernel, then go to Device Drivers -> HID Devices -> Special HID drivers -> HID Multitouch panels and select it as an embedded driver (*). Save the kernel configuration and compile it to make a zImage kernel file. Transfer the zImage file to your board.
- Create an IDC file
This final step is required for Android only in order to match the resolution of the touch panel to HDMI. Create a plain text file as below:1
2
3
4
5
6
7
8
9touch.deviceType = touchScreen
touch.orientationAware = 1
device.internal = 1
keyboard.layout = qwerty
keyboard.characterMap = qwerty2
keyboard.orientationAware = 1
keyboard.builtIn = 1
cursor.mode = navigation
cursor.orientationAware = 1The file name must be Vendor_xxxx_Product_yyyy.idc, where xxxx is VID of panel, and yyyy is PID of panel. The filename is case sensitive!In our case, you should use filename Vendor_04d8_Product_f724.idc (7″ and 10″ panels) or Vendor_0eef_Product_a107.idc (14″ panel). Now copy the IDC file to your Android board (Android must be rooted) with the following commands (substitute Vendor_xxxx_Product_yyyy.idc with real file name):
1
2
3
4
5
6adb shell
su
mount -o rw,remount /system
[Ctrl-C]
adb push Vendor_xxxx_Product_yyyy.idc /system/usr/idc/.
adb reboot
That’s all. Now you should get multi-touch support working.
Maker Villa Penang
Couple weeks ago our sales Andrew participated in maker camp on Penang island, Malaysia and I asked him to tell a little bit about this event.
This was our first participation in the Maker Villa and we were one of the proud sponsor of the event held at Ren-i-Tang, a historical Chinese herb medicine shop turned hotel located at the heart of the UNESCO world heritage site in Penang. It is a great venue for such a cool event.
We were introduced to some delicious local food like char kuey teow, mee sotong, asam laksa before heading to the museum to learn about the history of Penang which is diverse and rich in culture.
The event kick started with the MakerFilm Viewing after a sumptuous dinner at Via Pre restaurant. This video is a compilation of the maker's story which moved our heart deeply.
The next 2 days were packed with workshop and talks given by indusry gurus that gives strong support on the Maker movements. They were held at Penang Science Cluster. Makers were busy sharing their ideas and brainstorming on issues.
I had the privilege to exchanges some ideas and explain about what we do with Maker Yoda (Mr. Yun)
I have also been very busy demonstrating our LCD touchscreen to friends that I make in this event. Everyone seems to be having fun.
There were also sharing sessions by William our organizer on the Maker movement.
Curry Khoo, a starup facilitator that help future technopreneurs making their dream come true. He also shares a lot of his experience along the way.
Overall, it was a great event and I have made a lot of friends here. One more thing, there will be a Penang Mini Maker Faire on 15 Nov to bring more makers out, showcase their stuff and ideas.We would be happy to meet you there!