Last updated: 15 Jul 2011 - 19:59
Following on from my review of the new ChipKIT Uno32 from Farnell, I've done a little project to test out what it's capable of. I had never programmed for an Arduino before and I've learned a lot about the way the system works from this project. One of the early revelations which amazed me was that the Arduino "Wiring" language is in fact not a language at all but simply a couple of header files that wrap up some boiler plate C++ code. I can see the reason that it was marketed as an "easy to use language" and the mention of C++ was avoided initially as it made the platform more attractive to artists and hobbyists not interested in learning a big scary "real" programming language. The fact that you can just use any old PIC (or on the original AVR) compatibile C code makes it a lot more attractive for those wanting to dig a bit deeper.
Last updated: 13 Jul 2011 - 21:51
Video Graphics Array "VGA" is a standard for computer display. It has a lot going for it in the hobby electronics field as it is a pretty simple standard and quite straight forward to implement with sufficient signalling speed, there are also a lot of monitors around to test projects on! Colour is a lot easier to generate on a VGA monitor than on a composite video monitor, but it requires a lot more speed as the frames are more detailed and there are more signals to generate.
Last updated: 24 Jun 2011 - 19:38
At the first British Vintage Computer Festival last week among the bits I picked up were a replacement membrane and a keyboard cover for my Spectrum. The original metal shield was beginning to go rusty, probably because of the years spent in a shed or garage before I got it at a garage sale. The keyboard membrane was also on its last legs, I'd taken the Speccy apart a couple of times and the membrane ends that plug into the main board were on the verge of breaking. Now I could take it apart again without worrying about loosing the keyboard I decided to go the whole way and rip out the modulator and just wire up a composite video output in its place. This is really simple, the input to the modulator block is power and composite video, so to get composite out all you have to do is trace the signal and connect up a suitable connector, I used a phono connector and a bit of angle aluminium to mount it. Previously I had both modulated RF and composite connections with the composite connector on a flying lead hanging out of the back of the case.
Last updated: 13 Jun 2011 - 18:37
Disclosure: The ChipKit Uno32 for this review was supplied free of charge by Farnell.
Product name: ChipKit Uno32
Price: £17.99 ($26.95)
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.
Last updated: 16 Mar 2011 - 16:41
I've just uploaded a group of new photos to the existing Z80 project gallery. These show the new MMU and the UI board, never before seen on the internet!
Last updated: 14 Mar 2011 - 00:11
The Mark 2 Z80 project featured a pair of memory slots each capable of taking up to 32K of RAM. This meant that a full 64K of RAM could be used because the ROM image is copied from the PIC's memory at boot time. However that didn't seem like much to me so a banking system and MMU were in order. (Also I found I couldn't get the 32K RAMTRON FM1808 chips in DIP any more!)
The new system is designed around 512K SRAM chips, up to 8 of them, although I've only wired up two sockets for 1MB of RAM for now. If you know your base 2 maths you should realise that I need a 22 bit address bus for the 4MB address space. This initially seems like an odd size but the design is based on the internals of the Amstrad NC100, a portable Z80 machine from the early '90s. The top 8 bits of the 22 are provided by one of four latches. Which of these latches provides the last 8 bits is decided by the Z80 address lines A14 and A15.
This means the physical memory space of the Z80 is made up by four 16K
Last updated: 19 Dec 2010 - 12:33
I recently received an enquiry about how the I/O throttling on the PIC worked to ensure that the PSP was shifting valid data out to the Z80. I had a look back at my code and figured out how I'd done it. However I realised in that conversation that the schematics for the project were vastly out of date and it seemed that I hadn't been keeping as up to date as I thought I was with my local copies. I've spent several evenings in the last week and more or less re-drawn all the schematics from scratch, referencing the old snippets and the code and occasionally resorting to the continuity tester!
The schematics are in a number of fairly self contained PDFs here, I'll push the KiCAD source to git hub in the new year after I've finished my Christmas trips. Each unit of the system is mainly only connected by the Z80 busses (data, control and address) although the interrupt controller and the I/O decode have a lot of ancillary signals in them. Hopefully this is all fairly clear, it inclu
Last updated: 31 Oct 2010 - 21:47
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.
Last updated: 31 Aug 2010 - 22:35
In a project I am currently working on I needed a font to embed in the ROM of an ARM Cortex micro-controller that could be used on one of these ChLCD modules from SparkFun. The display in my application is currently mounted in a landscape orientation, but I didn't want to preclude using it the other way around, or changing the font. I've written a few bitmap font editors over the years for various graphical LCDs, VGA displays and LED matrix displays. They all have a common interface, a character being edited with oversized pixels and a preview of the entire font. I decided this time to do a "proper job" of the code and write a Python GUI app that should be cross-platform and allows saving and loading of fonts.
Last updated: 20 Jul 2010 - 22:13
My phone, like many modern "smart-phones" has a tendency to go flat when used heavily for internet browsing etc. Unfortunately this is exactly when you aren't near power to charge it up with, so when I found some old iPod replacement batteries in the local Maplin an idea occurred to me. The idea is fairly simple, put a large capacity battery intended as a replacement for the now almost extinct 1st or 2nd gen iPod into a box with a charging socket to charge it, and a power output so it could charge something else.