Retromaster’s Electronics Projects

…related to old computers and other assorted stuff…

Posts Tagged ‘PCB’

Making Copper PCB Stencils for SMT Reflow

Posted by retromaster on August 22, 2011

Over the weekend, I decided to try out making a stencil for solder paste from copper foil. I had thought about this previously, but after seeing an instructable on the same idea, I became more confident that it would work.

The process for making a copper stencil is basically the same as making a PCB. The resist image (i.e. paste layer, inverted) is transferred onto the copper foil using any method of your choice. For my tests, I did PnP Blue toner transfer onto 0.2mm-thick copper foil using a laminator. Afterwards, the back side of the foil is covered to prevent etchant from eating away all the copper. I used clear packing tape for this step. The one crucial thing here is to make sure no air bubbles remain in between the tape and the foil. Finally, etching is performed as usual and after cleaning and removal of the tape, one gets a nice looking stencil as shown in the photos above.

One thing to note is that, if one leaves the tape in place, this method can also be used to make simple flex PCBs. This could be quite useful for repair purposes, as well.

Although in my tests the stencil came out pretty well, the reflow (using a hotplate) did not go all that well, as the photos above show the bridges in between some of the legs. This can be due to several reasons: The paste itself wasn’t at very good condition to begin with, more flux may have been needed, the stencil may have been too thick (too much paste), and surely I could have done a better job when depositing the solder paste. Nevertheless, this is not too bad for a first try, and I am confident that I can tweak and improve the process over time for near perfect results for larger PCBs.


Posted in Homebrew PCBs | Tagged: , , , , , , , , , | Leave a Comment »

CPC6128 Keyboard Daughterboard for UFE

Posted by retromaster on January 17, 2011

This time, a post unrelated to Cumulus (a Cumulus-related update will follow shortly).

At the request of my friend Alcofribas, I’ve been designing and building (in parallel with my work on Cumulus) a CPC6128 keyboard daughterboard for UFE. It allows one to control the UFE floppy emulator using the host keyboard on a CPC6128, just like one does on an Amiga 500 or 1200.

This daughterboard ended up being a bit complicated to setup (at least moreso than the other UFE keyboard daughterboard designs). The existing ribbon connectors on the CPC mainboard are desoldered and female headers are installed in their place. The ribbon connectors are then soldered to the daughterboard. The daughterboard has male headers that match the female headers installed on the CPC mainboard. So, the daughterboard sits upside down on top of the CPC mainboard, and the case cover can be closed without any problems. The rest of the installation is the same as any UFE installation.

The board contains a PIC16F877 along with three 74LS245 chips, four headers/connectors and lots of pull-ups. The 245 octal buffers control the connections between the CPC mainboard and the CPC keyboard, so that UFE can prevent the CPC host from receiving keypresses when its user interface is active. The PIC controls everthing, scans the key matrix and transmits keypresses to the UFE mainboard over I2C.

It seems to work well, but at the moment there is one complication: For the daughterboard to be able to detect the activation keypress, the CPC host must be actively scanning the keyboard. I am told that this may become a problem with some demos and games. So, I’ll need to devise a way to make the daughterboard scan the keyboard at times for the activation keystroke without interfering with the host scan of the keyboard. The most likely solution is that the daughterboard will determine when (or if) it needs to scan the keyboard, by dynamically adapting to the host’s scanning patterns. I am sure that with some more experimentation and practical thinking, a satisfactory solution may be obtained here.

Posted in Projects, Retrocomputing | Tagged: , , , , , , , | Leave a Comment »

Cumulus New PCBs Ordered

Posted by retromaster on December 21, 2010

A small update this time. I’ve finished the new Cumulus PCB design (revision B) and just yesterday ordered a few units from a manufacturer in China. Usually I manufacture my own prototypes before ordering from a manufacturer, but this time I did not do that, mainly to save some time. Hopefully there are no (major) problems/mistakes with the design :).

