Ubuntu Serial Monitor



If you are working with embedded software system, you should know what Minicom is and what we need to do with the Minicom. Those who do not know anything about Minicom or have a very less idea about the embedded software system, for those I just want to write one or two lines. The answer of “why we need to use Minicom and what is the purpose of it?” is that suppose you have created one BSP image from your source code and now you want to burn the source code in your test device. Then at first you need to copy the BSP image in an SD card from your computer and then you need to insert that SD card inside the test device and then you need to burn the image in the test device. But, you need to give command to your test device though some software and that software is Minicom.

The Serial Monitor plugin lets you see all the activity initiated by other applications on a serial port — including open, close, serial setting change, control/status line. change and of course, the actual data flowing through the port. Log entries you don't care about — for example, control or status line change notifications — can be filtered out to keep the log clean. You can not get the Monitor's serial number, but you can get the make & model once X is running: you can look for it in /var/log/Xorg.0.log, e.g. Grep '-' /var/log/Xorg.0.log or in.

You can get the software Minicom from the Ubuntu software system. Just search with Minicom and install it. After installing it, the next important step is to set up Minicom. You can easily do it just by following the below instructions:

To get the communication port number of your computer, you need to type the below command:

dmesg | grep tty

You can get output either ttyS0 or ttyUSB0 according to the type of your communication port. If it is usb port then you will get USB0 and if it is just normal communication port with pins then you will get ttyS0.

Now, you need to configure the name of the communication port inside the Minicom and to do so you need to type the below command:

$ sudo minicom -s

As you are using sudo, it will ask for your computer password. Just enter your password and you will get the below screen:

You will have to select the third one which is “Serial Port Setup”. Just enter on that and you will get the below screen:

Here, you need to enter capital “A” and then you will go to the option “Serial Device”. Set up your serial device either ttyS0 or ttyUSB0 and click enter. Then you need to press E if your console baud rate (console means that console which is connected to your test device and also with your computer) is other than 115200 8N1. Then you need to enter F and then ” Hardware Flow Control ” will become NO.

Now, you need to press “Esc” and then need to drop down upto “set Setup as dfl” and press enter and when the configuration will get saved, you will have to “Exit” from the configuration. If everything is okay then your Minicom screen will look like below:

If you now turn on your test device, you will be able to get some message in the minicom screen and you will have your own instruction or command to burn the image in your test device.

Article Rating

This page is a documentation of my dealings with various touchscreen devices I've encountered. In my experience, most modern devices work out of the box with both 10.04 LTS or 12.04 LTS, but lack the proper calibration or configuration. Some older devices, especially those embedded in laptops such as GD Itronix line of rugged computers, use serial interfaces which lack the configuration to work in Linux. The methods documented here should work with other distros as well.

Global Dynamics Itronix GoBook XR-1

This is a rugged laptop I picked up from ebay for a good price, which the seller wiped with Ubuntu 10.04 due to the expense of Microsoft's Windows relicensing fee. The device has an integrated serial touchscreen, and the manufacturer is notorious for hiding any and all documentation on legacy devices such as this one. With a little trial and error however, it's relatively simple to configure this and similar devices. This method should work for most GD products, including the newer GD8000 which replaced this device. Skip to the section for configuring serial devices for these machines.

Checking for touchscreen connectivity

When encountering a new device, the first order of business is to determine how the touchscreen is connected to your computer. If the touchscreen produces no events out of the box, check to see if it's an USB device or not:

USB connection

Check the output for any reference to a touchscreen. If your touchscreen has an USB interface, and it isn't working, then you may need to blacklist the usbtouchscreen driver for it to work:

If your touchscreen begins to produce events, then you can permanently blacklist the usbtouchscreen driver:

Some touchscreens might already have good or perfect calibrations, otherwise you'll need to continue to the calibration section.

Serial connection

If there is no reference to a touchscreen device in your lsusb output, the connection is most likely through one of your serial ports. The actual IRQ mapping varies between manufacturers. In the case of Itronix devices, the default is /dev/ttyS3. A simple way to check for connections is to check each one for events:

Touch anywhere on your screen to check for any character output. If nothing happens, quit screen by pressing Ctrl+A and then the ' key to quit. Continue with /dev/ttyS1, etc. until you get a response. Once you've determined the device, we can try a few different drivers. In the case of Itronix (and most other devices using the Touchkit driver), the correct driver is touchit213.

