LMR Reviews Propeller Platform USB
I have had this board in my hands for over a month and I have to say that this review may be a bit complicated. I feel that I not only need to review this board specifically, but also Propeller in general and Spin, it's language. I will do my best to separate the two and note what Gadget Gangster (GG) has done with this product as well as how Propeller stacks up against other microcontrollers as well. Much of the information in this review will be repeated in the videos and vice-versa.
Through GG's "profit sharing" system, I designed a product/project that is for sale now at GG. I have received money from the sale of this project. Also, I consider Nick a friend. That being said, the amount of money I have received was quite little and neither that or my friendship should influence this review.
Overview/ Opening the Package:
I received the Propeller Platform as well as (2) ProtoPlus modules via regular ol' mail. I found everything well packed and was pleased to find a small "Cracker-Jacks" prize tucked in as well. In hindsight, I am not sure it the prize is a standard addition to GG shipments or a "bribe" --I will assume it is the former. :)
* 80Mhz 8-Core Parallax Propeller with removable 5MHz crystal
* 64kb EEPROM for long-term program and data storage
* 5V and 3.3V 1.5A Voltage Regulators accept 5.5v min. power input
* Comes with a 2.1mm barrel power jack connector and screw terminal connector
* 2.8" x 2.5" footprint with pin sockets to add additional Platform modules or connect to a breadboard.
The Propeller Platform USB is designed and assembled in California.
Overall, I am quite happy with the board itself with very few complaints. I was requested by Nick to be "brutal" with this review and I will try, but really most of what I have to say are observations which neither add nor subtract from the board. First off are the female headers on the right and left side of the board. These are used to connect to external devices as well as expansion modules ("shields") which can be added to the top of the board as well as the bottom. These headers fit into one of two sets of holes (either "inside" or "outside") and each subsequent board attached much match this alignment with it's pins. The downside to this is of course, that it would be easy to solder the pins to the wrong row and thus, not line-up with the board below. It is suggested that the pins be installed on the "mother board" as a "holder" during soldering and if this is followed there would be no problems but there still, there seems to be a gap here that would allow Murphy's law to squeeze in.
Power comes in via a std. barrel jack, a screw terminal as well as being broken-out to the main female headers on the side. There is also a real-life on/off switch --a feature rarely found on these types of boards. This might be "one more thing to break", especially if you intend to use an external switch but I really like it. You are not able to use the USB to power the board. The voltage regulators are quite robust at 1.5A each (both for 5v and 3.3v) and are capable of running most of everything you would find on a small hobby-style robot, including small motors or a few servos.
A 64k EEPROM is included on-board and is needed for long-term storage of programs and data. A slot for a SD card is also on-board and is permanently connected to pins 0-3. I found the actual SD socket to feel pretty cheap, sorta loose and with no "click" when inserting a card and has no spring-eject. I have had no functional problems with the SD card, but it does feel a bit "weakest link" to me. Along those lines, I must say, the reset button is horrible. Quite possibly the single worst button of any kind I have ever used. It is mushy, non-tactile, completely void of any "click" and give no satisfaction when pushed. Now, I have yet to need to push this reset button very often but when I did, I got nuthin' from it. Again, functional yes, but just doesn't feel good. --I have no idea why I am stuck on this button thing, it really is a minor thing, but everything else was designed so well that this seems like a big "dropped the ball" kinda thing.
The USB plug is fine, holds the cord well and is the "small USB". I remember getting my Arduino and having to steal the cord from the printer because they decided to use a "non-standard" USB plug. This one is just fine and works with one of the many extra USB cords you probably have.
Mounting holes are in the corners where they should be. The board itself is thick and sturdy and is the same size as ExpressPCB's MiniBoard service so designing your own module can be inexpensive. Many of the existing modules sold by GG include DipTrace files for their PCB layout. The board is blue and I like blue.
Many different modules ("shields") are available from GG as well as from 3rd parties to allow for easy connections to audio, video, monitors, NES controllers, etc. etc. All the modules follow the same pattern of the main board in quality and lay-out. I have little to say about them high or low, they simply work and do what they say they do. Nothing great jumps out at me and I have nothing to complain about either.
This sorta blew my mind a bit but, believe it or not, the GG propeller Platform is actually designed and ASSEMBLED in California, which last time I checked is in the US of A. As a Patriot, I smile to think we still actually make something here and of course, therefore taxes are paid here. To me, this is good.
Instructions/ Info/ Walkthroughs from the GG website:
For an independent distributor of a board (actually, Parallax is now carrying this board) GG has done a pretty good job with information and tutorials. There are walkthroughs for the basic stuff, as well as some Instructables available but as and end-user, I will ALWAYS demand more. One issue with Propeller in general, is the scattering of information all around the internets as opposed to one central location --or maybe this seems this way as compared to Arduino. I must admit that I make this statement having more time under my belt with Arduino and Picaxe, so I simply may not have put in the hours to properly find what is out there. Now, Parallax has done a pretty good job with their tutorials and "learning packages" but even then, they seem to be burried inside of file after file (from the main Spin download) and must be "found". The bottom line is that one must do some digging from time to time to find what one wants. This may be more Propeller-specific than of GG. This also might actually be a case of information overload instead of a lack-of, but in any case, I have had problems finding information from time to time.
Propeller and Spin:
This section will describe my experience with propeller in general, and may or may not reflect on GG and/or the GG Prop board itself. That being said, the usability of the chip and language will effect one's decision to purchase so I will include my thoughts.
The Propeller is a funny bird. I simply have no time or space to go over everything as the Prop does a lot of stuff in a way much different than other microcontrollers. Some of these things are great. Some drive me nuts. And some, just "are" and you get used to the "system" after a while of working with it.
First off, this is a multi-core processor. Basically, you got 8 brains in one chip. Obviously, the ability to do at things at once kicks ass and the fact that works at 80MHz is nothing to shake a stick at. This is true parallel processing so you can think of it as running 8 subroutines simultaneously. Each of these processors is called a Cog, with a central Hub talking to them all. This is one of the things to "get used to". There are rules in place on how variables are shared, pins are shared, and "thinkin' space" is shared and one must learn these rules. While, the overall power of this chip is quite a lot, the learning curve as to how to access that power can be a bit frustrating at times. Allocation of memory is a factor, as well as keeping variable and data public and private can be overwhelming to a beginner or even a pseudo-beginner (one switching to prop from another language).
The two obvious things that stick out with the prop is the lack of ADC's and interrupts. It just does not have them, period. Reading an analog input requires the addition of external parts (a resistor and a cap) plus some code or an external ADC chip, speaking via i2c, UART serial or SPI. The lack of interrupts is pretty much dealt with in terms of the fact that you can dedicate a whole cog to just keep an eye on a pin, but it is a whole new way of programming and there can be a real learning curve in dealing with this. Also, there are no bits or booleans. You can deal with bits, shift them ect. but you can't really get a hold of just one. Yup, you gotta waste a whole byte just for a yes or a no.
There are a lot of really neat stuff that the prop can do as well, video and audio out are "standard" with few, if any external parts. The ability to play old-school video games is really cool as well as something that could entice newbies into the hobby. Using the board and SD card as a WAV player works great and has quite good sound quality. There are simply no other chips/boards out there (in the hobbyist market) that can do all this.
Spin is the main language for the Propeller and was designed specifically for it. There are more languages available including assembly (spin and assembly can be "mixed" within one program), prop basic, C, java, 12-Blocks (a flow chart system) as well as others. As with everything propeller, I found some of spin to make complete sense while other parts were quirky and weird. First off, there are not a whole lot of commands. In other languages, something like i2c communications are taken care of for you and the only thing you see are the basic commands for slave set-up, sending data and receiving data where as in spin, it must be done "manually". The good news is that a lot of this work has been done for you in the form of "objects" (libraries) but they, again, can be a funny bird...
Objects and General Propeller Info:
The objects available on the "Object exchange" are extensive and I have yet to not find what I am looking for or at least something close enough to what I need to modify to work. That being said, the objects are written by individuals, not by Parallax so they can at times, be quite inconsistent. Some have been extensively commented including notes on how to hook up the hardware, while others are a total nightmare requiring your to dive deep into the programmer's head to figure out what he was thinking when he wrote it. If one gets stuck when trying to get an object to work, there are few places to go. You can sometimes find more info in the forums with some of the more popular objects, but if you have a weird part you are connecting or trying to do something out of the ordinary, you may find yourself on-your-own in terms of figuring it out.
This bright side of objects is the fact that they look and act exactly like the "regular" code you are writing. They open in the spin editor, and do not need to be tidied up after pulling out of their text file like you would find with Arduino. Again, blessing and curse, you CAN easily modify, strip down, remove and add-to but sometimes you HAVE TO modify, strip down, remove and add-to to get them to work.
This also leads to finding information in general. There is the Parallax website and the main forums which are good, but there is a ton of other information out there from tons of "independent" prop guys. Blessing and curse --there IS a lot of info out there and you CAN find it but sometimes you HAVE TO find it which can simply be a pain in the ass.
Overall, I am very happy with the Propeller and Spin. It took me shy of a month to really get my head wrapped around the Spin language and I have been quite happy with it ever since. The "funny things" that the propeller does (no ADC's, etc.) have turned out to be pretty minor in the grand scheme of things and I quickly got used to them. I am glad that I had learned other languages first and then switched to the Prop --I think to switch the other direction would be more confusing than it is worth.
The Gadget Gangster Propeller Platform USB is a quality board, well made and thought-out and is far superior to the "standard" parallax board with the same chip. The modules cover just about anything you would want to plug in, and are very open in terms of information to help you design your own.
Nick himself, has been quite friendly, kind and helpful to me personally, and I could not imagine that he would not be to any of his customers.
Any of my complaints have been answered by a nifty feature that quickly made me forget why I was complaining.
I gotta give this board a solid 9 as well as Propeller, Parallax and Spin around a 8 or 8+.