Sunday, May 18, 2008

Embedded System LCD PC Software Links

Microchip is now offering a free Graphics LCD library for use
with PIC24/dsPIC/PIC32. It also has support from 3rd parties
like Segger and Ramtex.

Segger has emWin which is very powerful but not cheap.

Ramtex has the Font Editor and Graphic libraries for popular LCDs.
They have GLCD simulator as well. They are one of the partner for
Microchip's Graphic Library.

This Chinese guy has a nice software called LCD Font Maker which
only cost US$. It supports many languages including Chinese.

Atmel has the free LCD editor and LCD plug-in for AVRstudio.

Pocket MicroTechnics has the GLCD Font Creator and plugins
for SawFish/Proton Basic compiler and MikroElektronika
mikroBasic/Pascal/C compilers.

This website has a free GLCD font generator which exports
to C compilers like WinAVR and Codevision or similar.

This website has free Simulator for LCDs.

lcdproc is a nice project for Linux/BSDs.

There are also many examples on the internet about using
LCDs, Graphics LCDs, OLED displays with Microcontrollers.

Thursday, May 15, 2008

My first two simple Linux USB patches got accepted

I am basically a non-programmer. However I am interested in learning
USB and I like to support Open Source software and spend my
spare time doing testing or helping with the documentations
for some projects (piklab, pk2, pk2cmdLinux, libusb, openusb,
libusb-win32, pyusb, HPS USB stack for FreeBSD, etc).

I just submitted two trivial patches to the Linux kernel. They both
got accepted.

1) USB HID Quirk Patch: add Microchip PICKit 1 and PICkit 2

2) USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb

Sunday, May 11, 2008

libusb 1.0 and libusb-compact-0.1 now usable

Thanks to Daniel Drake's hard work, now libusb-1.0 and libusb-compact-0.1 seem to work well enough for many applications now.


Git: (use "git clone" to get the initial clone and then use "git pull" to update)

You need to use the latest version of both.

I've tested it with pk2cmdLinux ( and fsusb_demo (

Thursday, May 8, 2008

Windows XP SP3 Installed

I spent some time to find the links from Microsoft website but to no avail (I found one
checked build version but that is not what I want).

Google found this one.

Downloading the 316MB Windows XP SP3 is pretty fast here from my Starhub
8Mbps cable online service.

Its installation is faster (on this slower desktop) compared to Vista SP1 (on
the faster notebook). The installation is pretty smooth as well. I have done
a few tests with Microchip MCU development tools (MPLAB, ICD 2, PICkit 2
and USB Stack V2.1) and all are running fine.

Saturday, May 3, 2008

Ubuntu Launchpad Account Created

I've been a happy Ubuntu user since Ubuntu 5.04. Now I am running Ubuntu 8.04 along with 6.06 and 7.10.

Today I created my Launchpad account to report that an existing bug with 7.10 still exists in 8.04.

I am not a software developer but I think I can be of some help when it comes to testing.

Ubuntu 8.04 First Impression

I installed Ubuntu 8.04 last week. The first impression was not good since it hangs after initial bootup. This reminds me of OpenSuse 10.3 after enabling compiz. So I boot into Gnome Fail Safe Session and disabled Visual Effects (and actually removed compiz) and then reboot. This solved the problem.

Other than this initial glitch, it seems to be quite smooth and solid, not like the initial bump with Ubuntu 7.10 (7.04 was flawless, 6.06 is solid). I was able to set up my usual testing environment and build various PIC or USB related programs from the CVS/SVN source pretty fast and all of them seem to work fine.

On the other hand, there are no nothing too special with Ubuntu 8.04. Maybe this reflects my simple usage pattern with Linux.

Friday, May 2, 2008

Vista Problem Solving Part 2: Vista SP1 installed