Here is a quick summary of what’s new: Integrated LCD and buttons, 40-pin connector (for use with CumuluBus), better routing on critical lines (to further avoid crosstalk), elimination of 74221-based circuitry and crystal oscillator for driving the PIC and the CPLD.

Posted in Projects, Retrocomputing | Tagged: , , , , , | 7 Comments »

Cumulus Prototype Assembly Progress

Posted by retromaster on October 13, 2010

Here is a picture of the Cumulus prototype board in its most current state. It is almost fully populated, except for the socket for the 28C EEPROM (I’ve run out of suitable sockets, it seems) and the HCT221 circuitry for MAP signal timing. The CPLD is available through JTAG and the PIC is accessible through ICSP. It took a while to get to this stage, as quite a few things got in the way and others simply went wrong… but now, everything seems to be back on track.

So, what were the problems? First of all, my JTAG Cable decided it won’t work any more… It may have something to do with all the abuse it had to withstand :). Upon building a new one, I got the CPLD connection to work. Very good.

Then I went on to trying the ICSP connection to the 18F46K20, which did not work (to my surprise). So, I spent about a week, debugging on and off, where I checked all the connections, available schematics, etc. The Microchip starter kit schematics had a 8.2V zener diode on the MCLR pin, (my first thought was that was what was missing), but it ultimately turned out to be unnecessary with the PicKit 2, as long as PIC 18F K Series configuration was selected in the software. Finally, I built a couple of very simple boards, basically only with the PIC and ICSP connector on them, just to test the connection to PicKit 2. Those boards worked absolutely fine… Another round of checking, and it turned out that the problem was a fault on the Cumulus prototype board, where the PGD pin had a tiny short to ground. I have no idea how it slipped the first time, but it did. Anyway, now, ICSP is working fine.

So, now I can proceed in two directions. I can finish populating the board, write an Oric test program to the EEPROM (something simple that prints out a text message) and test that the Oric Bus interface is working fine. I can also go on with the UI board, and get the LCD and buttons on it to work, which should be very helpful with the debugging. Hopefully, whichever path I take, things will go a bit more smoothly this time.

Posted in Homebrew PCBs, Projects, Retrocomputing | Tagged: , , , , , , , , , , , | Leave a Comment »

New Project Started: Cumulus

Posted by retromaster on September 18, 2010

I haven’t posted in a little while, mostly because I was busy working on a new project (called Cumulus). It is yet another SD/MMC floppy emulator project, but with a significant twist: It aims to emulate the WD177x/WD179x series of floppy disk controller chips (FDC), too. So, in essence, it is aimed towards certain retro-computers that originally came without built-in floppy controllers (e.g. MSX, CPC464, Oric, Spectrum, etc.). Back in the day, to add a floppy drive to these computers, the user had to install/connect a FDC card to the expansion port. Therefore, it is impossible to use a floppy emulator like TFE or UFE with these computers without the appropriate FDC expansion, which can be difficult to obtain.

There are significant advantages to integration of FDC emulation within a SD/MMC floppy emulator. First of all, there is no physical floppy disk interface (the 34-pin connector) to worry about, which means that MFM-conversion is out of the picture. Furthermore, there is no floppy disk rotation constraint to satisfy, so writes are much easier to implement and SD card performance issues pose much less of a problem.

The challenge here is that the floppy emulator needs to be directly interfaced to the host system bus, so it is difficult (if not impossible) to get away with using just a microcontroller. Consequently, a clean design dictates that the floppy emulator be host-system dependent (due to different CPU bus configurations, expansion port pinouts, glue logic, etc.). Apparently, the whole FDC card needs to be implemented within the floppy emulator.

For a first implementation (as a proof of concept), I decided to target the Oric Atmos computers… Why Oric? Well, actually, completely by chance… Right around the days when UFE was first released, I had just obtained an Oric Atmos, and a couple of people asked me if UFE could be used with an Oric, which got me thinking, and that’s actually where I got the project idea from. I found out that full schematics of the Oric Microdisc interface were available (along with dump and disassembly of the on-board ROM), and to the best of my knowledge there were no existing SD card solutions that could work with the OS software available (which is seemingly quite impressive, btw).

