Hackaday Retro is to blame

A project log for PIP Arduino Web Browser

Surf the web using an Arduino and an ethernet shield. Because you can.

gilchristGilchrist 10/05/2014 at 00:400 Comments

From Early February 2014

An Arduino-based web browser.

This is a silly idea. [1]

I just wanted to get that out of the way early. This is the kind of idea that's probably going to end up reported on Hackaday FAIL.

I've been an avid follower of Hackaday since about 2010 and messing about with Arduino since the same time. I learnt to code on 8 bit home computers, so I'm hardly a newbie and have already been doing some daft things with Arduinos. And still using the Arduino IDE. [2]

I kept reading about people getting web browsers running on their old computers in the retro section of Hackaday and the idea occurred. Why not get a web browser running on a standard Arduino Uno? [3]

Well, let's do some comparisons:

The venerable Commodore 64 has a 6510 1MHz 8 bit processor with 64KB RAM and a 170KB disk drive available. [4]

The Arduino Uno has an ATmega 328 20MHz 8 bit processor with 2KB RAM, 1KB EEPROM and 32KB Flash RAM (ROM, essentially). The chip is run at 16MHz.

Although the ATmega 328 is much faster, it has practically no memory. Browsing is probably going to be memory intensive and web pages are going to have to be stored somewhere. I didn't fancy on-the-fly decoding every time. Luckily, SD cards are available to dump info to. [5]

So what have I got to work with now? An Arduino Uno, Wiz 5100 Ethernet shield and the included micro SD card slot. This is starting to look possible.

Oh, and just 32 KB of code space. This is starting to look unlikely. [6]

[1] No, it is, really.

[2] I really need to start using the Atmel or some other full IDE.

[3] Because it's a silly idea. And the ATmega 328 is not retro.

[4] I was going to use the Apple ][ for the example but, despite what Apple might say, the Commodore 64 is the biggest selling 8 bit computer ever. The Apple ][ is the third I believe. I've used both.

[5] The smallest of which I could find now was 2GB. Sheesh!

[6] And I haven't even mentioned the known problems associated with parsing sloppy-old HTML code cleanly. Let along in 2KB of RAM and under 32 KB of code.