View Full Version : Propeller powered C3, Arduino and the new "shield" standard
11-10-2010, 05:51 PM
I am sure that many of us see the new C3 as a great new addition to the Propeller family of products, but i see it as something even greater... This module has 64 Kilobytes of ram, a megabyte of flash, sd support, video and keyboard support...Heck it seems like it can do anything. We could all work on a new standard propeller OS and we could find a standard output device(Perhaps a VGA display or a OLED with a touchscreen)....This brings me to my main point...
The Arduino has gained a reputation as a easy to use device(even though the Prop is easier to use in my opinion) and also for its use of a standard programming language, but i think one of it's greatest strengths lies in its modular
"shields".. These shields can be stacked many times upon one another and each one can be used independently of one another... Even critics of the Arduino can not deny this great asset...SO here is my big proposal!!!
Why not take the best of both worlds... The speed and flexibility of the Prop C3, combined with the modular stack-able shield ability of the Arduino. We wouldn't have to call them shields if we wanted. We could call them modules or platforms or something. The C3 is practically MADE for this.
I know a lot of the forum members also do a little small scale manufacturing(We have Gadget Gangster, Bill Henning, Cluso99, Rayman, Dr_Acula and a few others i can't think of right now), We could tap these small scale manufacturers and create a community "Marvel team up" of sorts. I can not pledge to make huge complicated modules, but i could probably manufacture a few small modules using my homemade PCB technique. My main usefulness would be on the software end... I can whip up test programs really fast, plus i know a little PASM so i can code moderately well in it...Imagine having a C3 made exponentially more useful by a bunch of cool addons... I think our main first objective would be to create a standard OS(Perhaps even a graphic one) that can launch other Prop programs(which could include stuff like custom languages and APPS)...We could all be singing off the same song sheet for once. Even though the Prop 2 is coming out soon, and even though i know you guys are busy right now, i really think this idea could work...AND even though my main inspiration for coming up with this idea was a open source community project, there could actually be some money to be made(for hardware addons)
I am not sure what Parallax will think of my plan, but i think it is a good idea and it will help them because more people will buy the actual C3 base from them directly... We could even create a separate website devoted to getting the new C3 standard to work(Perhaps we could even sell some of the modules on there to)
I can pledge some of my time/ Money to get this thing rolling( it might be kinda hard for me in the next few weeks because i am moving, but i will still try my best)...What do you guys think of this plan? Is there any legal issues to worry about? Any plans of your own for the C3 that could fit into this project?
We are a community that has the power of diversity, and with this power we can do really neat things...Is this dream a little far-fetched?
11-10-2010, 06:01 PM
I hate to look like an idiot, but what's a C3?
11-10-2010, 06:13 PM
@Electriceye...Check out the link. I think you will like it..
What exactly is your plan? And why are you psuhing for a prop os its not designed to run an os. Are you proposing that the c3 should be arduino shield compatabile and use their horrible pin spacing? Or are you suggesting we standardize a pinout connector.
The latter is already being done.
Please elaborate on your plan because your first post said a lot without actually saying anything.
11-10-2010, 06:53 PM
@Electriceye...Check out the link. I think you will like it...
Yes, it sounds like fun. I'm not sure why I never noticed it before.
Looks like a winner to me!
11-10-2010, 08:14 PM
@Vern...One quick look at the C3 specs and you would quickly realize that it is in no way adherent to the Arduino shield standard. I personally dislike the shield standard that the Arduino uses to. It is a inefficient use of space and it requires the shield to be a certain fixed size or else it will not fit...And i don't know where you have been, but the Prop has had many an OS designed for it(I am even making one). A small OS would enable you to store a library of programs on a sd card and run them at your disposal. It would also enable the user to not need a serial programming device(even though the C3 has built in USB) for adding programs...
My intent of the first post was not to lay out explicit rules, but to ask for commentary/ constructive criticism from the other members so together we could create a new standard. Did you have any other thoughts?
@ElectricAye...Yep, the C3 seems to be a venerable device... I can't wait to start playing with one.
Doesn't the standard pinout discussion already adress these issues and if there are already os's for the prop why reinvent the wheel. Running an os on the prop may be fun but wouldn't a simple bootloader be more inline with what you are suggesting. An os would over complicate and greatly slow down simple programs would it not. Also wouldn't an os create a huge unneeded overhead? Plus it would also cause huge headaches for any timing sensitve applications unless it is an RTOS.
I guess I just don't see the point.
11-10-2010, 11:03 PM
Sphinx already runs on the C3 with some changes to the low level SD card I/O routines. That's one "OS". I'm working on getting FemtoBasic to run on the C3. That's another "OS" since it can run Spin programs from the SD card as well as store Basic programs there. Both Sphinx and FemtoBasic will be able to use the "Winbond_Driver" flash file system as well once I get those routines to work properly. I don't think we need another "OS".
11-10-2010, 11:18 PM
@Vern...What standard pin out discussion are you referring to. I was not aware of any movement to make the C3 header format a standard... I think your idea of a simple bootloader with a nice GUI is a good idea. I guess i wouldn't really call it an OS in the truest since of the form either. It would be more like a bootloader with a few other features...You have expressed a lot of pessimism, perhaps you have an idea that will be useful for implementing such a standard?
As for a point, i really don't know what you getting at...This new standard would be more robust than the Arduino format and it would enable the end user to access better base hardware and software.. Plus the C3 board has a lot of features already built in... Imagine this.
You buy the C3 computer and you instantly download a whole library of pre-written programs onto the SD card. Some can do things like read various sensors and others can do things like access oleds or lcds. But to complete your setup you can buy a PS/2 keyboard and vga screen or a oled module(for portability). The system would ship with a main "OS" type program loaded so you can access every file of the SD card easily... Say you just bought a ping sensor, simply boot up the OS and find the file that contains a pre written demo that will display Ping distances on the screen... You can literally do all of this without even plugging the C3 into another computer....
11-10-2010, 11:25 PM
@Mike... Perhaps you are right about not needing another OS, but what do you think of the idea of standardizing the connections to the C3? That was really the main point of the whole idea(although having a standard OS would be kinda cool to) I have actually never tried the FemtoBasic(well i have used part of it). Wasn't that the one that used a OLED display?
11-10-2010, 11:34 PM
Ravenkallen, I am not sure I know what you mean when you say, "idea of standardizing the connections to the C3?" Do you mean that a Ping must be on P0 and PIR on P1? What if I have 3 Pings and no PIR? If you are mean the physical connections, those are defined by the physical layout of the C3 and/or the C3 Protoboard.
11-10-2010, 11:48 PM
The C3 board defines the connector standard. A 2x16 header with a certain pinout, and a 4 pin header with Analog inputs and 5V power. What else must be defined regarding to shields?
I had an idea of splitting the shields in two parts. One for communication or displays, the second for I/Os (Motors, Sensors..). So they can be combined as you need it, and you must not have the same parts on several shields, or stack theme higher and higher (a problem of the Arduino).
11-11-2010, 12:21 AM
One of the stumbling blocks (and blessing) is the lack of standards with Propeller hardware. We have several people running in several different directions at once. This is both fracturing our efforts, but at the same time is opening new frontiers.
I wish we could have our cake and eat it too, but as fast as the Propeller moves, I just don't see it being any other way.
11-11-2010, 12:44 AM
Sphinx already runs on the C3 and this includes a minimal editor and Spin compiler/assembler/linker. I have an Axion 7" TV with a video/mono-audio input that runs off batteries for a couple of hours and I can run the C3 off a 6V battery pack for way longer. With that and the Parallax PS/2 keyboard, I have a standalone Propeller development system. I wouldn't recommend developing large programs this way because of the small display, but writing small programs or debugging small to medium sized programs is not completely unreasonable.
It would be easy to develop an Arduino "shield" adapter for the C3 that plugs into the C3's headers and physically mounts over the C3 allowing stacking of "shields" if that's what you want. It would be similarly easy to develop adapters for other expansion boards.
I agree with the others (Oldbitcollector, Ariba, and John) that we don't need to further standardize what the C3 provides. There are too many possibilities for what might be useful at this time. Good standards are always developed late in the game, after the user community gets experience with a product as is. It's very dangerous to produce too many standards too early in a product's lifetime. It tends to stifle innovation.
11-11-2010, 02:22 AM
So you all think we should wait until after it comes out before we should jump into standardizing everything? I guess that makes sense... It would just be really cool to be a part in a large community project and have the end result be a really neat line of modules that you could plug into the C3. Standardizing stuff might mean stifling initial creativity, but it provides the newbie a solid rock to stand on. The C3 has so much potential, i just want to see it succeed.... I guess i will put this proposal on hold for a while unless i get some volunteers.
11-11-2010, 03:58 AM
The only "shield" I see for the C3 is finding space inside of an existing keyboard where I can hide the board and connect it's outputs to the rear. :)
Yes, it would be wise to wait and see, but I do wish that we could get the entire team to pull in a single direction some times, so I completely understand your thinking.
I still don't understand what is being proposed. Everyone's comment relied on assumption of what they thought you meant, but you never stated what ypur idea or proposed standard was.
I wasn't trying to be pessimistic simply realistic. To me personally it just sounded like this "idea" was half baked and simply needed a bit more time in the oven.
The main reason I came to the propeller to learn micro controllers is because of how hard the arduino pushes obfuscation on its end users. I want to get my hands dirty.
Keep in mind this is only the perspective of a single gnubee.
OBC: so you want to make it look like a Commodore 64 huh?
11-11-2010, 04:12 PM
Keep in mind that the promise of a Propeller based Commodore 64 emulator is what got me over here. :)
I suspect Propeller2 may finally bring me the power required.
(and maybe a couple of them tied together. )
In the meantime, the C3 looks like it will be small enough to stuff in some very interesting places.
11-11-2010, 04:16 PM
There have always been two ways to develop standards.
One option is to create a specification for the standard as the first step. The advantage is this option minimizes output wasted on "dead ends". It also somewhat levels the playing field as there is no incumbent prior to the standard being agreed upon. The big disadvantages are any problems have to be anticipated, there has to be a consensus, and sub-optimal solutions can get "locked-in".
The other option is to allow free-for-all development to occur then later decree one of the solutions to be the "standard". This can result in a better solution than the first option, but means there will be numerous "dead ends" and wasted/duplicated effort. (The developer of the standardized solution may also have certain advantages, including IP rights.) However, the standard has the advantage of being field tested and proven.
There's also hybrids of these two extremes.
Somewhere around here I have a T shirt that promotes the stairstep approach. Improve, standardize, improve, standardize... I don't know how well that strategy can work in a bunch of free agent developers, but it may be worth a try. Remember, the Commodore 64 was still going strong even when the Amiga and Atari ST came out, not because it was a better machine, but because of the masses attracted to it including developers and hackers. I had a Commodore 128, but it spent 99% of it's time in C64 mode.
11-12-2010, 01:00 AM
Let me just re-emphasize... I was saying that we should have nothing to do with the Arduino shield format... I am saying that we should literally create new modules that will adhere to the new format. Making a module that fits to 2X16 pin headers should be easy. It doesn't really matter if you like the Arduino's standard for shields, but you do have to admit they are on to something in principle ...
A lot of you have interesting points about defining standards. Ericball brings up the far extremes and shows each ones pros and cons.. I think my plan was kinda in the middle. It it a standard created by experimentation and by the voting power of the community. I am not saying that we should just slap something together and call it a standard. No, we need time to figure out the best way to go about doing it, but we could lay down a few guidelines beforehand. About standards as a whole, i would say that they are there for ease of use. Think of the metric system and why us Americans will not adopt it? It is true the Metric system does make more mathematical sense than the method that most Americans use, BUT WE will not adopt it because we already have a standard and converting to another would waste time/ resources in the short run. That standard is easy to us..
You continue to advocate standards without actually saying what it is you would like to standardize. The pin spacing and layout is already done so what is left? What are you saying. You keep posting but you aren't actually saying much. We have OS's already. Shields are only a set of male pins and a piece of proto board away.
Arguing the merits of other standards has nothing to do with this. What EXACTLY would you like to see standardized. Please spell it out for me because after your last post I'm even more lost.
At least if you had been arguing in favour of copying the arduino pin scheme it would have enabled people to use many already built modules.
You appear to have a case of needtoberightis.
(That's a joke don't let your cool hair get twisted hahaha)
11-12-2010, 07:35 PM
@Vern... I don't think anyone else is confused. You are over thinking this whole thing... The C3 already has it standard set out. It is 2X16 pin headers that serve as I/O and power... THAT IS THE STANDARD!!! I am saying that we should make modules that FIT on the C3, modules that adhere to this pin out.. What i want to see is for people to make various modules that fit onto the C3 in a way that they can be stacked and many off them can be used simultaneously... i was also saying it would be cool to include a OS(Or boot loader thing) so that one would not need to involve the Propeller IDE or even need a external computer... We should also come up with a common human I/O device suite(Perhaps a PS/2 keyboard for input and vga or a oled display for output)... AND lastly, it would give the community a chance to work together toward a common goal, which i think would be fun and a useful exercise of teamwork.
What does needtoberightus mean? I am not trying to be right about anything. That is why i consulted the community first for ideas... I do have pretty good hair though, haha
11-12-2010, 11:25 PM
I am saying that we should make modules that FIT on the C3, modules that adhere to this pin out..
I fully expect that within 6 to 12 months there will be so many C3 compatible modules mentioned on this forum, that people may be sick of seeing it :D I have at least two boards planned already.
11-13-2010, 06:17 AM
Looks to me that often standards go like this:
1) Manufacturer provides something, a bus, a protocol, an interconnect whatever.
2) Lots of customers use it.
3) Other designers/manufacturers work to that spec. because it's common. Which motivates more of 2) and hence 3)
4) Someone make it into a standard (At which point it can be pretty much obsolete:))
Arduino has achieved this, so far the Prop has not.
I look forward to the C3 being yet another standard we can choose from:)
02-11-2011, 08:39 PM
Just wondering if anybody has had any progress or thoughts relating to this plan? I haven't heard anyone mention anything about modules or anything yet. The C3 has been siting in my lab for awhile now and i have had the idea of a "Mother shield". I was thinking of putting A RTC, temperature sensor/ thermistor, light dependent resistor, extra PS/2 connector, headphone jack(Maybe with a small amp) and maybe a couple of push buttons and leds. It wouldn't cost that much and it would kinda be like the crown on top of the C3:)
02-11-2011, 11:30 PM
I am so busy with consulting and my boards that I don't even have a C3 yet...
If I think there is a large enough market for C3 add-ons, I will make some.
If I don't think I can make enough money to recoup the investment in making module(s) for it I won't.
As far as standards go:
- PropCade runs SphinxOS, FemtoBasic and more already; it is also 99% demo board compatible
- Morpheus runs Catalina and FemtoBasic, SphinxOS soon
- Morpheus, Propteus, Proteus and my modules all use the 10 pin standard introduced by the serial and USB Propeller Proto boards, which also fits ucontroller.com's 20 pin socket
The C3 is a GREAT little board for embedding into gear, but it is not the only solution - different problems need different solutions.
02-12-2011, 12:18 AM
I don't know how I missed this thread? But, yes, I designed the C3 with add-on boards in mind and of course to kick it off, I designed the add-on proto board to get things started. But, the idea of the headers and exporting everything was just that, I wanted people to add things like RF modules, ethernet, whatever in the form of "shields" for a better word. Or as parallax likes to call them "app mods", but I think app mods have a specific form factor. Anyway, the C3's plan was to be a new platform with the most requested peripherals built in along with IO for expansion. So, this is exactly what its designed for and was the goal of Ken and I when we came up with the product specs.
Now, as I skimmed the posts, if anyone is serious about manufacturing, let me know as long as you can pre-pay for 100 units, I can have your shields done in china for a fraction of the cost here in the states, PCB, parts, assembly and test. No one is going to get rich, but if you shield costs $15 to make, and you sell for $50, its $1500 to manufacture 100 units, you net $3500 once you sell thru them all, so not bad. My manufacturing can go from gerbers to shrink wrap in about 3 weeks, 4 worst case. Anyway, the resource is here if anyone needs it.
02-12-2011, 06:44 PM
@AndreL... Did you have any ideas for the first shield(ahem, i meant app mod:))? I totally forgot about the proto board, i will have to check it out!!
02-12-2011, 09:18 PM
I am driven by revenue, so any "idea" I have is really what makes the most money and the most people want, so if you have the funds to develop a shield then I would say put a list of 5-10 ideas and a poll and see what people want and get some pre-sale commitments that people would actually buy it. Then with the #1 desired add on, some potential buyers in hand, maybe 25% will actually follow thru, then design, build, manufacture the product, build 50-100 of them. If you want Nurve to manufacture then we really do want at least 100 units, but if you REALLY can't afford 100 then we can do 50, but you will end up paying 75% of the cost of 100 units for 50 units, and get 50% less product.
On the other hand you can do something really cheap for fun, maybe that only costs $5-7 a unit at 100 units, then its only $1000 to get it done at most for 100 units, and sell them for $20 each. Anyway, design has to be driven by what people want when it comes to this stuff, since the market for embedded stuff is tiny, you really can't just make random stuff like you used to in the 70's and 80's. You really have to see if you can at least sell the first batch.
And remember this isn't a "get rich" business, this stuff is probably the least financially rewarding of any type of business. Selling bikinis or making iPhone apps is 1000x more profitable :)