Shop OBEX P1 Docs P2 Docs Learn Events
Is the Propeller catching on? - Page 5 — Parallax Forums

Is the Propeller catching on?

12357

Comments

  • David BetzDavid Betz Posts: 14,516
    edited 2011-04-07 08:29
    Seems like it would be good to have a small number of common interfaces to these "soft peripheral" objects with a standard way of configuring them. I wonder if the new Parallax branch that is supposed to be targeting commercial developers is planning to do that. I think I remember some mention of "data sheets" for "gold standard" soft peripherals. I wonder if they have developed guidelines for these officially sanctioned peripherals yet?
  • SapiehaSapieha Posts: 2,964
    edited 2011-04-07 11:01
    Hi HollyMinkowski.


    Look at Hanno's 12Blocks -- Most of that is done!

    I know this will be an unpopular idea.
    But the OBEX itself is a hindrance to
    advancement of the state of the art in
    multiple processor technology.

    The IDE/Compiler/language should handle
    the complexities of multiple cores. And should
    generate and integrate peripheral functions.

    .
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 11:12
    Hi Sapiaha

    I admit I have not looked as closely as I should have at 12blocks.
    If what you say is true then parallax needs to pay for and adopt
    12 blocks as the new official IDE for the Prop and Prop2.
    It needs to be converted to open-source so that those talented
    people that now add to the OBEX can instead improve and extend
    12blocks.

    Successful uC's really should have a free and open source IDE and languages.
    Pay to play tools are so last century.... I'm NOT saying talented developers should
    not be paid well for their work, I'm just saying that the end user should not do the paying.
    (of course I know that the end user always actually pays for everything somehow..I'm no fool)
  • MorrisMorrisMorrisMorris Posts: 16
    edited 2011-04-07 11:54
    If what you say is true then parallax needs to pay for and adopt
    12 blocks as the new official IDE for the Prop and Prop2.
    It needs to be converted to open-source so that those talented
    people that now add to the OBEX can instead improve and extend
    12blocks.

    It should stay the way it is. Control and flexibility are what make a chip usable for complex and commerical applications. If you like 12blocks, use it, but I can't imagine Parallax will ever use what basically amounts to an educational tool to replace it's IDE. Just use an arduino if that's what you want.
  • LeonLeon Posts: 7,620
    edited 2011-04-07 11:55
    I don't see why tools should be open source, but making them cross-platform is a good idea. Microchip's new MPLABX (based on NetBeans) runs on Windows, Mac and Linux, as do XMOS's Eclipse-based tools. The former will be open-source when it is finished, and the latter always has been. Atmel has received a lot of stick for making its new AVR Studio 5 Windows only. Parallax does need a better IDE than the Propeller Tool, of course, if they want the chip to be acceptable to professional users.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 12:03
    Just use an arduino if that's what you want.

    I was actually just pointing out that a much more powerful IDE is needed.
    Something that generates peripherals on the fly and much more. The Prop
    is a powerful uC and deserves an equally powerful dev environment.

    12Blocks actually is quite innovative and points the way to a proper toolset better than the
    current offerings do...IMO The developer of 12blocks is a first rate coder.
  • localrogerlocalroger Posts: 3,452
    edited 2011-04-07 12:05
    Holly, the Prop has multiple free and open source development tools, including BST which is an open source cross-platform clean room clone of the PropTool.

    My own Propellerization followed what is probably a common path:

    1. Using the default Parallax objects -- wow, one line and I get TV output! I can get TV and VGA at the same time! Woohoo!
    2. What, the serial object uses tx and the tv object uses out?
    3. Run out of memory, learn enough Spin to hack out the functions you don't need.
    4. Overrun the fullduplexserial input buffer, learn enough PASM to make it bigger.
    5. Run out of cogs, learn enough PASM to combine some functions.
    6. Run out of memory again, rewrite all the objects to simplify the PASM-Hub interfaces.

    The problem with the obex isn't that the objects are hard to use. They provide very useful functionality for the cost of an OBJ line and START(pin). I really don't see how that part of it could be any better.

    This scheme fits well with the basic model of a Prop application, which is that you are probably going to have one thread running a procedural Spin "application" with the other seven offering support for things too slow to do in Spin or that need to be concurrent. While the Propeller could run two or more roughly co-equal "top" threads, I would expect such applications to be very rare. Most embedded scale applications are driven by a user interface and/or master state machine which can be implemented procedurally in a single cog.

    Now I'm aware that there is a great deal of research going on with regard to optimal use of multicore CPU's, much of it devoted to automatically taking apart procedural algorithms and figuring out how to automatically distribute them across multiple cores. This sort of thing is far too advanced to be useful on the Propeller because it depends on having lots of RAM to manage cached data and context switches (kind of like the world's ugliest and most complicated interrupt system spread across multiple devices).

    The Prop is scaled to reward the person who learns to leverage its strengths and hand tune code. The need to learn more to make the most use of it might be seen as a bug, but I think to Parallax it's a feature; after all, much of their orientation is to students and education.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 12:06
    @leon

    I also have problems with AVR Studio 5 being Windows only.

    What the heck are those guys thinking!?

    All I can say is they better keep updating Studio4 or a lot of
    coders that run it on older laptops will give up in disgust rather than buy
    new computers to use Studio5. :-(
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 12:11
    localroger wrote: »
    (kind of like the world's ugliest and most complicated interrupt system spread across multiple devices).
    Yes, sometimes that which needs to be done is quite ugly and hard to do.
    But often it simply needs to be done anyway.
  • LeonLeon Posts: 7,620
    edited 2011-04-07 12:13
    It doesn't bother me but I can see why lots of users are jumping up and down about it, especially as it was originally going to use Eclipse, like the IDE for the AVR32.
  • Mike GreenMike Green Posts: 23,101
    edited 2011-04-07 12:23
    Some of the problems that localroger ran into can be dealt with rather easily with a macro processor. BST could do it or Homespun (but that doesn't come with an IDE and its macro processor is slightly different). Both are cross platform. The main problem now is that the Propeller Tool is the official compiler / assembler and it doesn't support macros. Objects, with few exceptions, need to be written with that in mind, thus are not parameterizable unless you alter the source files.
  • Heater.Heater. Posts: 21,230
    edited 2011-04-07 12:27
    localroger,
    including BST which is an open source
    I don't think you will find that BST is open source. Of have I missed some major news somehow?

    As far as I know there is no open source Spin compiler for your PC yet.
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 12:39
    Mike Green wrote: »
    The main problem now is that the Propeller Tool is the official compiler / assembler and it doesn't support macros. Objects, with few exceptions, need to be written with that in mind, thus are not parameterizable unless you alter the source files.


    A really good point.

    I read an old book called "Hackers, Heroes Of the Computer Revolution" It had
    lots of details of the early days of personal computing. It was appalling that those
    talented guys had such spartan software tools to work with in the early days.

    It seems like so many years later it would just be common sense that the software
    tools for developers should at least be equal to the quality of the processors they
    work with.

    A lot needs to be done....
  • localrogerlocalroger Posts: 3,452
    edited 2011-04-07 13:54
    Oops, missed that, Heater.
  • schillschill Posts: 741
    edited 2011-04-07 14:05
    It was appalling that those talented guys had such spartan software tools to work with in the early days.

    Maybe the appropriate take on this is "Look at what they were able to do without all these fancy IDEs and such." I'd hardly call it appalling. I expect many of them had a ball doing what they were doing and wrote better quality stuff than much of what's turned out today.

    Agewise, I sit somewhere between most of the guys in the book and "kids" today. When I learned to program (as a kid), I didn't have an IDE doing any of the work for me. I didn't even have a monitor. I had punched cards [1]. I managed somehow :) .

    [1] There were a few CRT terminals around but they were very expensive and kids weren't allowed to touch them.
  • HannoHanno Posts: 1,130
    edited 2011-04-07 14:42
    Yes, I think the Propeller is catching on- slowly but surely. I'm always amazed what this community has produced in terms of software, discussions and inspiring projects. Almost every morning I get emails about innovative Propeller applications- I'm starting to publish more success stories on my site and in my speeches. More people are taking a look at 12Blocks for educational purposes- I recently gave a keynote to over 1000 educators/principals looking to improve STEM education. You can watch it here:
    http://www.robovirtualevents.com/march-2011/
    For those who haven't, take a look at 12Blocks- it's easy enough for kids, but also let's you "import" code to do pretty much anything; complete with real time graphing, monitor/change variables, skype integration and even "save to exe".
  • Sal AmmoniacSal Ammoniac Posts: 213
    edited 2011-04-07 16:08
    I know this will be an unpopular idea.
    Instead of adding stuff to an OBEX, creative
    coders should be improving an IDE that transparently
    integrates peripheral abilities to create a more powerful
    system for creating cool stuff that people want and need.

    If you want to see a well-done example of this, take a look at Cypress' PSoC 5, which combines an ARM Cortex-M3 with configurable analog and digital components. They have an IDE that lets you interconnect the pieces in almost any way imaginable.
  • localrogerlocalroger Posts: 3,452
    edited 2011-04-07 16:38
    Schill, I'd argue that those guys in Hackers got as good as they were partly because they had to make do with such limited resources. Lots of RAM and a fancy IDE are sales tools but they do the opposite of making you a better programmer; they take up the slack when you want to be lazy and not think about your code too much. I've met people who were taught programming in Javascript and they really have no idea how the computer works. And no computer is so fast or powerful that you can't waste its capacity asking it to do stupid unnecessary stuff. The Propeller may only be a bicycle, but it's a very sleek one and it was intentionally meant to be one without training wheels.
  • Pence128Pence128 Posts: 20
    edited 2011-04-07 17:22
    <slowpoke>

    Mike:

    By that argument, every microprocessor has floating point support. While 5us, 10us and 13us are fast, they're a far cry from the 50ns they could be. By high speed i/o, I meant on par with the propeller's clock speed: around 40MB/s.

    Heater.:

    What I meant by that is you can't just drop a Linux kernel in it and code around that like ARM or MIPS chips. Multiple cores do make tight real time systems easier though.

    Holly:

    This is almost exactly what I was thinking. Given a sufficiently smart compiler (tm), programming could be almost plug and play. Simple applications could even be drawn as a flow chart, like the old lego mindstorms, but vastly more flexible.

    This biggest market I see for the propeller is still on the horizon: desktop manufacturing brought on by inexpensive rapid prototyping systems. It's getting to the point where you can make something almost as fast as you can imagine it. Here the propeller is perfect. It's universal, having no peripherals, but having every peripheral. If an environment can be created that is simple and intuitive to use, even for someone with no programming experience, the propeller can become just another part of the design instead of a separation between everything physical and everything virtual. It's rapid prototyping for code.

    </slowpoke>
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-04-07 18:45
    localroger wrote:
    Lots of RAM and a fancy IDE are sales tools but they do the opposite of making you a better programmer; they take up the slack when you want to be lazy and not think about your code too much.
    I could not have said it better my self. And people wonder why I prefer DOS as a software development envirement?
    Pence wrote:
    What I meant by that is you can't just drop a Linux kernel in it and code around that like ARM or MIPS chips. Multiple cores do make tight real time systems easier though.
    YEA! We do NOT get the opportunity to make easy, slow BloatWare, What could be better. Why are you making a good thing sound negative?
  • HollyMinkowskiHollyMinkowski Posts: 1,398
    edited 2011-04-07 20:17
    Pence128 wrote: »
    <slowpoke>
    Given a sufficiently smart compiler (tm), programming could be almost plug and play

    Yes, exactly.

    Some feel it's just fine if creating cool applications is reserved for geeks (like me)
    who enjoy working at a low level and are willing to struggle with mediocre tools.
    I often code in asm even when C would be a better choice. I'm quirky that way.

    But there are never enough geeks around to create all the cool stuff that needs to be
    made. Many artistic types who would never put up with what I go through to create
    an application would build exciting stuff if they had access to powerful tools. Those
    useful applications will never be made if better tools are not created...and the world
    will be the worse for it. And fewer uC's will be sold.

    Putting up with poor tools is bad, but actually praising it as a virtue is just strange.
    It's rather like those oddballs who build a house using nothing but a swiss army knife
    and then strut around boasting about it..LoL (as a quirky coder who uses asm when
    high level makes more sense I can relate to this sort of thing...but I still realize it's a bit odd)

    When I first started playing with the prop and discovered that Spin was a tiny interpreter
    I almost gasped! It thought "It's going to be so slow and it will be a poor use of the processors
    power....much better to code it all in pasm and be more efficient" But gradually I have come
    to appreciate spin, it is so easy to use and you can create a powerful app in record time.
    OK, it's far from optimum but it is GOOD ENOUGH and does the job. Now I respect
    it as a sort of marvel, how on earth did Chip fit it all into such a tiny space!?

    Chip did all that hard work so people that would not or could not code their apps in
    pasm could make fun projects too. That's the exact same reason I propose a smarter
    IDE/Compiler/Language that will allow people with lesser skills to create beautiful
    stuff on complex multi-core processors. I say why not create these tools? Nobody
    will be forced to stoop to using them against their will. Plodding along with lesser
    tools will still be allowed.
  • Cluso99Cluso99 Posts: 18,069
    edited 2011-04-07 21:15
    Lots of good discussions here, but little time to comment.

    However, I just have to say a thing about bloatware... I just setup a new laptop for a friend with Windoze7 preinstalled + Office. I loaded a virus detection program and ran it... It had to check over 2 MILLION files. This is what too much memory and processing power does!!!

    The prop is NOT a processor to replace a laptop, but it could well do a lower form of iPad although it was never intended to do so.

    The beauty of the prop is its simplicity, but the programmer does have to do some work to use it sucessfully !
  • potatoheadpotatohead Posts: 10,261
    edited 2011-04-07 23:04
    Did you use MSE, Microsoft Security Essentials? Highly recommended. Microsoft got that one right, in that it's lean and potent. Free for small businesses and individuals.

    I'm currently doing a lot of "that IT guy" work, and that program has been a excellent thing. Ditched the various vendors and their rather messy implementations. Windows firewall, plus MSE is a great combo, hands off, no issues. Just FYI, for those that might struggle with AV, and or do what I did for longer than I would like, running without it for performance reasons, avoiding most of the Internet.

    Now back to our Propeller thread discussion in Progress.

    Re: I-pad type thing. Dr_A and Ross sure have made progress on that front! Itching to fire up that environment! With the right video driver, maybe a Prop could run nethack? Maybe slowly, but... :)
  • RossHRossH Posts: 5,519
    edited 2011-04-07 23:31
    potatohead wrote: »
    maybe a Prop could run nethack? Maybe slowly, but... :)

    Someone asked me to look at this a while back (it may have even been you!). While Catalina could compile it, the nethack binary is simply too big for any of the current Prop platforms - except possibly for Jazzed's 32Mb board - but Catalina doesn't run on that yet.

    The speed would probably be ok though - most text-based games don't need high performance.

    Ross.
  • Dr_AculaDr_Acula Posts: 5,484
    edited 2011-04-07 23:48
    Re: I-pad type thing. Dr_A and Ross sure have made progress on that front! Itching to fire up that environment! With the right video driver, maybe a Prop could run nethack? Maybe slowly, but...

    I reckon we are getting close. Looking at some screenshots of nethack, the graphics look like tiles http://www.rengels.de/computer/nethack/ . There are tile demos around but I think they are usually built on a PC. But with Catalina driving a tile driver video, with the code in external ram so virtually all the hub is for tiles, and temp storage of tiles as arrays in external ram (preloaded from sd card), and I think this could be possible. C can move a tile from external ram to hub with a single instruction "memcpy". It is a little slow refreshing an entire screen (half a sec) but moving individual tiles around is more than fast enough for a game.

    I think there are more tricks we can get the prop to do!
  • RossHRossH Posts: 5,519
    edited 2011-04-08 00:06
    I was thinking more of the original game - i.e from http://en.wikipedia.org/wiki/NetHack :
    You see here a silver ring.
                                               ------------
                                             ##....._.....|
                                               |...........#          ------
                                              #...........|           |....|
                          ---------------   ###------------           |...(|
                          |..%...........|##########               ###-@...|
                          |...%...........###    #                 ## |....|
                          +.......<......|       ###              ### |..!.|
                          ---------------          #              #   ------
                                                   ###          ###
                                                     #          #
                                                  ---.-----   ###
                                                  |.......|   #
                                                  |........####
                                                  |.......|
                                                  |.......|
                                                  ---------
     Hacker the Conjurer            St:11 Dx:13 Co:12 In:11 Wi:18 Ch:11  Lawful
     Dlvl:3  $:120 HP:39(41) Pw:36(36) AC:6  Exp:5 T:1073
    
    But I suppose once we had that working, the fancy tile graphics interface (which came later) would just require a bit more RAM.

    Ross.
  • schillschill Posts: 741
    edited 2011-04-08 05:15
    Some feel it's just fine if creating cool applications is reserved for geeks (like me) who enjoy working at a low level and are willing to struggle with mediocre tools. ...

    Many artistic types who would never put up with what I go through to create
    an application would build exciting stuff if they had access to powerful tools. ...

    Putting up with poor tools is bad, but actually praising it as a virtue is just strange. ...

    Holly:

    I don't think anyone is arguing that poor tools are good. My only issue with your previous post was that you said that the conditions the "hackers" worked under were appalling. I disagree very much with that statement.

    As far as tools that allow anyone to work with this stuff go, I couldn't agree more. But look at any of the anti-Arduino posts on this site (and there are plenty). Most of them argue that the "artists" should need to learn more. They complain that the Arduino environment makes it too easy - and Arduino is based on C, not some simple artsy language. [An aside: So many people seem to see things as Prop vs. Arduino. Personally, I am happy with all the attention Arduino gets if it brings more people into the hobby or profession. There are many people who would never have heard of the Prop at all if they didn't get started somewhere.]

    Even with the prop, there are plenty of posts on this forum that say that you don't really know anything about the prop unless you use assembler. I believe that you yourself have posted messages close to those lines.

    We have a pretty good range of tools available right now for the Prop. Things could always be better or different but we're doing ok as long as development continues.
  • SapiehaSapieha Posts: 2,964
    edited 2011-04-08 06:02
    Hi All.

    I think I can summary this thread by saying that.

    Propeller are for People that think on FUTURE solutions and NOT thinking dinosaur AGE
  • davidsaundersdavidsaunders Posts: 1,559
    edited 2011-04-08 07:20
    RossH wrote:
    Someone asked me to look at this a while back (it may have even been you!). While Catalina could compile it, the nethack binary is simply too big for any of the current Prop platforms - except possibly for Jazzed's 32Mb board - but Catalina doesn't run on that yet.
    I remember running Nethack on my C128 in CP/M mode, and it only took about 12K of ram. Thus if someone were to hand compile it (to use the standard TV and KB drivers) we should be able to run it Prop native in HUB mem.
  • trodosstrodoss Posts: 577
    edited 2011-04-08 07:31
    RossH wrote: »
    I was thinking more of the original game - i.e from http://en.wikipedia.org/wiki/NetHack :

    ...But I suppose once we had that working, the fancy tile graphics interface (which came later) would just require a bit more RAM.

    Ross.

    @Ross, there actually already was a game like NetHack (Rogue-like) written for the Propeller, called "PRogue"
    http://forums.parallax.com/showthread.php?94989-Progue-a-roguelike-written-in-Spin

    Granted, it is in Spin and not C.
Sign In or Register to comment.