How to Install Win95 on an iPad

This tutorial will teach you how to install Windows 95 on your iPad. It runs on an emulated environment so performance is very bad. This is just a proof of concept, not a practical application.

IMG_0086 copy

Windows 95 booting up on the iPad.

Things you’ll need:

  1. Mobile Terminal. You can get this from Cydia (source:
  2. bochs.deb file.

Installation Instructions:

  1. Transfer the bochs.deb file that you have downloaded to /tmp on your iPad. You can use WinSCP.
  2. Run Mobile Terminal on your iPad.
  3. Type “login” and login to “root” using password “alpine” (if you haven’t changed it).
  4. Type “dpkg -i /tmp/bochs.deb“. This will install bochs.
  5. Once installation is complete, type “killall SpringBoard” to restart springboard. Capitalization is important.
  6. You will see a new bochs icon on your iPad. Run it.

IMG_0092 copy

IMG_0093 copy

Bochs comes “pre-installed” with Win95 and Win3.11.

IMG_0090 copy

Everything works. You scroll around using the touch screen.

IMG_0088 copy

Resolution support is bad though.

IMG_0091 copy

Solitaire is not a game that you want to play on an iPad.

Although booting Windows 95 on an iPad is cool, it’s not very practical. The emulation is very slow and it takes almost 3 minutes to boot Windows 95. Performance in Windows is also sluggish. I would estimate that the emulator is capable of about 33Mhz of CPU speed because it feels slower than my very old computer (66Mhz DX2).

Here’s someone doing the installation and demoing it:

Cheap Analog Signal Acquisition for PCs

There are times when you’ll need to read analog signals and pass them to a computer to process or display. Analog signal acquisition cards are usually expensive and not suitable for hobbyist on a budget. So if you’re not running mission critical systems requiring ultra fast and accurate updates, here’s a very cheap and easy solution to getting your analog signals into your computer.

This idea came to me when I was looking for a USB interface card for my CarPC. Unfortunately for me I have a very old car that doesn’t support the current OBDII system so I have to hardwire everything to get their status. I needed the status of the fans, coolant temperature, compressor clutch, and a host of other parameters to feed my obsession for information that I don’t need and to distract me from the road ahead. While looking for a cheap and easy way to get all these information (PICs, etc.) I stumbled upon cheap China made USB controllers. And since USB is pretty much standard with every computer, I was sold.

First off, you will need an analog USB joystick. You can probably see where this is heading. The reason is because USB joysticks are so cheap that it makes sense to experiment with them. Besides analog inputs, you get discrete inputs too with these joysticks. You can grab some of these joysticks from the links below:

Note: I would recommend the gamepad type because there are 4 analog inputs as compared to only 3 for the joystick. Get the cheapest analog controller you can possibly find. Warranty is not an issue for obvious reasons.

DSC_0004 copy

This controller from a local computer store cost me RM23 ($8) only. It has about 20 discrete inputs (buttons) and 4 analog inputs and also a vibration unit inside.

First thing you’ll want to do when you get your controller is to plug it into the computer and check if it works. If not you still have the option to return it to get a replacement. Once you are satisfied with the condition of the controller, it’s time to have some fun. Take out your screwdriver set and tear it open.

DSC_0006 copy

Here you’re looking at the analog  joystick board (green). All the connections that you need can be tapped from here. If they are 4 axis of analog control, you will have 4 inputs from here.


The  red squares show where the 4 potentiometers are. The red circle shows the input connections. The 5V and ground reference is there also.

DSC_0009 copy

Measuring the supply voltage to the potentiometers. As expected, it was 5v (USB powered)

So basically the controller works as follows:


Looking at the diagram on the left, with a supply of 5v and ground, the potentiometer divides this and gives an output that varies between 0-5v. So depending on where the potentiometer is positioned, the output voltage to the joystick’s controller input can be anywhere from 0v to 5v. The joystick controller then reads this voltage and gives a reading to the computer.

DSC_0015 copy

An externally connected potentiometer is used for testing. The purple wire supplies the 5v, blue wire supplies the ground and green wire is the input. A capacitor is connected between the input and ground because the readings were “jumpy”, probably due to external interference.

So if the potentiometer is turned all the way down, the input to the joystick controller will be 0v. The joystick will then send a “full left” (or “full right” depending on the design) to the computer. If we turn the potentiometer all the way up, the input to the joystick controller will be 5v. The joystick will then send an opposite signal to the computer, telling it that they joystick has now been moved all the way to the other direction.

If the potentiometer is turned somewhere in between, it might give a signal of 3v. The joystick controller will then interpret this and tell the computer where the joystick location is.

If you have managed to follow the explanation above, you’ll see why we can use this to measure analog voltages. We can theoretically apply a voltage to the analog input of the joystick controller and the joystick will send that signal to the computer. I say theoretically because that is not exactly the case in real life, as you will see below:


This is the software that reads the joystick input. It’s written in C# and it can be downloaded from along with the source code. I’m not an expert in C# so please direct your C# questions to someone else. But a little reverse engineering and trial and error should help you modify the source sufficiently for your own use.

I disconnected the potentiometer and instead connected the input to 2 different batteries, one at a time:


When I connected it to the Li-ion battery of 3.86v (measured with a voltmeter), it gave me a reading of 62154.


When I connected it to a AAA battery of 1.5v, I got 8191. If we assumed that 0v will show zero on the computer and 5v will show 65535 then the readings will not make sense. For example:

Input Voltage = (Axis Value / 65535) x 5v

In the case above, we got 8191 for the 1.5v battery. So if we substitute that into the formula above, we’ll get:

Input Voltage = (8191/65535) x 5v = 0.6249v (which is obviously not the voltage of the 1.5v battery)

So it seems that the joystick controller only reads a certain range of voltage, with dead zones at both the upper limit and lower limit. Hence, we need to calculate those values. We have 2 variables to figure out: the lower limit and the range. Upper limit is not required to get the correct voltage reading. We already have 2 samples to work with from above (the li-ion battery and 1.5v AAA battery). By using simple high school maths, we can then calculate for the 2 unknowns:


Note: the AAA battery was at 1.49v.

From here, we know that the lower limit is 1.1431v. So anything below this, the joystick reads as zero. Also, we now know that the joystick only reads a range of 2.8647v. That’s not a lot to play with. But it’s sufficient.

So now with the unknowns calculate, we can write our equation for this joystick:

Input Voltage = 1.1431 + (Axis Value / 65536) x 2.8647v

To test the equation, we use the example of the 1.5v battery again:

Input Voltage = 1.1431 + (8191 / 65535) x 2.8647v = 1.5011v

Now the value of 1.5011v looks more convincing.

DSC_0012 copy

From here, you can tap the other analog inputs. And using the values acquired from the equations, you can write your program to display the values in voltages instead of unintelligible numbers like 8191.

If you need to read more range or higher voltages, just use a voltage divider network.

Of course, if you require better resolution, you can always go for the commercial devices, like the one shown below:

That’s about all that you need to know on how to make a cheap and easy analog signal acquisition device for a computer. If you have questions, comments or suggestions feel free to leave them in the comments section below or send me an email.

How to Drive into Singapore

There are several reasons why you might want to drive into Singapore. It is very easy for Malaysian cars to enter Singapore. This guide is to help you make your journey down as trouble-free as possible. But before you begin a long journey, check out the Driving Checklist and ensure that your car is safe to drive first.


I made 2 crucial mistakes when I first drove into Singapore:

  1. Forgot to top up my fuel tank in Johor.
  2. Forgot to change Singapore Dollars.

Luckily I didn’t have to drive in Singapore so fuel wasn’t a problem. Took the cab most of the time and used my aunt’s car. As for the lack of Sing Dollars, I was fortunate enough to meet 2 friendly Malaysian couples who exchanged 10SGD for me to pay for the Autopass card.


To avoid jams, try not to enter Singapore between 6am-9am on a weekday. That’s when everyone is rushing to work and you do not want to get caught in the jam.

Get the following items ready when you approach the Tuas or Woodlands checkpoint:

  1. Passports for everyone in the car
  2. Filled disembarkation/embarkation forms for everyone in the car (can be filled at the checkpoint too if you don’t have one)
  3. Autopass card for your vehicle (can be obtained at the checkpoint if you don’t have one)

Disembarkation / Embarkation Forms

sg entry card

This form must be filled everytime you enter Singapore. Forms are available free of charge from the checkpoints and travel agents. One portion of this form must be kept and surrendered when you leave Singapore.

Autopass Card

DSC_0177 copy

This is an Autopass card. You will need this to drive your car into Singapore. The Autopass card is a prepaid card that can be used to pay for parking and tolls.

If you do not have one, you will have to park your vehicle and apply for one at the checkpoint office. Do take note of your car’s road tax expiry date and make sure that it has not expired.

DSC_0180 copy

Take note of the expiry date because they will need that information.

To apply for the Autopass you will need to fill up a form and pay SGD10. The card costs SGD6 so you will have SGD4 preloaded in your card. The Autopass card is NOT TRANSFERABLE. Also do take note that foreign registered vehicles have 10 free VEP (vehicle entry permit) days to drive in Singapore. After the 10 days are used up, it’s SGD20 per day.

Once you have applied for the card, you can then drive your vehicle into Singapore. When driving in Singapore, especially for Malaysians, the speed limit is indicated by the number in the red circle and you actually have to follow them. Also, pedestrians have the right of way at a zebra crossing. Red lights on the traffic light means stop, as opposed to go. Yellow means prepare to stop, as opposed to accelerate.

By following the above rules, you are guaranteed to have a fun and enjoyable drive (minus the jams) in Singapore. Good luck!

Peltier cooler

About a week ago, I have never heard of such a thing called a peltier cooler. When my housemate bought a CPU cooler that cools using electricity from lowyat, I was very surprised and amazed. I kept thinking to myself on the way back home how such a thing can work. I’ve heard of using compressors and feron gases to produce subzero temperatures. But using electricity alone? You can imagine my curiousity.

Subzero 4G for rm50 at lowyat.

The main component of this cooler is the peltier plate. It’s a plate that, when voltage is applied, creates a a temperature difference between its top and bottom plate. In short, when electricity is applied, the top plate becomes hot and the bottom plate becomes cold.

The peltier plate.

The peltier plate does this by transferring heat energy. And the interesting thing is that if you reverse the polarity, the hot and cold sides will switch. The more interesting thing is that if you apply more voltage, it gets colder.

Stuff that came in the package. Heatsink with peltier plate, casing fan, microcontroller to control the temperature.

The peltier cooler.

This thing is very cold when running. It’s not like normal cool, but it’s cold. It’s like touching ice. If you can’t take my word for it, look at the picture below.

You can see drops of water forming on the plate due to condensation!

This peltier technology has been around for a long time. It’s just that it’s not too pratical for some applications because it’s not very efficient. Anyways, some links for further reading:

Peltier coolers

The heatsink guide – Peltier cooler information

Peltier beer cooler

A really cool piece of gadget. Pun intended.

UPDATE: How to make ice using your peltier cooler.

Put something hot on it and ice will form. Continue reading

New Eten M600 PDA phone

I went to Midvalley yesterday and bought a new bluetooth enabled phone, camera, mp3 player, video player, 1GB of storage and a wifi enabled device. Actually I just bought an Eten M600 PDA phone. It integrates all that into one small device =)

