| 
						 
						
						   | 
						
						 Commodore PET Projects 
						- petSD+  | 
					 
				 
				
				
				petSD Revisions / Enhancements 
				
					
						
							
							
				  | 
							
							
							   | 
						 
						
							| 
							 petSD+ 
							Version 1 Prototype 
							
							(minus the LCD)  | 
							
							 petSD+ 
							Version 2 Prototype 
							
							(minus the LCD and clock module)  | 
						 
					 
				 
				petSD+ Version 1 - 2015 
				During initial discussions with Nils, he suggested some 
				changes that could be made to the original petSD design that would enhance 
				its functionality, but would not have the same cost impact as 
				his planned
				petSD-duo (an enhanced 
				version of petSD that was eventually cancelled). 
				My original 
				plan was just to try and build a copy of the original petSD, 
				but, going further than just suggesting changes to the original 
				design, Nils has took those changes and produced  an 
				updated petSD ,that we called petSD+. 
				 
				  
				
					
						
							|   | 
							
							
							  | 
							
							
							  | 
							
							
							  | 
						 
						
							|   | 
							petSD | 
							petSD+ 
							Version 1.x | 
							petSD+ 
							Version 2 | 
						 
						
							| Microcontroller | 
							
							 
							Atmel 
							
							ATmega 1284P  | 
						 
						
							| CPU | 
							8-bit
							AVR | 
						 
						
							| Flash | 
							128 Kbytes | 
						 
						
							| SRAM | 
							16 Kbytes | 
						 
						
							| EEPROM  | 
							4 Kbytes | 
						 
						
							| Clock  | 
							18.432 MHz | 
							18.432 or 16 MHz | 
							16 MHz | 
						 
						
							| Media | 
							
							SD 
							Card | 
						 
						
							| Interfaces | 
						 
						
							| 
							 PET  | 
							
							
							IEEE-488 | 
						 
						
							| 
							 IEC  | 
							
							N/A | 
							
							Custom Cable | 
							
							6-Pin DIN | 
						 
						
							| 
							 Expansion  | 
							
							I2C-Bus | 
							
							I2C-Bus | 
						 
						
							| 
							 Programming  | 
							6-pin
							
							ISP | 
							6-pin
							
							ISP | 
							6-pin
							
							ISP | 
						 
						
							| 
							 Ethernet  | 
							
							 
							
							ENC28J60 
							2  | 
							(none) 
							2 | 
							(none) 
							2 | 
						 
						
							| 
							 USB to Serial  | 
							
							
							FT232RL 3 | 
							
							(none) 3 | 
							
							External | 
						 
						
							| RTC | 
							
							
							DS1307 4 | 
							
							
							PCF8583 4 | 
							
							
							DS3231 | 
						 
						
							| Buttons | 
							
							
								
									
										| 1. MCU Reset | 
									 
									
										| 2. Previous Image | 
									 
									
										| 3. Next Image | 
									 
									
										|   | 
									 
								 
							 
							 | 
							
							
								
									
										| 1. MCU Reset | 
									 
									
										| 2. Previous Image | 
									 
									
										| 3. Next Image | 
									 
									
										| 4. Select Image | 
									 
								 
							 
							 | 
							
							
								
									
										| 1. MCU Reset | 
									 
									
										| 2. Previous Image | 
									 
									
										| 3. Next Image | 
									 
									
										| 4. Select Image | 
									 
								 
							 
							 | 
						 
						
							| Indicators | 
							  | 
						 
						
							| 
							 LEDs  | 
							
							4 | 
							
							2 | 
							
							3 | 
						 
						
							| 
							
							 | 
							
							
								
									|   +5 VDC power | 
								 
								
									|   On = unsaved buffers | 
								 
								
									|   Flash = Error | 
								 
							 
							 | 
							
							
								
									|   | 
								 
								
									|   On = unsaved buffers | 
								 
								
									|   Flash = Error | 
								 
							 
							 | 
							
							
								
									|   | 
								 
								
									|   On = unsaved buffers | 
								 
								
									|   Flash = Error | 
								 
							 
							 | 
						 
						
							| 
							
							 | 
							
							
								
									|   +3.3 VDC power | 
								 
								
									|   Access / Busy | 
								 
							 
							 | 
							
							
							 | 
							
							
							 | 
						 
						
							| 
							Yellow | 
							
							N/A | 
							
							N/A | 
							
							+5 VDC power | 
						 
						
							| Alphanumeric Display | 
						 
						
							| Display | 
							(none) | 
							ASCII LCD 
							5 | 
							ASCII LCD 
							5 | 
						 
						
							| Controller | 
							(none) | 
							(none) | 
							ATTiny25 / 45 | 
						 
						
							| Programming | 
							N/A | 
							N/A | 
							6-pin
							
							ISP | 
						 
						
							| Board Size 
							1 | 
							  | 
						 
						
							| Horizontal | 
							116 mm | 
							99 mm | 
							99 mm | 
						 
						
							| Vertical | 
							62 mm | 
							62 mm | 
							100 mm | 
						 
					 
				 
				  
				Board Size 
				When I looked at the costs of having a new PCB produced, I 
				found that the size and shape of the original petSD PCB was just 
				outside the footprint of the most cost effective size that the 
				PCB manufacturer that I use offers. The price differential was 
				not really significant, particularly if someone only needed a 
				single PCB, and would not in itself been enough of a 
				justification to redesign the PCB. However, Nils had other 
				suggestions for changes that could be made that does justify 
				some minor PCB component and layout changes (below). Another 
				advantage of modifying the board layout is having the 
				opportunity to place mounting holes to make fitting the board 
				into a case easier. 
				  
				Ethernet Controller 
				The original petSD design makes provision for the 
				installation of a Microchip
				
				ENC28J60 10MB/s Ethernet controller, but although the 
				hardware has been tested, there is no software available that 
				can take advantage of the port. Since the Ethernet port would 
				probably never be used in practice, the space allocated to it on 
				the PCB is pretty much wasted, and dropping the connector and 
				supporting components is probably enough to reduce the board 
				footprint below the 100mm price-point.     
				  
				USB to Serial Interface 
				The original petSD included an
				FTDI
				
							FT232RL
				USB to serial
				
				UART interface chip to provide a USB interface via a virtual 
				serial port. However, the USB functionality in petSD was 
				severely limited and given the limited uses for the USB/serial 
				interface, for petSD+, it was decided that, at the expense of 
				the USB port, some of the
				MCU 
				I/O pins could be better utilised to support the addition of an 
				LCD text display (see below). 
				Should anyone have a need for the serial interface, this will 
				be available in petSD-duo, 
				albeit, that this may be some way off. 
				  
				Real Time Clock 
				The original petSD had provision for a battery backed Real 
				Time Clock (RTC), using a Dallas Semiconductor (Maxim)
				
				DS1307, that could be used to set time stamps for files. In 
				the light of experience, Nils describes the DS1307 as 
				"ridiculously inaccurate", so, the RTC on the new version will 
				be implemented using an NXP 
				Semiconductors
				
				PCF8583. However, although the PCF8583 is capable of much 
				greater accuracy than the DS1307, this requires a highly 
				accurate frequency meter to fine-tune the oscillator frequency 
				and achieve an accuracy of +/- 5 minutes per year. Without a 
				high accuracy frequency meter, "trial and error" adjustment of 
				the RTC will be possible, so a reasonable level of accuracy 
				should be possible. 
				  
				LCD Text Display   
				petSD supported files residing in directories of the FAT tree 
				as well as inside disk images like
				D64,
				D80,
				D82 
				and others, but there was no indication on the device of which 
				disk image has been selected. In petSD+, the LCD display can 
				display the image currently made available as an emulated floppy 
				disk and the the Prev/Next buttons used to select an alternative 
				image. 
				  
				petSD+ Version 2 - 2018
					
				Some 80  petSD+ Version 1.x units were distributed in a mixture of 
				pre-built and kit form between August 2015 and December 2017 
				with no adverse comments from the purchasers on the features or 
				usability of the device. In fact, I received nothing but 
				positive comments on petSD+.  
				However, there were a couple of things about petSD+ that Nils 
				and I were not completely happy with, most of which did not 
				affect the user experience.  
				
					- SD Card Slot : fitting the SD card slot was the most 
					awkward task involved in building petSD+. The terminals for 
					Card Detect and Write Protect were VERY small, requiring 
					great care when fitting the slot and there was a risk that 
					this could go wrong. Although I only fatally damaged one PCB 
					when trying to refit a badly fitted card slot, I did have a 
					few that needed a bit of rework.
 
					- LCD Connection : the display was connected to petSD+ using a ribbon cable that was soldered directly to 
					the back of the display. Whilst it works well enough, I found that 
					fitting the displays was not a very enjoyable experience and 
					a plug/socket arrangement would have been much better.
 
					- LCD Brightness : the design included a potentiometer to 
					allow adjustment of the LCD contrast, but the backlight 
					brightness was set by a fixed value resistor soldered to 
					either the PCB or, for ease of replacement if the LCD screen 
					was replaced with a different type, to the front of the 
					display itself.
 
					- LCD Type : the Green on Black 
					("negative") displays proved to be very popular but the 
					displays I originally used no longer seem to be available. I 
					have sourced an alternative, but it needs to be connected 
					differently, so wiring mods are needed when using these 
					displays.
 
					- IEEE-488/IEC Mode Connections : the 
					NODISKEMU firmware supported computers such as the C64 which 
					use IEEE-488 serial /IEC mode but required a bespoke 
					IEEE-488 to 6-pin DIN cable which were a pain to make.  
 
					- Real Time Clock : the PCF8583 RTC was 
					not very accurate
 
					- Debug Facility : a serial debug 
					facility was provided, but needed to connect in place of the 
					Green LED
 
				 
				Nils has now developed a Version 2 design that addresses all 
				of the issues noted above. In addition, the Version 2 design 
				also includes a 6 pin DIN connector to allow direct connection 
				of serial IEEE-488 based devices, i.e., the Commodore 64 and Vic 
				20, using a standard IEC serial port cable.  
						As a result of the changes made in the Version 2 design, the 
				footprint of petSD+ has increased from about 70cm2 to 
				just under 100cm2. In the photo below, the IEEE-488 
						connector is not fitted to the Version 2 board, however, 
						Version 2 boards will include both the IEC and IEEE-488 
						connectors when they ship. 
						
						Version 2 devices are likely to start shipping at the 
						beginning of February 2018
				 petSD+ Version 2.1 / 2.2 - 2018 
						A few minor changes were made to the PCB to 
						correct some minor clashes. The biggest change was to 
						relocate the LEDs to the left hand side to make it 
						easier for people to design a 3D printed case, such as 
						the one produced by Stephan Both.
				 petSD+ Version 2.3 / 2.4 - January 
						2019 The SD Card slot used on the version 2 
						board has been made obsolete by the manufacturer and is 
						no longer available from any of the suppliers that I 
						previously used. Nils redesigned the PCB to incorporate 
						a different SD card slot and made a few other minor 
						layout changes. I never supplied any petSD+ units with a 
						Version 2.3 PCB, Version 2.4 was made available in March 
						2019.    
					  
				 
				 |