Will work for most touchkit screens. The calibration or one or more axes may be swapped, but if the calibration is approximate then it's probably the correct driver. Press Ctrl+C to try a new mode. inputattach supports any of the following modes, which includes external touchscreens which may attach through a physical serial port:

If your device is built into a laptop, you'll have the best luck with the mtouch, touchright, touchwin, or touchit213 drivers. Likewise, non-Elo external touchscreens will most likely use touchit213. If your device is a tablet with stylus-only input, fujitsu is a popular maker of embedded tablet devices.

To attach the touchscreen at startup, edit your /etc/rc.local to look like the following:

Replace -t213 with your appropriate driver and /dev/ttyS3 with the correct device.

Again, don't worry if the calibration isn't perfect, or if an axis is inverted or reversed - this will be addressed in the calibration section.

Calibration

Thanks to the wonderful work of the freedesktop.org developers, calibration is no longer a black art in Linux. The calibration utility is included in Ubuntu 12.04 and later:

And for 10.04, there's a ppa available:

Packages and source files are available for other distros here.

The use is pretty straight forward. I had issues getting it to work properly with HAL, however this will work regardless:

Follow the instructions pressing each target, and the calibration output will be printed to the terminal. The calibration will be set immediately, but will not survive reboots. If you're using GDM, you can put the calibration command in your /etc/gdm/Init/Default. I placed calibration values for my XR-1 in both GDM and as a gnome startup script, since it uses automatic login:

Inverted/reversed axes

If your axes are swapped or reversed with the calibration output from xinput_calibrator (after a reboot or X restart), you may need to invert them explicitly, as I did with the XR-1.

Monitor

The 0 and 1 in the above command enables axis inversion for the x or y axis (0=normal, 1=invert).

If your x and y axis are swapped, use the 'Evdev Axis Swap' 1 verb:

When you're satisfied with the result, you may need to perform calibration again with xinput-calibrator.

Troubleshooting

Different modes and drivers accept different xinput options. To get your touchscreen's device name, use xinput list. Individual driver options can be obtained by using xinput list-props <device name>, where <device name> is either the device name as a string or the id= number.

After fighting with USB eGalaxy Touchscreens for a week or so the solution turned out to be quite simple. I've documented everything with photos here on Google Drive

  • https://docs.google.com/document/d/1G4oD6Y8vlyNHW6wJT89pxcjWHoETLLT-SEoAIW6_7Xc/pub

Files

You can get the files here on the website of EETI eGalax

http://www.eeti.com.tw/drivers_Linux.html

Unzip the file

Just unzip the file in the current directory

Here is a quick rundown of the steps

Ensure the Kernel Modules start on boot

Modify the file /etc/modules to add the modules usbtouchscreen and usbhid. These must come after lp and before rtc.

/etc/modules

Load the Kernel Modules (only the 1st time)

Ubuntu Serial Monitor Software

Then load the modules by hand the 1st time (or reboot)

sudo modprobe usbtouchscreen usbhid

Move the Daemon and Calibration Files

Move al the files in the folder /home/user/Downloads/eGalax/eGTouch_v2.5.4330.L-x/eGTouch64/eGTouch64withX to /usr/local/bin/ *Note the following command is one line

sudo rsync -avz /home/$USER/Downloads/eGalax/eGTouch_v2.5.4330.L-x/eGTouch64/eGTouch64withX /usr/local/bin/

Place Upstart Job

place the following Upstart job in /etc/init

Ubuntu Serial Monitor Download

/etc/init/egalaxtouch.conf

Start the Touchscreen Daemon

Start the touchscreen daemon with the following command

sudo service egalaxtouch start

Calibration

Calibrate the Touchscreen with eGTouchU

sudo /usr/local/bin/eGTouchU

Ubuntu Serial Monitor

For Dual Screen Configurations:

Follow the onscreen prompts of the config program for dual screen setup choose Left or Right mode!

Then calibrate the screen using the tools tab

Monitor

CategoryHardware

Ubuntu Serial Monitor Screen

Touchscreen (last edited 2015-05-30 10:25:36 by alan-pater)