It’s been a while since I had time to work on the project, so I figured you deserve an update.
Here’s the short version of my to-do list:
- Work on documentation
- Parallax GCC for Propeller
- New schematic / PCB design tool
- Improve the schematics to reduce dependencies
I’m still working on Part 2 of the Theory Of Operation article. I noticed that both Part 1 and the unfinished part 2 are increasingly inaccurate because of some design decisions that I made several months ago. I will put some time into updating them to the most recent status. Also, I want to make sure that beginning electronics hobbyists can read it, even if they only have some understanding of digital electronics, and no knowledge about the chips in the Propeddle project.
I’m really excited about the new Beta release of GCC for the Propeller by Parallax. Switching from Spin to C or C++ will make things a lot easier for me and future users of Propeddle:
- I use an LED for debugging, but in Spin and PASM the only way to remove code to turn it on or off is to comment out the code. With the C/C++ preprocessor it’s possible to do this “automagically” by using #if/#endif blocks.
- The Spin language uses weak data typing. In C/C++, typing is much stronger so the compiler will guard against many mistakes.
- For potential customers who have never worked with the Propeller before, the Spin language’s learning curve may be a major obstacle. If you work with C/C++ every day, it’s easy to make mistakes when you write something in Spin.
- Data structures don’t exist in Spin. Structs are an important part of C/C++ and can really help keep things organized.
One of the concerns I had about using C or C++ with the Propeller is that the architecture of the chip is so unconventional that it might be impossible for the compiler developers to get it right. But they did an excellent job of making it very straightforward to do mixed-language programming where Spin and PASM are combined with C/C++. This is very important for the Propeddle software because I would like to convert the tedious error-prone code to C/C++ but it’s unavoidable that the time-critical main loop that controls the 6502 will have to remain written in Assembler.
I’m going to design a new circuit board, pretty much from scratch. Here’s why.
- The Propeller Platform is on its way out. GadgetGangster (formerly the biggest supporter of the platform) is clearly leaning towards the Parallax QuickStart as a platform for new projects, and some existing Platform boards have already been discontinued.
- When I was buying the parts for the Propeddle kits, I found out that the combined male/female headers are very difficult to find in the size that’s needed for the Propeller Platform. Also, they are fairly expensive, and for the customer they pose a problem because of alignment issues.
- With the current design of Propeddle, customers are required to buy not only the Propeddle kit but also a Propeller Platform motherboard and a video/keyboard board. Also, it’s necessary for them to modify the video output because Propeddle uses non-standard pins for video. I realized that this may be too much to ask.
I decided to create a new PCB that will have everything on it: 6502, SRAM, glue logic, video outputs (VGA and CVBS), Propeller, EEPROM, and power supply. That way, once the kit is soldered together, all you have to do is connect it to a TV/VGA monitor and a keyboard, and it will work; no other hardware will be required.
Nevertheless, I have some ideas to keep the design compatible with the Propeller Platform, and I want to make the PCB compatible with the QuickStart too.
But before I can design a new PCB, I’m going to have to switch to a different design tool. Now that Propeddle is officially a commercial project, I can’t use the free version of Eagle anymore. The full version of Eagle is too expensive for me and the more affordable Light version won’t make it possible to make my circuit board any bigger. So I’m looking for a free alternative. So far I tried Kicad and Designspark PCB, and both look promising. But it will take me some time to get started with this because I have to re-learn everything.
There are only a few chips on a Propeddle board but it really is a lot of work to get a project like this off the ground. It will happen eventually, so as usual I will close by saying: Thanks for your patience!