I tried to update the Vista installation using Windows updates but it was not there. Therefore I just downloaded the stand-alone x86 installation. It was quite fast to download the 400M+ file from my 8Mbps Starhub Cable Online (I believe Starhub is Microsoft Singapore's ISP). The installation took quite a while (about 50minutes) and finally it was finished without incident.

I will still need to check if it helps on the stability of the computer. One problem my wife has is the stability with Windows Media Player (or the alternative Media Player Classic) when viewing RealPlayer files (rm or rmvb files). I do not want to install RealPlayer since it has caused problems in the past.

Vista Problem Solving Part 1: Excel has stopped working

My wife now has more and more complains about the Vista notebook we bought on Christmas day of 2007 (

The biggest complain is that often Excel will often say that it has stopped working if she double-clicks an Excel file to open it. She has to open Excel and then open the file from within Excel.

Google found the solution.

Quote what johnko99 wrote:
Click "start" - the button down left to your screen Select "run" and type "regedit".
Click OK. The Registry Editor opens in a window.

In the registry editor locate the following: HKEY, LOCALMACHINE, SOFTWARE, MICROSOFT, OFFICE, EXCEL, ADDINS, BtOFFICEAddin.BtOFFICEIntegration.1

Under label "Name" there should be a line: "Lodbehavior". Now in the same line under "Type" there should be REG_DWORD" and under "Data" there should be "0x0000003 (3)" or something similar as far as the last digit is concerned (in this case 3).

Behold, you are close to the solution... Change the last digit AND the one in brackets (in my case 3) to read 0! In my case under "Data" now reads "0x0000000 (0)".

That's it!!!!!!!!!!!!!!! Close the registry editor and restart the computer.

Your Excel now is working perfectly!

This is the perfect solution to this problem. The forum mentioned Excel 2007 and Excel 2003. Actually it works for Excel 2000 as well.

Thursday, May 1, 2008

pk2cmd Linux Port under PCLinuxOS 2007

Here is a mini-howto to get pk2cmd Linux port to work under PCLinuxOS 2007.

1) Download pk2cmdLinux from Jeff Post's website.
Download link:

Edit in 09/2009: new download link

As of this writing, the version is 0.8.

2) Preparation to get pk2cmd working is easy under PCLinuxOS 2007.

You need to have g++ (provided by package gcc-c++) and make (provided by package "make"). You also need to install libusb-devel package. You can use Synaptic (GUI) to install these packages and their dependencies. You can also use apt (apt-get install libusb-devel) as root to install this package.

3) Edit the Makefile and then build it using make.
You need to edit the Makefile to to define the proper CFLAGs.
PCLinuxOS 2007 is usingLinux kernel 2.6.x and support udev rules. So we will use the following option.

# ----- Use the following for Linux kernel 2.6.x: -----

Now we can build pk2cmdLinux. Just type "make".

4) Test it as root and it should just work.

5) In order to run pk2cmdLinux as a normal user, we need to set up udev rules. PCLinuxOS 2007 has done the udev rules for the users. So it is easier than other Linux distros. The only thing you need to do it to add you user name to the group "usb".

Go to PCLinuxOS Control Center and choose "Add, remove or change users of the system", right
click your user name and choose "Edit" and select "Groups". Check "usb" and you are done.

To confirm this, run "group yourusername".

[mcuee@localhost pk2cmdLinux-0.8]$ groups mcuee
mcuee : mcuee tty lp wheel uucp cdrom usb cdwriter audio video users

[mcuee@localhost pk2cmdLinux-0.8]$ lsusb
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 04d8:000c Microchip Technology, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 04d8:0033 Microchip Technology, Inc.
Bus 001 Device 001: ID 0000:0000

[mcuee@localhost pk2cmdLinux-0.8]$ ls -la /dev/bus/usb/001/
total 0
drwxr-xr-x 2 root root 80 May 1 09:09 ./
drwxr-xr-x 5 root root 100 May 1 2008 ../
crw-rw---- 1 mcuee usb 189, 0 May 1 2008 001
crw-rw---- 1 mcuee root 189, 1 May 1 09:12 002

Now you can run pk2cmd as a normal user.

[mcuee@localhost pk2cmdLinux-0.8]$ ./pk2cmd -?V

Executable Version: 1.01.00 (Linux/Mac port 0.8)
Device File Version: 1.42.00
OS Firmware Version: 2.30.01
Operation Succeeded

[mcuee@localhost pk2cmdLinux-0.8]$ ./pk2cmd -PPIC16F690 -I -T
Device ID = 1403
Operation Succeeded

[mcuee@localhost pk2cmdLinux-0.8]$ ./pk2cmd -PPIC16F690 -GFdemo.hex
Read successfully.
Operation Succeeded

[mcuee@localhost pk2cmdLinux-0.8]$ ./pk2cmd -PPIC16F690 -Y -Fdemo.hex
PICkit 2 Verify Report
1-5-2008, 9:42:03
Device Type: PIC16F690

Verify Succeeded.
Operation Succeeded