So, I started working on the Cumulus design. Bearing in mind all the issues outlined above, I went for a CPLD (Xilinx XC95 series) and MCU (PIC 18F series) combination for Cumulus. The CPLD will effectively implement the bus interface of the FDC chip, together with all the additional glue logic usually found on a FDC card. The MCU will communicate commands and data with the CPLD and handle SD Card access and user interface functions. I am sure it will be a difficult combination to debug, but I think I am up to the challenge :).

I have already finished the schematics and PCB layout. Right now, I am at the prototype manufacturing stage, as can be seen from the scan above. There will also be an optional UI daughterboard with an LCD. This is not absolutely required, since the Oric console can also be used effectively to control the emulator. Hopefully, the project will be successful, and it will breathe a new life into these computers.

Posted in Projects, Retrocomputing | Tagged: , , , , , , , , | 19 Comments »

A2601 Board Populated

Posted by retromaster on August 23, 2010

I’ve (mostly) finished soldering the new A2601 board. The Xilinx Impact software recognizes the on-board FPGA and Configuration PROM through the parallel port JTAG cable, so I am able to download designs into the FPGA. Just for testing, I’ve uploaded a small design that outputs some NTSC color bars through the composite video port, and it seems to work fine.

It seems some more work needs to be done to get the A2601 FPGA design to work with the new board, though. It has been quite a while since I last worked on this project (judging from the dates on the files, almost three years), and during this time FPGA software (i.e. synthesis, simulation, etc.) has moved on. So I need to remember all the little bits and pieces and fix a few things here and there to make sure that the design works fine in the simulator again (it previously did). Once the design works in the simulator, it should be fine in the FPGA.

Posted in Homebrew PCBs, Projects, Retrocomputing | Tagged: , , , , , , , , | Leave a Comment »

An Older Project Revisited: A2601

Posted by retromaster on August 16, 2010

Having made quite a bit of progress with UFE, I’ve decided it’s time to take a little break from it while I wait and see how recent developments in the manufacturing front pan out (sorry, cannot give details on that yet). So, I am now revisiting a never-before-released project of mine that is almost five years old now.

The project is an ATARI 2600 clone on FPGA, including 6502 and TIA cores in VHDL and dedicated PCB layout, all developed by me. The design fits in a 100K gate Xilinx Spartan 3E, and works quite well in the simulator. The PCB design contains the FPGA, resistor-ladder DACs for video and audio, custom joystick input ports and flash memory for storing ROMs. Few years ago I even built a prototype. It worked well, but unfortunately it did not survive, since my PCB-making techniques were not as advanced back then…

So, what’s new this time around? Basically, a reworking of the PCB layout that fits in a smaller case and contains a single input port for a Genesis/MegaDrive gamepad instead of custom-wired pads. I’ve ended up choosing MegaDrive pads because they are commonly available, very easy to drive and they contain the necessary auxiliary buttons (start/select etc.). I’ve already started manufacturing the board and the photo above shows the work in progress. Hopefully, all will go well and next time I’ll be posting working photos of the board…

Posted in Homebrew PCBs, Projects, Retrocomputing | Tagged: , , , , , , , , , , , | Leave a Comment »

UFE A1200 Keyboard Daughterboard Progress

Posted by retromaster on August 4, 2010

I’ve made some good progress with the A1200 keyboard daughterboard for UFE.

I painfully found out that the PCB design I’ve mentioned in my previous post had a physical issue: It was a little too large! After I made the board, I tried to fit it in an A1200, but it wouldn’t since the corner of the board hit a capacitor. Fortunately, I had not soldered any components yet.

So, back to the drawing board… The solution I came up with was to move the components in the lower left quadrant of the old design to under the PIC chip. Of course, a precision socket had to be fitted in order to raise the PIC to allow components under it. This way, I was able to cut the lower left section altogether, which meant that the new design would fit even with the metal shield in place.

Once I manufactured the PCB, I was glad to see it fit very well. This board is definitely NOT one of my better manufacturing jobs, but it seems it will do the job. The copperclad I used is thinner than the usual stuff, so it fits directly in the flex cable socket once the white plastic lock is removed.

The board has a PIC16F877 installed (I had some handy), although I think that a PIC16F884 would be a better, cheaper alternative, and could be used without modifying the board. During my first tests last night, a funny thing happened. I had a PicKit 2 attached to the daughterboard for testing and it was powering the daughterboard. The PIC was recognized by the PicKit and it was able to program and verify it. But as soon as I plugged the board in the A1200, the PicKit would give VDD Voltage level errors… I was puzzled. I checked for shorts all around the board and I was wondering if the edge connector footprint was incorrect. Then, I realized: The A1200 was off and the poor PicKit was trying to power the whole Amiga through the VCC pin on the flex cable connector! Once I turned the A1200 on, the errors went away ­čÖé

Last night I managed to write some code for the PIC, too. Now I am able to scan the Alt and Amiga keys so that I can detect the activation keycombo. Once the activation keycombo is detected, the board prevents the A1200 from receiving any keypresses and it looks like it can scan the keyboard without any interference. So, the basic functionality of the board is in place, although I need to do more tests to confirm problem-free operation. Eventually, I’ll implement the I2C communication with the UFE mainboard and I am sure there will be some quirks to sort out.

Posted in Projects, Retrocomputing | Tagged: , , , , , , , , | Leave a Comment »

UFE A1200 Keyboard Daughterboard Design

Posted by retromaster on July 28, 2010

After the initial release of information on UFE, quite a few people asked about A1200 support. So, here is the early result of my design efforts for an UFE A1200 keyboard daughterboard.

The board is designed to plug into the keyboard flex cable socket on the A1200 motherboard (see the edge connector on the bottom of the PCB). The flex cable from the keyboard goes into the connector on the top left side of the board. So, this board acts as a kind of pass-through.

A 40-pin PIC MCU sits on the right side and is responsible for scanning the keyboard and translating keycodes into the I2C protocol for UFE communication. A couple of 74ls245 chips are placed in between the keyboard and motherboard connectors. These are used to disable the column drivers on the Amiga side when UFE takes over control of the keyboard. This way UFE can scan the keyboard without interference from the Amiga keyboard MCU.

This should all work in theory, based on my understanding of the A1200 schematics and the reverse-engineered A1200 keyboard schematics. Of course, there is a decent chance it could fail, so that’s why there are no schematics accompanying this post. I’ll build the PCB soon and write the firmware for the PIC and see if it actually works :). I haven’t checked the A600 schematics yet, but there is a good chance that this will also work with the A600 without modification.

Part of the challenge here was to make everything fit in the rather limited space. That’s why the board ended up being double-sided. It does not require plated-through holes, however, and there are only a few vias that can easily be handled by soldering wires on both sides. These measures should help keep the cost to a minimum. The current board layout also requires the A1200 metal shield to be removed, but this may perhaps be avoided, by elongating the board even further.

Posted in Projects, Retrocomputing | Tagged: , , , , , , , , , | 2 Comments »

UFE New PCB Ready

Posted by retromaster on June 24, 2010

I haven’t posted in a while, but I was not lazy :). I was working on making the PCB for the next UFE hardware revision. I’ve tried a some new things and ran into a few problems in the process, and eventually, came up with the board in the photo.

With this PCB, the soldermask is noticeably stronger than the previous UFE revision, especially on the top side. On the bottom side, the soldermask still lifted in a couple of places. I plan to do some more tests with dummy boards soon and hopefully improve on the process.

One thing that still bugs me here the pitting of copper in large plane areas. Admittedly, this problem is more of a cosmetic nature (as double-sided boards are already limited in terms of signal integrity and speed). I also want to do some further tests to see how this situation can be remedied. Perhaps some Pulsar Green TRF can be useful, or I can even switch back to PnP Blue if I can get it to work with CNC drilled holes.

Posted in Homebrew PCBs, Projects, Retrocomputing | Tagged: , , , , , , , | 2 Comments »