Shop OBEX P1 Docs P2 Docs Learn Events
Evolution of microcontrollers/microprocessors — Parallax Forums

Evolution of microcontrollers/microprocessors

bassmasterbassmaster Posts: 181
edited 2007-02-14 17:12 in Propeller 1
Parallax has done a bang up job in the evolution of the microcontroller.

Many people snub VB, but when you want a quick app it works great.

Spin is alot like that, prototypes can be made in a small percentage of time with spin, then, the final product can be optimized for speed when needed, IF neeeded with ASM.


An eample of the evolution of lanquages for the PC, we had a 386 running linux, we needed to write code to interface to 32 pumps and 32 card readers, the polling was too slow.

so we used C for the base, then created a isa board with a z80 that did nothing but pass changed polls to the application, this freed up the app to run faster and handle more calls from the POS or other modules.

As Computers sped up there are now companies that use VB completley to do what we did, with no preformance loss.

Bash prop Spin and the propietary ASM ·if you want, but for me it is an evolution.

Cudo's to Parallax.

Just watch Microchip/Atmel follow this trend.....

·
«13

Comments

  • Mike GreenMike Green Posts: 23,101
    edited 2007-02-09 16:06
    bassmaster,
    Nice example with the 386 and Z80.

    I think the main reason you'll hear "VB bashing" more has to do with "Microsoft marketing". VB is a particular Microsoft product that is unavailable (and heavily protected against as intellectual property) on other platforms like Linux or the Mac OS, let alone "independent" platforms without operating systems (various embedded processors). For example, Microsoft used to have support within the Mac version of Office for VB in Excel spreadsheets. This is being dropped in the next update cycle. As a contrast, Apple has AppleScript as its OS scripting language. The MacOS makes heavy use of this (much like VB in Windows) and it's closely integrated into the OS and the major applications. Unlike Microsoft and VB, there are other scripting languages like Python and Ruby that are open source, heavily used in the Linux world, well documented with lots of books available at your friendly Barnes and Nobles or Amazon.com, and these can be 100% substituted for the AppleScript if you want. They connect to the OS at the same level of API as AppleScript, have the same efficiencies (or inefficiencies), etc.

    I like the assembly/Spin mix. Spin is fast enough so you can do a lot of "bit-bang" I/O directly (even 9600 Baud serial) without any use of assembly. I think the assembly/Spin intercommunication is weak, but it works adequately and I wasn't privy to the design tradeoffs and other issues at the time.

    I do wish Parallax wasn't so locked into Windows (and XP particularly). It may be "the dominant platform", but it's not the only one, particularly as you move away from the USA. I happen to be able to run all three major platforms (Windows XP, MacOS, and Linux) on the same machine. There's no way I'm going to upgrade to Vista. It was difficult enough to part with the money to upgrade from Windows 98SE to XP just to be able to run the Propeller Tool. Most everyone else's Windows-only tools will still run under Windows 98SE or Wine. I will be much happier once there's some support for Spin outside the world of Microsoft.
  • Dennis FerronDennis Ferron Posts: 480
    edited 2007-02-09 16:10
    It's uncanny how closely this relates to an essay/keynote speech that Paul Graham made. It's titled "The Hundred Year Language": www.paulgraham.com/hundred.html

    The essay was about what languages will look like in 100 years, and that the "sweet spot" (my term) to be in now is to be programming in someting that is on a main evolutionary branch now that will still be a main branch in 100 years.

    Although Spin is actually shockingly fast for an interpreted language, it has the built-in ability to program in assembly as well, so that you can throw together a quick interpreted implementation and then convert just the parts you want to assembly. With that in mind, read what Paul Graham said about the future of languages:

    "What programmers in a hundred years will be looking for, most of all, is a language where you can throw together an unbelievably inefficient version 1 of a program with the least possible effort. At least, that's how we'd describe it in present-day terms. What they'll say is that they want a language that's easy to program in."

    (later in the essay he says something that reminds me of the ability to convert Spin to assembly[noparse]:)[/noparse]

    "... it seems that, if you did a really good job, you could make a language that was ideal for writing a slow version 1, and yet with the right optimization advice to the compiler, would also yield very fast code when necessary."

    (He seems skeptical of the benefits of parallelism but does predict it[noparse]:)[/noparse]

    "As long as we're talking about the future, we had better talk about parallel computation, because that's where this idea seems to live. That is, no matter when you're talking, parallel computation seems to be something that is going to happen in the future."

    "Will the future ever catch up with it? People have been talking about parallel computation as something imminent for at least 20 years, and it hasn't affected programming practice much so far. Or hasn't it? Already chip designers have to think about it, and so must people trying to write systems software on multi-cpu computers."
  • Dennis FerronDennis Ferron Posts: 480
    edited 2007-02-09 16:21
    In regards to what Mike Green said: I had always been a Windows guy, but in the past 2 years I've found myself using Linux more and more, and I have been impressed watching other people use the MacOS as well. I'm at the point where there are only two reasons left for me to use Windows at all: the Visual Studio programming IDE, and Parallax tools. If I could get the Parallax tools and graphical IDE for Linux, I would have no reason to run Windows on my laptop-and-Propeller-powered robots. In fact, for one of my current projects, I can't use Windows at all - my project requires the kind of low-level TCP/IP stack access that Windows' closed source implementation just doesn't give you. When the day comes that XP no longer works on new home computers, I'll be switching to a Mac before I upgrade to Vista.

    It's no longer a case of switch just to bash Microsoft. The cost of Vista makes other opportunities look more attractive, and while at one time it was pragmatic to stick to Windows because there were things that were more convenient to do with Windows, things have advanced to the point that I can say Linux and MacOS would provide for my needs just as well.
  • David BDavid B Posts: 592
    edited 2007-02-09 17:14
    I also was forced, kicking and screaming, to move off Win98 in order to use the propeller; I bought a copy of Win2K off eBay. My kids use XP and I'm hoping to avoid going there for as long as possible, ditto for Vista. Each step "forward" with Microsoft's OSes always seems to include a glitzier screen, but more loss of control over my own hardware.

    I've used Linux from back when you had to make up floppy disk sets to install it. It's always been fun getting my hands dirty with OS code, and still is, but for ease of use, I've always preferred the Windows GUI. VB was Ok for a while but I happen to prefer Delphi. I'm still running version 2, because it does what I want without lots of program bloat. I tried Kylix, Delphi on Linux, but that was a disaster as far as I was concerned.

    But Java on Linux is decent, and can be pretty portable between platforms if you code the display carefully enough. Has anybody considered a Java GUI for Spin, with appropriate OS-specific hardware libraries?
  • bassmasterbassmaster Posts: 181
    edited 2007-02-09 17:25
    Spin and Prop ASM will make it to native linux, I am sure. It just might take a while for a tokenizer from parallax.
  • SSteveSSteve Posts: 808
    edited 2007-02-09 18:51
    Dennis Ferron said...
    I'm at the point where there are only two reasons left for me to use Windows at all: the Visual Studio programming IDE, and Parallax tools.
    You have one more reason than I do. I had to get my old Win2k laptop out of mothballs to run the Propeller Tool. I really hope Parallax will at least make a tokenizer that'll work on OS X. And hopefully not a Code Fragment Manager library this time. They are almost impossible to interface with. I got a proof-of-concept program to work, but it was not easy and it won't transition to Intel because it requires an assembly-level kluge.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    OS-X: because making Unix user-friendly was easier than debugging Windows

    links:
    My band's website
    Our album on the iTunes Music Store
  • parts-man73parts-man73 Posts: 830
    edited 2007-02-09 18:56
    Funny that this thread comes up now. I just started using Linux(Ubuntu) last week, and so far I love it.

    The ability to immediately and easily download and install a new application, from a large list of open source software, is a very attractive feature.

    But it is more difficult OS to learn. I'll put it this way... I'd never install it on a relatives computer...the "support" phone calls would never end. It's not newbie friendly.

    But I've got to make my computer a dual boot soon. It would be nice to have a Propeller tool for Linux, But I don't want to be the one to demand it, for me, I'm fine with a dual boot system, I have many other applications that are windows only, and for now, Linux is a toy to play with and get used to.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Brian Meade

    "They who dream by day are cognizant of many things which escape those who dream only by night" - Edgar Poe
  • Dennis FerronDennis Ferron Posts: 480
    edited 2007-02-09 19:17
    Yeah despite all its advances, I think Linux is still not very newbie friendly. It's kind of like driving a standard vs. driving an automatic: it gives you more control once you master it, but can be pretty frightening when you don't know how to handle it yet.

    Microsoft Visual Studio is like crack - once you become dependant on it you'll curse at it and hate it but also love it and can't live without it. What I mean is that it really does have features that are IMO the best out there, and I have at least one project that I can't imagine would work nearly as well in another language/IDE, but at the same time every release pushes out tons of new killer features without stopping to fix the instabilities. I've had the experience of saying, "Wow, I can get things done ten times faster this way than with my old tools" and at the same time I've had countless days where I lost many hour's worth of work because the GUI designer crashed and DELETED my code! Yes, folks, when Visual Studio's forms designer hits a snag and doesn't understand your code, it just deletes widgets off your form until it works again. Come to think of it, Microsoft Visual Source Safe does a similar thing - the repository version of code is sacrosanct to it, and it assumes the code on your machine is just junk that it can delete if wants to. Nearly every time Source Safe makes a mistake, it seems to err on the side of silently deleteing your last eight hour's work to put the old server version on there instead.

    They're both examples of Microsoft treating the user like some kind of idiot, deleting/overwriting your work without asking because they think they know better than you do what the computer should do. They send the message "we pwn you, beotch!" And it's kind of like being in an abusive relationship, where you put up with abuse to get what you think you love.
  • cgraceycgracey Posts: 14,150
    edited 2007-02-09 19:27
    I certainly agree that the direction Windows has gone in·is reducing us all to serfs, and it can only get worse. Every new version seems more restrictive and useless for all but the recommended consumer activities. And while we pay endless tribute to use it, it·perpetually breaks all of our legacy development software·which we've used for designing our products. So, we then must agree to expensive 'maintenance' programs (complete with penalties for any lapses) for what amounts to·often buggier tools. All this, so we can just keep doing what we've been doing·all along. It all seems to be much more about securing revenue streams than making anything better. So, of course, I'd love for us to get out this rat hole, but what can we do?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • SSteveSSteve Posts: 808
    edited 2007-02-09 19:30
    I haven't explored writing Eclipse plug-ins, but that seems like a possibility.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    OS-X: because making Unix user-friendly was easier than debugging Windows

    links:
    My band's website
    Our album on the iTunes Music Store
  • Mike GreenMike Green Posts: 23,101
    edited 2007-02-09 20:08
    Chip,
    The first step is to "bite the bullet" and establish policy that all future development will be in one or more cross platform systems, whether Java, standard C++ or Pascal or a mixture (using a cross platform open source GUI library like GTK) or a commercial compiled cross platform system like RealBasic. For things that are close to the operating system like USB/serial, you may need to have source where small portions are conditionally compiled for different platforms.
    Mike
  • Remy BlankRemy Blank Posts: 42
    edited 2007-02-09 20:25
    May I suggest Python (as others already have), possibly with wxWidgets as a GUI? Although an Eclipse plugin would probably make more sense, but personally I am not so enthusiastic about Java.

    -- Remy
  • parts-man73parts-man73 Posts: 830
    edited 2007-02-09 21:25
    I see that FTDI does make drivers for their USB chips for Linux.
  • Martin HebelMartin Hebel Posts: 1,239
    edited 2007-02-09 21:29
    I think the only solution is to have Propeller based system to program Propellers on [noparse]:)[/noparse] Keyboard, mouse, monitor, Flash drive... just needs a little OS and application!

    -Martin

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    StampPlot - GUI and Plotting, and XBee Wireless Adapters
    Southern Illinois University Carbondale, Electronic Systems Technologies
  • CJCJ Posts: 470
    edited 2007-02-09 21:41
    sounds like a good project for a Protoboard. keyboard, mouse, monitor, 4pin header for a programming cable/rs232, or even a socket for an eeprom to put the compiled program in

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Who says you have to have knowledge to use it?

    I've killed a fly with my bare mind.
  • Dennis FerronDennis Ferron Posts: 480
    edited 2007-02-10 00:02
    I would like to say, though, that I completely understand Parallax's position and why they target Windows for their tools, and I don't blame them.

    I like Martin Hebel's suggestion of a Propeller-based Propeller development environment; in fact that's one of my primary reasons for building my Propeller-based portable computer. I think it will take until the 2nd gen propeller chip comes out for it to be totally feasible though.
  • cgraceycgracey Posts: 14,150
    edited 2007-02-10 00:52
    Martin,

    This is the long-term plan, as you probably know.·On the next generation of the Propeller, we·will have 96k of unused ROM which we·plan to·eventually·sink a whole development system into. Then, we would only need to create what amounts to VNC-type software to get you inside from your desktop machine (if you really wanted to stay there). I think the only way out of the current OS mess, though,·is to get all the way out, and then come back in on an optional basis. 75% of the energy we've spent on the Propeller.exe program has·gone to·wrestling·with Windows.
    Martin Hebel said...
    I think the only solution is to have Propeller based system to program Propellers on [noparse]:)[/noparse] Keyboard, mouse, monitor, Flash drive... just needs a little OS and application!

    -Martin

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔


    Chip Gracey
    Parallax, Inc.
  • Martin HebelMartin Hebel Posts: 1,239
    edited 2007-02-10 01:28
    Hi Chip,
    Yeah, I sure won't take credit for the idea as you had told some of us years ago your desire to free the development from the PC, I just could help a tossing out a teaser, and it just goes to show how insightful you are in what is needed as is proven by the current circumstances and how close to that reality you are getting!

    -Martin

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    StampPlot - GUI and Plotting, and XBee Wireless Adapters
    Southern Illinois University Carbondale, Electronic Systems Technologies
  • bassmasterbassmaster Posts: 181
    edited 2007-02-10 03:28
    you dont need to abandon windows for linux, get cygwin ,,,,

    In this monopoly of microsoft we must use windows to get much acomplished, I prefer to run xp and cygwin, others can use linux and wine, cygwin screenshot below offers me single click to open a linux environment. where I can test/write cross platform code. And MARK MY WORDS, it is 10 X faster than linux with wine.



    Post Edited (bassmaster) : 2/10/2007 12:24:49 PM GMT
    1280 x 1024 - 373K
  • Harrison.Harrison. Posts: 484
    edited 2007-02-10 03:45
    You can always install vmware player (free version of vmware workstation) to be able to run other x86 OSes on top of Windows. For example, Mandriva linux has a vmware player compatible image: www.mandriva.com/en/isv/vmware .

    I personally use cygwin just for cross-compiling for linux. For real stuff, I either use vmware or boot into a linux live cd. I find cygwin too limiting for things other than simple shell scripts and compiling.
  • LawsonLawson Posts: 870
    edited 2007-02-10 04:20
    Why would a Propellar resident development environment have to wait till version 2?· I can see why putting the spin compiler and assembler ON the Prop to be programmed would be·difficult.· (it'd prolly still work using a 64k or larger pre-programmed·EEPROM, load the IDE, look·for·a terminal-program/text-editor, if found develope code otherwise load the app·code·from the high side of·the EEPROM and run that)· But I've yet to see a reason why another Prop couldn't host a great IDE for spin and assembly.· Heck this'd be darn usefull for remote debugging and such, the core system would probably fit in a pocket and battery life could be·insane.· lets see... keyboard, optional mouse, upgraded SD code with a SD·slot for storage, a 3.3v serial port for programming, VGA/TV connectors, hm... basically a proto-board with SD, TV, Serial port and the right code.··with the proto-board's larger EEPROM a large compressed help file could·be included too.··(lol, maby even run something like this inside of Gear!)· *sigh*·programming is NOT my specialty though, so as cool as a project like this would be i'm·not the man to do it.

    My 2 cents

    Marty

    P.S. on a unlrelated subject, It could be quite usefull if parallax verified the correctness of the reverse-engineered Spin byte-code that's been posted on this form.· (possably make it easier to find too)· This would effectively give the Prop a second assembly language that was easier for 3rd party compilers to target?
  • Mike GreenMike Green Posts: 23,101
    edited 2007-02-10 05:57
    Tomas Rokicki's SD card FAT file system is a nice cheap way to add oodles and oodles of additional storage for data files, text files, Spin/assembly overlays, etc. and will make this kind of Propeller-based development platform doable. It's not usable yet for loading overlays, but it's very close. FemtoBasic can already load and run Basic programs off an SD card with or without initializing the variables as the program is started and it can read and write simple data files (no string manipulation or arrays). Spin overlays mostly work, but are still too buggy to post.
  • bassmasterbassmaster Posts: 181
    edited 2007-02-10 11:36
    I think I will try my hand at gtk... embedded compilers are not what I want personally. What I meant to emphasize from this post topic, is that parallax has made a chip like no other.

    That said, with some work, and maybe some help from Parallax to release a tokenizer or release the api, for linux and osx, so we all can create what we want, Java would work with all platforms, but I despise it personally. My C Compiler project, hopefully will be a command line tool that kdeveloper or any linux development IDE could use.

    If written well in ansi C it will be portable for all platforms.

    I have the experience and tools to hack the IDE and the outgoing serial port and probably figure out a way to do this fairly well, as I do it daily at my job with obsolete devices/applications that the company who wrote/created them are no longer in business. But I will not, as Parallax owns this information, and I need their blessing
    to do so. (or better yet, a tokenizer for the ASM)

    Mike you are correct, the prop to prop loader works flawlessly, the sdcard code is good, your code is good, so a few days and someone could roll it all together for a prop to prop from the prop os deveopment environment, (at least in spin).
  • Remy BlankRemy Blank Posts: 42
    edited 2007-02-10 11:36
    Chip Gracey (Parallax) said...
    On the next generation of the Propeller, we will have 96k of unused ROM which we plan to eventually sink a whole development system into. Then, we would only need to create what amounts to VNC-type software to get you inside from your desktop machine (if you really wanted to stay there). I think the only way out of the current OS mess, though, is to get all the way out, and then come back in on an optional basis.
    I'm a bit surprised to read that. I can't help feeling that this will not change anything for users from the current situation: instead of having to maintain Linux as my main system, and a Windows installation in a VM, I will have to maintain Linux and a "Propeller-custom-OS" installation for development. Still two systems to maintain.

    And there is just no way I am going to leave my primary system, as I am doing many other things besides Propeller development. Will the development system include all the tools like revision control, etc? What's the reason for keeping the whole thing closed? Why not open the sources and let the open-source community do the porting work for you?

    It just feels wrong to replace a "proprietary but widely distributed" system with an even more proprietary system.

    Just my 2c.

    -- Remy
  • JoannaKJoannaK Posts: 44
    edited 2007-02-10 11:59
    Chip Gracey (Parallax) said...
    Martin,

    This is the long-term plan, as you probably know. On the next generation of the Propeller, we will have 96k of unused ROM which we plan to eventually sink a whole development system into. Then, we would only need to create what amounts to VNC-type software to get you inside from your desktop machine (if you really wanted to stay there). I think the only way out of the current OS mess, though, is to get all the way out, and then come back in on an optional basis. 75% of the energy we've spent on the Propeller.exe program has gone to wrestling with Windows.


    Martin Hebel said...

    I think the only solution is to have Propeller based system to program Propellers on [noparse]:)[/noparse] Keyboard, mouse, monitor, Flash drive... just needs a little OS and application!

    -Martin



    Hi Chip.

    Would it be too much to ask for you to spend (say) 16kilobytes of that for Forth kernel.. During all these years I haven't seen any other system capable to so much in such small code space. I haven't yet tested the Forth ported to Propeller, but IMHO it would be a first class canditate for In-place programming.
  • bassmasterbassmaster Posts: 181
    edited 2007-02-10 13:38
    I realized the above example may scare the younger folk, here is a better screen with wmaker running in windows.





    Post Edited (bassmaster) : 2/10/2007 1:42:37 PM GMT
    1600 x 1170 - 187K
    cyg2.JPG 187.2K
  • hippyhippy Posts: 1,981
    edited 2007-02-10 13:40
    What I don't understand is why the Propeller Tool requires Windows XP and was not designed to run on 98SE. From my perspective, "it's just an IDE", and many others have managed to create those which run across the whole range of Win32 OS's.

    1) What is it that specifically, technically requires the Propeller Tool to be Windows XP only ?

    2) Why were such specific requirements not circumvented or designed around to deliver an IDE which runs on any Win32 platform ?

    Like many, I object to paying Microsoft for things I do not need when what I have serves my purposes perfectly. I really object to having to pay Microsoft simply because another company falls victim to playing the 'Microsoft upgrade game' and forces me to upgrade when I have no need or desire to, and particularly when they could make it that I don't have to.

    Companies end up supporting Microsoft by dictating to their customers which OS they must have to use their tools. Sometimes there may be a good reason for that, most often not. I am sure someone could rewrite the Propeller Tool to run under Windows 98, and I am quite disappointed that Parallax could not or chose not to. I would much rather spend my money on Parallax product than with Microsoft.
  • bassmasterbassmaster Posts: 181
    edited 2007-02-10 13:46
    I think, Parallax just got the IDE out the door to the most used people firt, I would expect them to follow up later and address our concerns about OS's like they did for the stamp, I am glad that they did not wait to finish all OS ide's before releasing it or we would still be waiting. (The are a small company, and have limited resources)
  • hippyhippy Posts: 1,981
    edited 2007-02-10 13:58
    Th way I'd see that is; design for Win98SE and it will run on XP/W2K, so that covers a much larger market and customer base. Tweak performance for XP/W2K later.
  • bassmasterbassmaster Posts: 181
    edited 2007-02-10 14:04
    Hippy, Not sure if this was a deciding factor for Parallax, but at NEC, we no longer used microsoft products that the life cycle ended, i.e. Visual Studio 6 expired in September, so we were forced to use C++.net. Same with 95, NT, etc. If Parallax finds a microsoft bug in their development process in win 98, they would not be able to go to microsoft for help.
Sign In or Register to comment.