CoCo Ethernet Project

This page will attempt to log my progress as I work towards making an ethernet adapter for the TRS-80 Color Computer series. Pictures will be included when appropriate.



Despite having the PacketWhacker for some time now, I haven't done anything with it, as of yet. But after receiving a shipment from Digikey, which included an AVR ATmega8, I decided to give it a try by getting uIP-AVR running on it.

I made some changes to the uIP-AVR code in order to get it right for my processor. The port of uIP was mainly targeted at AVRs with more IO pins, so I had to squeeze it all in to the small number available. Here are some pictures of my setup:

This is the whole shebang, assembled on my breadboards. The PacketWhacker is circled in green. It's an RTL8019 ethernet controller, put onto a PCB with a 10BT jack, and meant to be used with 8-bit mcus.

Here's another picture, but with the AVR circled. It's an ATmega8, in a 28-DIP package. It has 8K of flash for program code, 2K of SRAM and 512 bytes of EEPROM. I'm currently using the last two to store the number of rewrites the flash has had. So far, just two. One for a test program, the other for uIP.

This last picture has the power supply circuitry circled. I used 4 AA rechargeable 1800 mAh batteries, an LM7805A, a 0.47 uF capacitor and a pushbutton switch. This powers everything quite nicely, so if I wanted to, I could package it all together, stick it somewhere unusual, and then I could have a webserver hiding under my fridge, if I wanted to.

The uIP program I ran is the sample that comes with the uIP-AVR 0.60.1 release. It's not much, it just echoes the string "ok" when a connected client sends data. I don't know how much more would fit in the program flash, but I'm using under 6K with the current code.

The next plan is to put the PacketWhacker in a CoCo expansion card prototype, using some glue logic to rearrange the 5-bit address space of the NIC into 4 bytes. I'm more of a software guy, so my current design might not be optimal. However, modifying uIP and getting it going on the CoCo shouldn't be too much trouble. My main problem is likely to come from the crustiness of the gcc port to the 6809. Some functionality doesn't work (like stdarg) but uIP doesn't use it. I should be able to get a CoCo-based webserver going shortly after having my prototype built.