Posted by retromaster on February 8, 2011
First of all, the Cumulus project now has a home page :).
I’ve made a couple of important updates to the Cumulus firmware. First, I made sure that support for both Epson and Phillips LCD controllers is in place and working well (Nokia 6610 LCDs come mainly in these two flavors, as is well known now). There are a few relevant differences between the controllers, mostly in initialization of the controller and handling of screen orientation.
I also implemented bootloader support (i.e. SD card firmware update). It proved to be a little trickier than I first thought, mostly due to compiler issues and a misleading example from Microchip. The main issue was that the compiler does not actually load the table pointer for the erase operation unless you actually issue a dummy read operation first. Now it all seems to be working fine. Right now, the bootloader is larger than it needs to be (there is an embedded font I used for printing debugging messages on the LCD) and verification is missing but these are easy to fix and finalize (before a binary firmware release is made).
I’ve also populated one of the CumuluBus boards that I received and I am glad to say that it works fine.
Posted in Projects, Retrocomputing | Tagged: 18F46K20, 6610, Atmos, bootloader, Cumulus, flash, Floppy Emulator, LCD, Oric, PIC18 | Leave a Comment »
Posted by retromaster on January 5, 2011
Cumulus rev B1 PCB Bottom Side
Cumulus rev B1 PCB Top Side
I finally managed to assemble one of the new Cumulus boards, and I am glad to report that it works fine :). As a matter of fact, I received the bare boards a few days ago but I did not have the 32Mhz oscillators handy so the boards had to wait a bit until I got the part.
Aside from some changes in the CPLD and PIC pin assignments, no changes to the firmware were necessary. In my first tests there did not seem to be stability problems. The only (rather strange) problem I encountered is that the LCD fails to initialize at times (showing nothing), but the PIC definitely keeps on running, because even in this state the floppy emulation works fine. Hopefully, this issue should be fixable.
Here is what’s next (in no particular order):
1. Fix the remaining (firmware) issues and implement some of the missing basic functionality (e.g. writes, user interface).
2. Prepare the enclosure and fit the board in it.
3. Order some CumuluBus PCBs.
4. Prepare the web page for Cumulus and release the current sources, gerbers, etc. under GPL.
Posted in Projects, Retrocomputing | Tagged: Atmos, Cumulus, Floppy Emulator, LCD, Oric | 7 Comments »
Posted by retromaster on November 1, 2010
Cumulus driving the Nokia 6610 LCD
Nokia 6610 LCD Closeup
I built a user interface daughterboard for Cumulus. It contains a Nokia 6610 LCD screen and a few buttons (I haven’t installed the buttons yet). I decided to give this some priority at this point since it should be quite helpful for debugging.
I chose the Nokia 6610 screen because it’s readily available, cheap, and easy to drive with an SPI interface, with a lot of examples on the net. On the downside, it’s rather small and slow, but I think it’s still quite a bit better than using a character LCD module.
The board contains a LM2660 in voltage-doubler configuration to supply the backlight voltage. It generates 10V from the 5V input from the Cumulus mainboard, and a 120 Ohm series resistor limits the current, with the voltage drop over the backlight being approximately 7V. One interesting quirk is that, the LM2660 datasheet specifies a Schottky diode being required for oscillator startup, but in my case, it seems the diode actually prevented the LM2660 from working. I am not sure what could be the cause of this.
Another issue I had to solve (probably due to my misinterpretation of the LCD pinout) is that connecting the 3.3V pins to the 3.3V supply from the Cumulus mainboard caused the contrast to be completely bogus. Disconnecting the 3.3V supply (leaving only the backlight supply) fixed the issue.
I managed to get both the Epson and Phillips controllers to work. The built-in 18F46K20 SPI module supports only 8-bit transmission. However, the EUSART module can transmit 9 bits in synchronous mode. So, I used the EUSART module. There is one problem, though. The bit order is reversed. This is not a problem for fixed values like commands but care must be taken when transmitting coordinates or color values. It should still perform significantly better than bit banging.
Posted in Projects, Retrocomputing | Tagged: 18F46K20, 6610, Atmos, Cumulus, Floppy Emulator, LCD, LM2660, Nokia, Oric, PIC18 | Leave a Comment »
Posted by retromaster on August 24, 2009
UFE PCB Revision A Top View
For a while now, I’ve been working on UFE, which is the successor to the TFE. It will be considerably more advanced than TFE and (inevitably) more complex and more expensive to manufacture. Some of the planned features are: Full-Speed USB embedded host (enabling use of flash drives as storage instead of SD-MMC card), touch-panel QVGA color LCD user interface (see previous post), read and write support for multiple drives on the same floppy bus, on-board image MFM conversion (using on-board SDRAM).
The picture above shows my first attempt at designing a PCB for the UFE. The main components are a PIC32 microcontroller and a 128Mbit SDRAM chip. The SDRAM is connected directly to the PIC32. The PIC32 has no on-board SDRAM controller, so I plan to emulate it using some software tricks. The same goes for handling of the floppy bus with the SEL lines. If this approach fails, plan B will be to add a flash CPLD to the board to offload some of these tasks to. In this case, I’ll have to redo the design of course, but this first revision will still give me ample opportunity to experiment with the main system components.
The header on the right is for the LCD module daughterboard. The daughterboard will contain the actual socket for the LCD as well as some additional circuitry such as backlight LED drivers. Decoupling these functions from the main board allows me to maintain a degree of independence from the actual LCD module used, and remove some of the associated complexity from the mainboard.
To be honest, I am not entirely sure that I’ll be able to manufacture this board at home. The reason is mainly the 8/6 rules (8 mil trace width, 6 mil clearance) I had to use in the design due to the PIC32, and the high density of the top layer. My previous experiences tell me that 8 mil traces should not be a problem, but I am not sure about the 6 mil clearance.
Posted in Homebrew PCBs, Projects | Tagged: board, LCD, PCB, PIC32, SDRAM, USB | Leave a Comment »
Posted by retromaster on August 21, 2009
2.4″ TFT LCM Back View
2.4″ TFT LCM Front View
I got a brand new 2.4″ TFT LCD module off ebay from China. It has 320×240 resolution and 65k colors, a built-in display controller with on-chip VRAM and a resistive touch panel. I plan to interface it with a PIC32 microcontroller for a new project I am working on.
Posted in Components | Tagged: Components, LCD, LCM | Leave a Comment »