Wednesday, May 13, 2009

Installing Gerbmerge on Ubuntu Linux

Gerbmerge is a program to combine and place CAM data into one panel. To know more about Gerbmerge please visit the following link Gerbmerge

Although the instructions to install it on Linux are there on the above link but they didn't work quite well on my recent install because of Simpleparse. I contacted the author and he sent me the instructions to compile it. So here are they in a user friendly manner.

According to the Gerbmerge website, Gerbmerge requires following:

* Python version 2.4 or later
* eGenix mxBase tools version 2.0.4 or later
* SimpleParse version 2.0.0 or later

Ubuntu Jaunty installs Python 2.6 by default so that's not a problem. According to SimpleParse author Mike Fletcher, the current source of simpleParse includes mxBase tools so getting them from eGenix is not necessary. So in all, we just have to install SimpleParse and then install Gerbmerge.

Installation Steps


Prerequisites:
Before we install SimpleParse we have to install a few packages from Ubuntu repository.

Python-dev - to get Python.h as it is needed to compile SimpleParse
python-setuptools - SimpleParse compile needs setuptools
build-essential - Needed to compile SimpleParse
bzr - Needed to get latest snapshot for SimpleParse from LaunchPad

To install all these issue the following command on ububtu console:

sudo apt-get install python-dev python-setuptools build-essential bzr


Get and Install SimpleParse:
According to the author, get simpleparse from bzr release. CVS snapshot and the latest release don't work.


bzr branch lp:simpleparse
cd simpleparse
python setup.py build_ext --inplace --force
sudo python setup.py install
cd tests
python test.py

The above instructions will install and test SimpleParse.


Get and Install Gerbmerge:
Download Gerbmerge from http://claymore.engineer.gvsu.edu/%7Esteriana/Software/gerbmerge-1.6.tar.gz

tar zxf gerbmerge-1.6.tar.gz
cd gerbmerge-1.6
sudo python setup.py install


After installation, Gerbmerge doesn't run as it can't find site-packages/gerbmerge so couple of soft-links are needed.


cd /usr/local/lib/python2.6/site-packages
sudo ln -s ../dist-packages/gerbmerge

cd /usr/lib/python2.6
sudo ln -s /usr/local/lib/python2.6/site-packages


The prerequisites build-essential, bzr etc. can be removed at this point if needed. Now you should be able to run gerbmerge from console.

Wednesday, December 12, 2007

Installing Windows XP Pro on Gateway ML6230

How to install windows XP on Gateway ML6230

Gateway ML6230 is a entry level laptop that ships with MS Windows Vista Home Basic. Being an entry level notebook hardware, Windows Vista uses up most of the system resources so with the shipped software the whole notebook crawls. Installing XP on the same hardware eases the heavy use of resources.

To install windows XP on the laptop you would need the hardware and software ingredients which are summarized below.

Ingredients:

USB Floppy Drive. I tested with Memorex (part# 3202 3239)

The following drivers had to be downloaded from the respective URLs. It took me some time to find out the authentic URLs fro the drivers instead of just downloading
ICH7 / SATA Controller Driver
Windows XP SP2
Wired Network Interface Driver
Chipset INF Update
Video Drivers

0. Prepare the ICH7 Driver floppy
1. Install Windows XP using the ICH7 Driver Disk
2. Install XP Service Pack2
3. Install Chipset INF Update
4. Install Video Driver
5. Install wired LAN driver
6. Install Wireless LAN driver - Dbl click on the Marvell EXE file
7. Install Media card reader from c:\cabs\D20003-003-001. Double click on setup
8. Install Audio driver from c:\cabs\D00758-001-001. Double click on setup
9. Install Modem driver from c:\cabs\D00624-001-001. Double click on setup
10. Start windows update.


A note about step #1:
To install windows XP with the ICH7 driver, boot with XP CD. When prompted to specify additional driver press F6. When you use the F6 floppy and specifiy a new device when installing, you only see the following:

"Intel(R) 82801HR/HH/HO SATA RAID Controller (Desktop ICH8R)"
"Intel(R) 82801HR/HH/HO SATA AHCI Controller (Desktop ICH8R)"
"Intel(R) 631xESB/632xESB SATA RAID Controller (Server/Workstation ESB2)"
"Intel(R) 631xESB/632xESB SATA AHCI Controller (Server/Workstation ESB2)"

None of them will work.

Use arrow keys to scroll down the list and find this one:

"Intel(R) 82801GBM SATA AHCI Controller (Mobile ICH7M/DH)"

This one *will* work.

To find this I did some digging and booted with Knoppix CD. Dmesg told that the controller is ICH7 not ICH8. Later I opened the driver inf and txtsetup.oem files provided and they had 11 drivers on the list. I booted with xp again and used the driver file (F6) from the usb floppy.

Sunday, August 19, 2007

Reliving youth

When I was young I used to play Super Mario Bros. on my NES. Recently, I downloaded the emulator "NESTOPIA" on my windows laptop (Ubuntu Linux laptop has zsnes) and started with the Super Mario Bros ROM file. I still own the old Super Mario Bros NES cartridge. It seems that there is a lot that can be squeezed in a 27C256! I had opened some of the game cartridges to find that all of them were custom masked ROMs. Most of them had UMC logo. The original NES was based on MosTek 6502 core produced by Ricoh for Nintendo.

After a long time, I was glad to see the favorite welcome screen showing "Super Mario Bros" :-)

Wednesday, June 14, 2006

Tiny11 iPod Remote Control


After getting an iPod Nano recently, I was thinking about ideas for add-on. Looks like an IR remote control can be easily designed along ATTiny11-6PC and a few discrete components.

iPod uses a protocol "Apple Accessory Protocol" to control iPod. The protocol is standard 19200 baud N81. The shortform protocol specification is here.
Another place to look at the protocol is ipodlinux.org

On the receiver side, AVR410 can be used to decode RC5 IR protocol. Any RC5 compatible remote control can be used.

Overall, the Tiny11 will receive commands from the RC5 IR remote and translate the command into the Apple Accessory Protocol commands (below) 









ButtonString
Play/Pause 0xFF 0x55 0x03 0x02 0x00 0x01 0xFA
Vol+ 0xFF 0x55 0x03 0x02 0x00 0x02 0xF9
Vol- 0xFF 0x55 0x03 0x02 0x00 0x04 0xF7
Skip >> 0xFF 0x55 0x03 0x02 0x00 0x08 0xF3
<< Skip 0xFF 0x55 0x03 0x02 0x00 0x10 0xEB
End Button 0xFF 0x55 0x03 0x02 0x00 0x00 0xFB


I have used AVR410 and AVR305 seperately in the past and have achieved good results. Tiny11 iPod remote firmware is just a matter of combining the two along with a lookup table.

If I get time (hopefully), I'll try to work on this idea :-)