Pong on a VGA monitor with the ChipKIT Uno32

Photo of Pong on a VGA monitor with a breadboard displaying scores and controls

Sketch update
There have been some changes to the ChipKit libraries since release, some of these changes caused the Pong sketch to stop working. After a helpful bug report from someone trying to build their own I had a look at the source to see if I could fix it. After a bit of investigation I discovered that in the old code using a digitalWrite() after an analogWrite() would leave the PWM timer running in the background. This isn't power efficient, so it's been fixed, however the new code tests to see if any analogWrite() calls on other pins have occurred and if not shuts off Timer 2. Unfortunately this means writing any of the PWM capable pins in my code shuts off Timer 2 as I don't use analogWrite() but set up PWM manually. The solution I came up with was simply to move the enable lines for the two player scores to pins 11 and 12, from 8 and 9 avoiding using any PWM capable pins. My Life demo is unaffected as I didn't use any pins for output other than the VGA pins. Updated schematics and source are included.


Primary: 

ChipKIT: Conway's Game of Life on VGA

A photo of the game being played out on a monitor.

After the success of the ChipKIT pong demo I started to think about the ways to improve the graphics output and came up with the idea of a coarse pixel display. This is a more traditional pixel based display where a rigid grid is displayed on the screen rather than the more vector based display that I had used previously. This demands more of the CPU time because it has to copy the pixels to the display manually as there is no DMA on the UNO32, rather than only having to display the colour for a tiny fraction of each display line like the pong game did.

Primary: 

ChipKit Uno32 Review

Disclosure: The ChipKit Uno32 for this review was supplied free of charge by Farnell.

Boxed ChipKit Uno32, looks a bit like a box of throat lozenges

Product name: ChipKit Uno32
Price: £17.99 ($26.95)
Supplier: Farnell
Category: Microcontroller development board

The ChipKit Uno32 is a new Arduino-compatible board from Digilent and Microchip, based around a PIC32 MIPS microcontroller. This makes it a vastly more powerful platform than the ATMEGA328 based Arduino Uno, a lot of the press releases about it seem to be claiming that it's the first 32 bit based Arduino compatible, whether or not you consider the Maple to be equally worthy of this title, it has to be said it's a huge leap for the power of the platform.

Primary: 

Server Monitor

Photo of the screen mounted in the front panel of the server.

I've been in the process of upgrading my backup/home media server for a few weeks now. I managed to get hold of an old case from a skip outside a closing down fax/photocopier company. It's a fairly decent case, although it was somewhat 5.25" centric in design. Amongst other things I did to modify this case, I replaced the old drive door with a new completely transparent one with some USB ports and an additional fan for cooling the new compliment of many hard disks. The server is going to be running in a cupboard without a monitor most of the time and I wanted to be able to see at a glance what the system was doing. Inspired by the computer-graphic imaginary servers that are featured in web hosting ads that have a screen on the front, I set about adding a little monochrome LCD.


Primary: 

Z80 Project Mark 2: Flashing lights progress

I have made some progress on the Z80 project. Another mod, some software and learned some new lessons about PIC programming on Linux.

Another Mod

Free tagging: 
Primary: 

Nathan's Z80 Project Mark 2: CPU Supervisor

A large amount of the usual faff found in Z80 systems has been avoided in my design by including a PIC next to the Z80. This PIC replaces the reset timing circuit, the clock generation circuit for the Z80 and the need for ROM and associated decode logic to select the ROM chip. In addition it provides mass storage (via an SD card interface) and a useful in-circuit emulator for debugging.

Primary: 

Giving the Z80 a good boot

Booting computers is an age old problem. It seems like an easy task to you, just press the button, but the software and hardware involved is often a bit of a hack. When you start a Z80 processor (ignoring reset hold times and clock stability for the moment) it will try to load an instruction from memory address 0, execute it then move on. So the traditional way Z80 micro computers (like the Sinclair ZX Spectrum and the Amstrad NC100, to name a couple I own) are built is with a ROM chip at the bottom of the address space with some kind of operating system on it, e.g. a BASIC interpreter.

Primary: 

MPASM - memtool firmware

I wrote an article a while ago about making a tool for reading and writing parallel memory chips using a PIC and a USBMOD2 unit. I have finally got around to writing the code out in MPASM (the original was for the PICAXE BASIC programmed PIC.) The code is fairly simple but shows how a PIC can effectively be used in place of complex glue logic.

Contents

  • Source memtool.asm file
  • Compiled HEX file, memtool.hex
  • GPLv3 License
Primary: 

Memory Tool

Introduction
In some ways a Z80 processors program storage is easier to get at than modern flash based micro-controllers. However, modern micro-controllers usually have suitable software available for modern computers.

Primary: