Showing posts with label PET microSD. Show all posts
Showing posts with label PET microSD. Show all posts

Sunday, 28 July 2019

The story of the SD2PET Future

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

This is the story of the SD2PET future. Are you sitting comfortably? Then I'll begin.
The SD2PET future is a new disk drive replacement for the Commodore PET and CBM range of computers, and it is available to buy now. It is not, however, the product we planned to build.
Way back in the distant mists of time (well, 2014), I repaired a Commodore PET 4032 computer and started looking around for SD card storage options as I didn't have much software on tape. I couldn't find any available to buy, I did find one that had been sold for a while, but it seemed was no longer in production, and the creator wasn't responding to messages. I ended up making a version of that using an Arduino as a base, and whilst it worked, its functionality was limited to load and save PRG files, it didn't support disk images or any of the BASIC 4 disk commands etc.
I was then pointed towards another project that was still going, but it was at the other end of the scale, a bit overkill for what I needed, with options for a realtime clock and network interface and a big LCD display etc. In consultation with the creator of that project, I built a cut down version, the PET microSD. I kept all the pinouts the same, so it could use the same firmware as the larger device.
This worked very nicely and did exactly what I needed. When I wrote this up on the blog, there was a lot of interest, and I sold out of the first batch of PCBs I had ordered.
Given the success of those, I got in some more PCBs and took the opportunity to redesign the board to offer some different options for mounting the drives. They also went blue at this point.
2016, I'd been making these for a couple of years, usually in small batches to keep up with orders. Then one day I built a batch of boards and quite a few of them didn't work. With a little rework, I got a few more of them working, but there were still too many that appeared fine, but didn't work. This continued with the next batch, even more that didn't work. It wasn't clear what the issues was, my soldering and surface mount assembly skills were acceptable, no obvious problems there. I had no issues like this with any of the other things I was making at the time, most were pretty near 100% yield. These were less than 75%. Had I got a batch of bad, fake, or mislabelled parts somewhere along the line? was there something up with the firmware? I did find older versions worked better than the ones that were current at the time, but I never did get to the bottom of the issue.
I was busy on some other things at the time, so sold the last of the working ones and marked them as out of stock. The requests kept coming in asking when they would be available again (and did I have just one left that they could buy?). I was advised to simply drop the product, as it just wasn't working, but I decided I couldn't let people down, so I said I would do one more batch, and setup pre-orders for a month or so in early 2017. To rule out any problems with the previous PCBs, I relaid out new versions of the PCBs, with wider spacing, and to ease the manufacturing process, the original double sided board was slightly enlarged and made single sided. I ordered lots of boards, and a complete set of new parts from a different supplier to build more than enough for the pre-orders and to leave some for stock.
Despite everything, the yield this time was even worse, more than half the boards were not working. Many now exhibiting an issue where they would give an error the first time they were accessed, and then work fine after that. In brief, it would start up fine, and would start to respond to the first request from the PET, but part way through the communication, it would stop responding. Trying again immediately and it would always start working correctly, and would keep working until a power cycle. But would always fail the first access after power on. I tried all sorts, swapping parts between good and bad boards trying to narrow it down. In the end, I had to order even more parts to build another batch of boards to complete the last of the preorders. After all that work, I had ended up making a loss on the whole thing due to the number of bad boards and so that was it, the PET microSD was dead. I have since heard that the person selling the larger version was having similar issues and an equally poor yield.
I decided the best option was to start again, design my own PET disk drive, write my own firmware. There were various options for code to access the SD card, and I could learn the D64 image mounting etc. from SD2IEC. I kept going back to that design, as the Future Was 8 bit version had been refined over time, and had proven very reliable in service, with very good yield, few returns and lots of happy customers. Based on that, I tried to use many of the same parts as the SD2IEC in the new design, and also in the name, the SD2PET was born. The IEEE-488 interface hardware and software I would start again from scratch, and go back to the protocol specifications, and design afresh, trying to simplify things where possible. The amount of time that I spent starting at diagrams like these.
Since I had handed over production of the VIC20 Penultimate Cartridge to The Future Was 8 bit, and they were doing a splendid job of making those, it seemed the way to go was to see if they wanted to make the PET disk drive. For that to happen, it had to be good. It had to be reliable, it had to work every time, it had to work as soon as the customer took it out of the bag and plugged it in. Nice and simple, no need to read through lots of instructions. It also had to look nice and be unnecessarily small and so on. The original PET microSD designs of bare PCBs plugged into the back of the PET weren't really in the TFW8b style, it would need to be in a nice moulded case for appearance, and also for protection. At the time we looked at a few options, but didn't think we would have a suitable case for a drive that would plug directly into the PET, and it would be difficult to justify the tooling costs of making one specially for the PET.
After a while I came up with the idea of using the SD2IEC case. This is the disk drive replacement for the C64 / VIC20 etc. That would solve the presentation issues, it just needed a way of doing the cable at the PET end. There we hit a slight snag as when we couldn't source any suitable cable to connect to the IEEE-488 port. There are 24 pins, 8 data, 8 control lines and 8 grounds. and we couldn't get any cable thin enough to fit with the SD2IEC case.
Another delay, more thought, and then I came up with splitting the design into an IEEE-488 interface that would plug into the PET and an SD card reader in the SD2IEC case. With a limited number of connections needed between the microcontrollers in the two parts, we could use the same cabling as the SD2IEC. That looked like a winner, so we put that up as 'coming soon', and I got on with the design work again.
More delays at this point due to other projects, and the SD2PET wasn't working out as easily as hoped. The PET does some interesting things with the IEEE-488 standard, a particular example that took far to long to deal with was the DIRECTORY command which keeps stopping and starting reading one or two bytes at a time and then switching the bus around and calling a halt, then starting again.
The project has progressed to the point where we are choosing case colours. I was still working on the firmware, and also on various other projects. I don't think we've talked about this before, but your reward for reading this far is to hear about one of many products that don't quite make it to production for one reason or another. Usually that they are simply not good enough to put the names of Tynemouth Software or The Future Was 8 bit to them.
This was SD2ELK, a disk drive replacement for the Acorn Electron. The idea basically to give the Electron a ROM slot and a user port and then use one of the BEEB MMC type devices that normally plug into the BBC. The plan here was to reuse the case from the DivMMC future, and to that end, some white versions were commissioned to fit better with the Electron.
This hit the snag that most of the Electron software wasn't designed to run from disk, and expected PAGE to be set to E00, but the disk controller needs to use some of this RAM, so sets PAGE to 1200 or higher, so not many things worked out of the box. We didn't think that was going to be good enough, we didn't want people going through a whole load of programs and none of them working. There were a few options to investigate to get around this, but essentially, it wasn't the right solution. (we note that since then someone has done pretty much the same thing, and unfortunately has the same issues with the disk controller PAGE offset).
At around the same time, we got in the quotes for the tooling required to make the new connector for the SD2PET that houses the small circuit board for the IEEE-488 interface. That was working out a bit expensive than expected, so the price of the SD2PET as it was then, was going to work out a little on the high side. I remember a phone call with TFW8b discussing the end of the SD2ELK project and 'what are we going to do with all these white div cases' and the cost implications of the 'soap on a rope' version of the SD2PET.
During that I started sketching out a new idea. Take my original redesigned SD2PET, before it was split into two halves, and that would fit into the divMMC future case. Thus the SD2PET-CR was born, a cost reduced version in an alternate case style that would be available for anyone unhappy with the price of the other version (now dubbed SD2PET + to avoid confusion). The + refers to the extra features that will be on the + version, controlled by the two function buttons on the case. The CR only has a reset button.
The divMMC future case has a cutout for a 9 way D joystick connector. That is not required here, so a blanking plate is used to allow the power input cable to exit (there is no power on the IEEE-488 connector, so 5V is tapped from the datasette in the same way it is done on the C64 SD2IEC).
With SD2PET CR renamed as SD2PET future, and the main stumbling blocks in the SD2PET + resolved. These went onto pre-order. I was told that everyone would go for the plus version, and we could quietly drop the future version when no one ordered it. But people did order it. It didn't sell as many as the plus, but enough to make it viable.
And then a request along the lines of 'can I use a standard BBC SD card reader on a BBC Master Compact?' turned into 'can you make me an SD card reader for a BBC Master Compact?', which turned into 'I could probably do quite a nice one in an SD2IEC case', which then turned into 'could you use that on other BBCs?', which turned into SD2BBC.
That followed the same ideas as I have mentioned before, use the experience from previous designs and common parts and circuits where possible, so this took what I had learned from the SD2ELK, and the case and SD card power circuits from the SD2IEC. It did however mean that I was diverted from SD2PET again, and you may have noticed a run of blog post of BBC micro repairs in order to test this on a range of machines.
Of course, I've recently been doing the same thing with PETs, so expect a lot of upcoming PET repairs with one of these plugged into the side.
Due to a delay in the production side of the SD2PET +, the SD2PET future has arrived first. These are shipping now, with the plus version to follow as soon as we can.

Update:

The second batch of these has been built and it now shipping, a slight change has been made. The original batch (now #rare) has a black drive reset switch, and a clear button fixed in place above the indicator LEDs. The new batch now have a flush clear section above the LEDs instead.
These are also now available from my Tindie store.

2022 Update: The SD2PET future is now the main model, and is now just referred to as the SD2PET. Available now from  The Future Was 8 bit

Sunday, 31 March 2019

SD2PET - pre-order


For quite a while now I have been working on a new SD card disk drive for the Commodore PET series of computers. This is SD2PET, and it's available now to pre-order.
It seems like my bench has been covered with scenes like this for ages.
The SD2PET is styled along the same lines as the SD2IEC device produced by The Future Was 8 bit, but has a plug on the end for the PETs IEEE-488 port and datasette for power.
The SD card end will sit neatly by the side of the monitor on your PET, or by it's side.
The custom moulding for the IEEE-488 port and the additional manufacturing processes necessary to build the SD2PET mean the price of this one is going to be slightly higher than originally planned. Since we want as many people as possible to have one of these SD card drives, I've designed an alternative version which much the same functionality, but with less elements.
This has been named the SD2PET Future, and plugs directly into the back of the PET IEEE-488 port, with an additional connection to the Datasette port for power.
We are expecting there will be sufficient interest so that both versions will be going into production. The SD2PET (the external drive version) has been renamed SD2PET+ to differentiate it from the SD2PET Future. They are available to pre-order now, shipping late Q2 2019.


There will be more information on the features and functionality in a future blog post. I just wanted to get this one out there with the pre-order links for those who have been clambering to get one since my PET microSD went out of production.

(N.B., yes, some of these photos are mock ups, we haven't got the final mouldings yet, that's why it's a pre-order and not on sale yet)

2022 Update: I don't think the SD2PET+ is likely to happen now, so the SD2PET future is now simply the SD2PET and is available from  The Future Was 8 bit

Monday, 13 February 2017

PET MicroSD

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

This post has been left for historic information. The PET microSD is no longer in production. The replacement SD2PET is available now, more information on the pre-order page.

The PET microSD is an SD card disk drive for the Commodore PET. I have been making these for a while, but they have been out of stock recently as I have been preoccupied bringing some new products to market (namely the VIC20 Penultimate Cartridge, the Minstrel ZX80 Clone and the DivMMC Future).
I've decided the best thing to do is to setup a preorder for the PET microSD, to gauge demand for the different types and get some more boards ordered and some more units built up. There are three types of PET microSD boards. I was hoping to simplify this list, but for the moment, I'll leave them as they are.

PET microSD Horizontal

This is the original build. It sticks out of the back of a PET and is powered from the datasette port. This is suitable for any PET with IEEE-488 and datasette edge connectors (so not the 8032-SK). Note the power connector no longer sticks out as much as the version shown here.

PET microSD Vertical

This also fits on the back of the PET, but is low profile, so does not stick out as much as the Horizontal. Again suitable for most PETs except the 8032-SK.
It is powered by a 9V DC tap from inside the PET, normally by plugging into the expansion power connector (J11).
If J11 is not present, or in use for something else, it can be powered by a clip onto a diode near the power connector. The 2001 does not have J11, and the 8096, 8096-SK and things like the Super PET use J11 for expansion boards, so these would need the power clip. The rest can use J11 for power.

PET microSD Internal

This version fits almost totally inside the PET. These is a small loopback board which plugs into the back and passes the signal back inside. This is also powered via the 9V tap as above.
This is suitable most PETs, and these is a version with an edge connector suitable for the 8032-SK, this will allow the rear IEEE-488 port of the 8032-SK to still be used.

Pre-Order

This is a pre-order for the next batch of PET microSD boards. All are supplied with a microSD card preloaded with some example software to get you started.
UPDATE:  the final batch are now all accounted for, and I have no plans at the moment to build any more, so please consider these discontinued. I am working on a replacement product, more information to follow.

Notes
  • When I say PET, I mean PET and CBM and CBM-II
  • When I say 8032-SK, I mean 8032-SK and 8096-SK machines with rounded cases and separate keyboards
  • When I say 2001, I mean 2001 series PETs with chicklet keyboards and built in datasettes
  • When I say 2001N, I mean 2001-8N/-16N/-32N and other 2001N machines, which were also called the 3000 series and 4000 series. All with 9" screens, and full size keyboards.
  • PETs with BASIC version 1 will need to be upgraded to BASIC 2 or BASIC 4 (why not use a PET ROM/RAM board)
  • Click here for a full list of which PETs support which version of PET microSD
2022 Update: I have since designed a much nicer SD drive for a PET. The SD2PET is available from  The Future Was 8 bit

Saturday, 7 November 2015

Commodore PET 2001-8 Mainboard Repair - Part 2

This is an old post, preserved for reference.
The products and services mentioned within are no longer available.

Part 1 of this Commodore PET 2001-8 repair left the main board running, but with most of the parts replaced.
In that state it's all working, so now I can put back any of original parts which are working. I used the ROM/RAM board to identify the faulty ROM and RAM chips. The latest version allows me to test individual ROMs (or pairs or ROMs). From this, four of the seven ROMs were bad.
To test the RAM chips, I used the PET tester ROM image which tests the first 1K of RAM. By shuffling the 6550s into the right most sockets, I was able to find a pair that worked. I can then test all the chips using one good one and one potentially bad one at a time.
This is a typical result, G shows a good bit, B a bad one. If you look carefully, you can see a couple of bits of memory that actually work. Fourteen of the eighteen chips were bad. I did manage to get it to work as a 2K machine.
But that's not much use as there is just under 1K available to use. Fine if you are a ZX81, but not much use here. Notice the old character ROM is still in there - 1023 BYTES FREE. This was before that new character ROM was installed.
There are replacements for the 6550s available, each using a single 2114 chip, but replacing all of those would work out rather expensive. Given that four of the ROMs were also bad, we've gone for the option of leaving the ROM/RAM board in place. This comes with the option of running with BASIC 2 and 8K of RAM as it originally was, or selecting from 8K, 16K or 32K RAM and BASIC 1,2 or 4, so you can have the fully loaded 32K and BASIC 4. I was, however, able to use two of the working 6550 RAM chips from main RAM to replace the video RAM.
The CPU and keyboard VIA were confirmed as faulty, the other VIA was just bad contacts. The PIA was also fine after the edge connectors were cleaned. One datasette was still not working. I noticed the central leg on one of the TIP 29 transistors was actually snapped. I've unclipped the heatsink to show it more clearly.
These transistors are 'flapping about in the breeze' with clip on heatsinks, and so prone to stress the legs. One looked to have been replaced in the past, but I replaced both anyway as it looked like it that could be starting to go as well. These control the motors in the datasettes, and they are now both working. Later PET boards had these riveted to the boards, with no heatsinks. Later still, on things like the Commodore 64, the transistors were back to levitating above the board.
The two bypass capacitors on the main rectifier diodes were also down a leg each, so I replaced those.
The originals were rather large 10nF ceramic capacitors, so I replaced those with 10nF axial ceramic capacitors so it wouldn't happen again. It would work (and obviously had been working) fine without them, they just reduce the RF noise a bit.
This also shows the replacement power socket. This is a new one as the original had wires soldered onto it. To go with that, I made up a new wiring harness, but have also supplied a short lead with just with 5 wires, in case the owner prefers to avoid soldering to the transformer and keeps the terminal block.
With everything back together, I can get back to testing. The original 2001 has a built in diagnostic, activated by a special loopback plug on the user port.
When that is running. a small square moves over each position on the screen, then it shows the character map and lights the red LED on the board if all is well.  You can just see the LED in the centre of this photo, artistically framed by the keyboard loopback plug.
Not that useful really, later PETs replaced this with the machine code monitor - which is why the monitor is sometimes activated when you have problems with the 6522 VIA that monitors the diagnostic pin. At least you can see the problem with the character ROM has been fixed.
The owner had requested a PET microSD to go with their newly repaired PET. I initially had problems with the IEEE-488 on this PET, testing with my IEEE-488 diagnostic board showed up intermittent connections on the edge connector, but after a good clean, it was fine.
Don't worry, I won't be sending it back with all those boards hanging out the back, I'll be using the internal version of the PET microSD, to keep it all self contained and tidy.
That normally gets it's power from the internal power connector which is fitted on most later PETs. The 2001 doesn't have that, so for these. I supply a longer lead with a clip on the end to attach to the unregulated 9V supply, right where it enters the board on the reverse protection diode.
This should minimise the impact of the PET microSD on the power supply. The original board would have drawn between 3 and 4amps on the 9v rail. With the ROM/RAM board, this is now about 1 amp. With the PET microSD, it's around 1.1 amps.
Here is the final repaired board, ready to go back.
The main issues:
  • Faulty ROM and RAM - replaced by ROM/RAM board
  • Faulty CPU - replaced with NOS 6502
  • Faulty keyboard VIA - replaced by WDC 65C21N
  • Damaged TIP29s - replaced by NOS TIP29
  • Partly faulty character ROM - replaced by 2716 EPROM and adapter
  • Faulty video RAM - replaced by 6550s from main RAM
  • Soldered on power cable - replaced by plug and socket and new wiring harness
That's has been run in with various tests and seems very stable. The only real issue being the noise on the screen when updating fast which is inherent in the design of the 2001.
The result of all of this? - my Tetris score is getting better....