When working on the schematic and layout for this project, I referenced the following links:
http://www.nf6x.net/2013/10/cocoeprompak/: Mark J. Blair's CoCoEPROMpak blog.
https://github.com/NF6X/CoCoEPROMpak: GitHub repository containing Eagle CAD project files for Mark J. Blair's CoCoEPROMpak. I used the CoCo Cartridge device from this Eagle project as the basis for my Eagle project.
February 1st, 2016 - Final Thoughts
I got a good start on my CoCo cartridge project this month. I hope to get the boards put together and tested before the next Retrochallenge so that I can really start having some fun!
I read through many of the other entries from my fellow competitors and I have to say that I am really amazed by what I saw. There were so many entries this time, it took awhile to read through them all! While there were a few entrants that seem to have gotten stalled right out of the gate, most didn't. For the ones that made any progress at all, they made for pretty good reads. I do however have some personal favorites:
- MASS_WERK's Maze War for Olivetti M10 and NEC PC-8201A - There is just a lot of great documentation here for the retro laptop Kyocera KC-85 computer and it's siblings, including the TRS-80 Model 100. I have a Model 100 and know that if I was ever going to sit down and do some real coding on it, I would start with this awesome project to get tons of pointers.
- Paul Robson's Wallpaper Computer - Wow! So much was accomplished in one short month on this project: wrote an emulator for the SC/MP processor, setup hardware emulation, wrote a monitor that includes basic assembler/disassembler functionality, wrote simple MINOL (high level language like BASIC) interpreter, and ported the classic Star Trek game to MINOL.
- 16kram's Port of classic Star Trek text games to the Mattel Aquarius - Speaking of classic Star Trek games, this project discusses a bit of the history of these games and then goes about porting one of the earliest versions to the Mattel Aquarius.
- John W. Linville's Xmas Rush for the TRS-80 MC-10 - The game is interesting! The platform is interesting! And as usual the documentation of the whole process is what I have come to expect from John - Excellent!
- Brett M. Gordon's Global Thermonuclear War - Global Thermonuclear War for the Tandy Color Computer 2, my current retro machine of choice. It uses networking over DriveWire to allow for multiplayer gaming action over the Internet. What does he use as a game server? An IRC (Internet Relay Chat) server of course!
- Jim Gerrie's BASIC Games for the TRS-80 MC-10 - More MC-10 gaming goodness. Game ports to this platform often also end up on the CoCo as well so that is another big win!
January 30th, 2016 - Where Am I At?
At this point I don't think I will get the order in to have the PCB manufactured before the end of this Retrochallenge but it definitely looks like I should be ready to do so during the first week of February. I always knew that I wouldn't have time during this Retrochallenge to get the boards all together and doing something cool in a month. It would have been nice though if I could have had the boards back before the end of the month and started basic bring up. Either way, I will still be ready for the next Retrochallenge with actual debugged boards.
This was one of the most challenging Retrochallenge projects I have set for myself so far. I am a software guy so this project was way outside of my comfort zone! I was really pushed to learn new skills. Those new skills will definitely be useful for other future projects. Based on that I still consider it to be a personal success! This was my first PCB layout in almost a decade and definitely my most ambitious to date!
January Work Items
- Get the layout reviewed by friends who actually do this kind of thing for a living.
- Print out the layout (the component pads in particular) on paper at 1:1 scale and verify the footprints against the parts that I have already received from DigiKey.
- Clean up the component labels which will end up on the final silkscreen.
Work Items to Complete Before Next Retrochallenge
There are a few things I would like to complete over the next couple of months to prepare for the next Retrochallenge:
- Incorporate layout feedback.
- Send off to have the PCBs manufactured.
- Populate boards and verify basic functionality of each major section:
- Power Regulation
- 12MHz Oscillator
- LPC1769 CPU & JTAG/SWD port
- uSD Card
- CoCo Cartridge Edge to LPC1769 Connections
January 21st, 2016 - Parts Have Arrived!
The above images more or less tells the whole story of where I am with the PCB layout for this project. At this point, my goal for the Retrochallenge is to actually do the layout and get the PCB ordered. I would then solder it together and perform some basic bring-up after the Retrochallenge closes. This would make it ready for me to put it to real use in the next Retrochallenge.
January 13th, 2016 - Some Progress!
I completed the schematic capture for my CoCo cartridge earlier this week and the Eagle CAD project containing it can be found here. My schematic is heavily based on this ARM mbed-1768 schematic. I have been using these NXP LPC1768 based mbed modules in many of my embedded projects over the last few years so using the LPC1769, a 120MHz version of the 100MHz LPC1768, was the path of least resistance for me. I decided to design my own PCB for this project to force myself to relearn the process, to get my first experience at having my own PCB design professionally made (In the past I have etched my own boards which were mostly through-hole designs), and to give me access to more pins on the LPC176x device.
Some notes about my CoCo cartridge design so far:
- It uses a 120 MHz NXP LPC1769 ARM Cortex-M3 microcontroller with 512k of FLASH and 64k of SRAM.
- The CoCo is 5V and the LPC1769 is 3.3V but the microcontroller pins connected to the cartridge edge connector are all 5V tolerant. This means that the 5V signals from the CoCo hardware will cause no problems for the microcontroller. Everything should work fine as long as all of the CoCo hardware on the bus will see 3.3V signals from the LPC1768 as a high value representing a 1 and not a 0.
- I have included a USB mini-B connector in my design. This will allow the LPC1769 to be connected to the PC and act as a full-speed (12 Mbit/sec) USB device.
- The design includes a TI DP83848C Ethernet PHY chip and Ethernet Jack (with magnetics) capable of 10/100 Mbit/sec communications. This will make it possible for the LPC1769 to communicate with the PC via UDP and/or TCP as well.
- I connected the single DAC output pin of the LPC1769 to the SND pin on the CoCo cartridge edge connector. The analog voltage range of 0-3.3V should be ok for the CoCo; it just won't generate the full volume range possible. This makes it good enough for experimentation and later I would add an amplifier in future revisions to obtain the full 0-5V range.
- There is also a socket on the board to allow modern uSD cards to be accessed via the LPC1769's SSP0 peripheral.
- I included a 6-pin 0.1" pin header in the design so that I can connect a FTDI cable to the LPC1769's UART0 for debugging and/or ISP programming.
- Added pads to nReset and ISP pins so that the device can be brought up in ISP programming mode if needed.
- Also added a 2x5 JTAG/SWD header so that I can connect my J-Link debugger module. This will be my preferred method for debugging and programming but the UART gives me a backup plan.
I utilized or extended parts from these fine github repositories when creating my schematic:
Mark J. Blair's CoCoEPROMpak Eagle Project
SparkFun's Eagle Libraries
Adafruit's Eagle Library
DigiKey Order Placed
Once I had completed my schematic for the CoCo cartridge, I ordered up the components from DigiKey Electronics. I should have them on hand by the time I finish the PCB layout so that I can verify the device footprints before sending off to have the boards made.
My order included:
|Quantity||Part Number||Description||Unit Price|
|1||568-4966-ND||LPC1769FBD100,551 - IC MCU ARM 512KB FLASH 100LQFP||11.19000|
|1||DP83848CVV/NOPB-ND||DP83848CVV/NOPB - IC TXRX ETHERNET PHYTER 48-LQFP||5.13000|
|1||SAM8799-ND||FTSH-105-01-L-DV-K - CONN HEADER 10 POS DUAL .05" SMD||3.25000|
|1||1278-1011-ND||RB1-125BAG1A - CONN MAGJACK 1PORT 100 BASE-T||2.55000|
|1||101-00660-68-6-1-ND||101-00660-68-6 - CONN MICRO SD CARD PUSH-PUSH R/A||1.82000|
|1||535-9561-1-ND||ASE-12.000MHZ-LC-T - OSC XO 12.000MHZ CMOS SMD||1.37000|
|1||535-9577-1-ND||ASE-50.000MHZ-LC-T - OSC XO 50.000MHZ CMOS SMD||1.37000|
|1||H2959CT-ND||UX60-MB-5ST - CONN RECEPT MINI USB2.0 5POS||1.07000|
|1||497-1242-1-ND||LD1117S33TR - IC REG LDO 3.3V 0.8A SOT223||0.46000|
|1||495-5639-1-ND||B82422A1183K100 - FIXED IND 18UH 155MA 2 OHM SMD||0.46000|
|4||399-3683-1-ND||T491A106K006AT - CAP TANT 10UF 6.3V 10% 1206||0.30800|
|1||BSS84CT-ND||BSS84 - MOSFET P-CH 50V 130MA SOT-23||0.23000|
|2||399-8030-1-ND||C0805C180K5GACTU - CAP CER 18PF 50V NP0 0805||0.10000|
|1||P4.87KCCT-ND||ERJ-6ENF4871V - RES SMD 4.87K OHM 1% 1/8W 0805||0.10000|
|4||P49.9CCT-ND||ERJ-6ENF49R9V - RES SMD 49.9 OHM 1% 1/8W 0805||0.10000|
I now need to get back into Eagle and start laying out the PCB. Given my current schedule, I think I will complete the PCB design and get it sent off to OSH Park for manufacturing before the end of this Retrochallenge event but they won't be manufactured in time. I guess I know what I will be doing for Retrochallenge-2016-July!
January 8th, 2016 - Slow Start!
I am getting off to a slow start for this Retrochallenge. I am not at the point that I have anything to show yet but I thought I would give some more details on what I hope to accomplish for this month's challenge.
My main goal is to connect a 32-bit 120MHz NXP LPC1769 Cortex-M3 microcontroller to a Tandy CoCo2 through the 40-pin cartridge port. Why would I want to do that?
- Why Not?
- Get more PCB design experience. I have done quite a bit of protoboard work for my hobby embedded projects over the last 5+ years but it has been some time since I actually fired up Eagle CAD and did a proper schematic and layout.
- Build a cartridge that is flexible enough to explore some CoCo hardware ideas I have had:
- Hardware debugger.
- Serial connection between CoCo and PC via USB.
- Floppy drive simulation.
- Hard drive simulation.
- Multi-bank ROM cartridge.
- And More!
I don't expect to actually explore the above ideas this month but I want to get the hardware in place to make it possible for future Retrochallenge events.
Mapping CoCo Signals to LPC1769
One of the first things I had to do was figure out what functionality of the LPC1769 I wanted to exploit in this project. The four LPC1769 peripherals that I wanted to take advantage of for this project include:
- USB for connectivity to PC.
- Ethernet for higher speed (100Mb/s versus USB's 12Mb/s) connectivity to PC.
- DAC for generating sound.
- SSP to communicate via SPI to a uSD card.
After reserving pins for the use of the Ethernet, USB, and SSP peripherals (wowser Ethernet uses a lot of pins to talk to the PHY chip), I came up with the following mapping of CoCo signals to LPC1769 pins:
|Cartridge Pin||Name||LPC1769 Pin||Notes|
|1||-12V||NC||Only connected on CoCo1|
|2||12V||NC||Only connected on CoCo1|
|5||RESET*||P2_11||Potential interrupt source|
|6||E||P2_12||Potential interrupt source|
|7||Q||P2_13||Potential interrupt source|
|9||+5V||NC||Powers 3.3V voltage regulator|
|10||D0||P2_0||D0-D7 on lowest 8-bits of Port 2|
|18||R/W*||P0_0||Same port as A0-A15|
|19||A0||P0_4||Too bad A0-A15 aren't on contiguous pins|
|32||CTS*||P0_24||Same port as A0-A15|
|35||SND||P0_26||DAC pin to allow output of digitized sounds|
|36||SCS*||P0_25||Same port as A0-A15|
Working on Schematic Capture
I started getting back up to speed on Eagle at the beginning of the week and the schematic capture for the cartridge is now in full swing. I will issue an update here when I finish the schematic for this project.
Useful CoCo Cartridge Links
I have found the following sites to be helpful as I work on this project:
http://www.nf6x.net/2013/10/cocoeprompak/: Mark J. Blair's CoCoEPROMpak blog.
https://github.com/NF6X/CoCoEPROMpak: gihub repository containing Eagle project files for Mark J. Blair's CoCoEPROMpak.
http://retrotinker.blogspot.com: John Linville's Retro Tinker blog which includes his Retrochallenge 2015/07 cartridge related project.
http://fahrfall.blogspot.com: John Linville's Fahrfall blog which includes cartridge creation back in Retrochallenge 2014/07.
December 10th, 2015 - Project Overview
My plan for this Retrochallenge project is to get a start on the design of a cartridge for my TRS-80 Color Computer 2.
Goals for this time around:
- Nail down the functionality that I want from this cartridge.
- Complete schematic capture and PCB layout.
- Order parts.
- Get board professionally made.
If I am lucky I will get to soldering up the board in January but really I just want to be ready to put the cartridge hardware through its paces during the July Retrochallenge.