RM2588 with free 1GB SD memory card.

I did not plan to get anything on that day although I have been eyeing the o2 XDA IIi for some time already. But when I tried out the Eten M600, I was impressed by its many features and especially its speed. And since it was on promotion, why not?

Perfect replacement for my ageing T610. It’s not too bulky to carry around, unlike some bigger PDAs.

I’m not going to do a review now since I only had it for one day. But so far I’m very impressed with its functions. I can listen music on the go (during my bus trip to KLIA), use wifi (at KLIA), watch videos, take pictures and not to mention make calls and send smses.

I just love the touch screen.

To make calls, I just tap the numbers on the screen with my fingers. To send smses, I just write using the stylus. The handwriting need to get used to though. Anyways, the first sms I sent was to my brother, saying that I am sending him that message through my Eten M600. The first call I made was to my mum, saying that I have made good use of the RM2500 hehe

High resolution screen. You have MS Office here too.

The thing that I love best about this PDA is the wifi. This means that anywhere I go, if there is a hotspot, I can check my email, read news, blog, chat on MSN, make free calls through Skype and many more. I was at KLIA just now using its free wifi while waiting for my dad and brother to arrive.

Who needs an iPod video when you have this? The video quality is extremely good.

There are tons of programs for PDAs floating around the internet. Imagine the countless possible things that I can do with this PDA. I can’t imagine. Continue reading