Hello Arduinoites. For some time I have been working on a way to use Arduino shields with the Parallax Propeller chip. My first revision, the Propeller ASC is a reality. It's intention is to allow those with a collection of shields to give the Propeller a try. The ASC conforms to the Arduino connector layout and uses the FT232 chip for USB. That's where the similarities end. It's programmed in native SPIN or Assembly. There is 3rd party support for many other languages including C. It has both 3.3v and 5v regulators. 6 channel ADC. 22 digital I/O (The standard Arduino 14 plus 8 more on a unique AUX port). It can be powered from either the USB or 6-9vdc power jack. The AUX port can output VGA or KVM (keyboard, composite video and mouse) with just a handful of resistors. The current version has 3.3v I/O but is 5v tolerant. A version with active 5v level translators is in production. I have spent a significat amount of money developing this board and I am intersted in guaging the interest in something like this before I go any further. I welcome both positive comments and constructive criticism.
Well the board looks to be super, nice layout. I would guess it's ultimate success might depend a lot on the software support side. Is there a IDE avalible and is the avalible C open sourced? Not sure too many Arduino users would be ready to jump into propeller assembler or spin?
Very well done!
This was something missing years ago.
I hope you could make it for <$35?
A shield with VGA and PS/2 connectors will follow, I guess?
Which ADC are you using?
Why didn’t you follow the Seeeduino concept, in (additionally) providing holes for a true 2.56 mm grid ??
Not sure too many Arduino users would be ready to jump into propeller assembler or spin?
But now there is this option… The Propeller is around 10x more powerful than an AVR chip, depending on the application. The IDE is as easy/simplified as the Arduino IDE. But everything is “different”, of course.
Thank you for your replies.
Lefty, SPIN would be the beginners choice on the P8X. Parallax provides a free IDE and tons of MIT licensed objects to do all the basic IO like I2C, SPI and UART. Plus NTSC, PAL, VGA etc. A subset of GNU C has just been successfully ported by another P8X enthusiast.
deSilva, I am very aware of the seeduino's "grid-centricity". The easy answer for why I didn't is there was no room for a second set of headers. My #1 objective was plug compatibility with shields. The ADC used is the MCP3008 (10-bit, 6ch). There is already a design posted on that thread for a KVM board that is single sided and only requires connectors and 11 resistors to do keyboard, mouse and NTSC (or PAL). Something easily etched and assembled at home, or sold in kit form. That adapter uses only the AUX port leaving all the Arduino compatible pins free. VGA is also possible using a connector and 8 resistors, but you lose the keyboard and mouse for lack of pins. $40 is the price. I really don't want to compete with Arduino. Such is feat is impossible anyway.
I shy away from comparing the P8X to the AVR. AVR encompasses so many chips while there is only one P8X. The ATMega1280 in the Arduino Mega, for example, provides so much more in hardware than the P8X. While the P8X gives up dedicated hardware for eight 32-bit RISC cores running at 80 MHz. The two systems are just so different it's hard to make a comparison.
spin is also governed by whitespace like python (which I CANT STAND)
also prop's get the raised eyebrow from me due to the no interrupt thing, you can have them you just have to dedicate a cog (80 mhz 32 bit core) to it :-?
That is true... But that is great! Interrupts are terrible nonsense, but you are forced to use them on single processor machines...
Interrupts are terrible nonsense
How? If they're such "terrible nonsense", why would they have ever been used since nearly the "dawn" of the electronic digital computer? Why would they still be used on just about every computing architecture (except the Propeller, among a few others).
I am not saying interrupts are a required thing for a computer architecture, or even desired - but if they were as bad as you imply, something else would've taken their place by now, after 50+ years, I would think...
This would be a very long story.... I don't know whether it makes sense to talk about it in this forum here, as it would touch some theoretical computer science concepts.. For short: When hidden within the processor virtualisation of an RTOS, interupts are not distinguishable from other task activations by the programmer. It is in the responsebility of the RTOS to somehow accomplish the specific response time requirements. A good RTOS is hard to find...
Without an RTOS the task switch triggered by an interrupt request had always been rather incomplete in the microprocessor world. A more systematic approach, by using interrupt vectors and pushing work registers on a software stack is somewhat new and needed more expensive processor architectures. Programmers still prefer "fast" interrupts with reduced overhead.
Though a branch to an alternative address can be easily performed by the hardware (just read the next instruction address from somewhere else..., please study interrupt mode 1 in the Intel8080 processors) the burden for the programmer was high, still is, and the asynchronicity is error prone, even for seasoned real time programmers.
The great advantage of a multi-processor architecture is that you have absolutely defined timings: no nesting, no delayed interrupt service. The cost however is high! It is a dedicated processor for 50 or 60 cents. This is unacceptable in consumer products. So we are living with the low-cost version called interrupt handling.
I have taught both techniques during the last years; very few students were able to grasp all implications from interrupt handling. Debugging with interrupts generally needed a logic analyser...
and that cost is even higher when you want to use external interrupts and have to dedicate an entire cpu to it
anywho were way off topic
The Propeller ASC is now available for purchase at 1mgh.com. The final version has moved the reset button to the left edge for slightly easier access. Added pads for vin, gnd, and reset. Added 2nd row of pads under the Digital headers for .100" alignment. Reconfigured the AUX port to provide a pseudo ICSP header for compatibility with Ethernet shield v5 and two more analog inputs (8 total). Added facility to do I2C on analog 4 & 5.
Just a couple of quick updates on this project. There is now a “plus” version with 64kB EEPROM (32k for prog / 32k for offline storage) and a 12-bit 8-channel ADC. Also the KVM adapters are available.