Shop OBEX P1 Docs P2 Docs Learn Events
Parallax Propellent Library and Executable v1.0 — Parallax Forums

Parallax Propellent Library and Executable v1.0

Jeff MartinJeff Martin Posts: 756
edited 2008-08-12 15:48 in Propeller 1
UPDATE 5/29/2008: I just updated the attachment to include the Propellent Executable.pdf (sorry for the oversight, but even so, you can always get that information by running the executable with the /help switch).

Hi,

Today Parallax, Inc. is releasing the Propellent software; a Windows-based library and executable that allows compiling and downloading to the Propeller chip without using the Propeller Tool software (link the DLL into your own application, or run the executable from a command-line or a shortcut, for example).

It will be posted on the Propeller Downloads page of our website soon:

http://www.parallax.com/tabid/442/Default.aspx

But in the mean-time you can get it here (attached to this post).

Here's some more information about it:

Propellent Library and Executable Version 1.0
The Parallax Propellent software is a Windows-based tool for compiling and downloading to the Parallax Propeller chip (without using the Propeller Tool development software).· Propellent is available as both a library (Propellent.dll) and as an executable (Propellent.exe).·
······· The Propellent Library (DLL) is for software developers to link into applications enabling immediate support of the Propeller using the same functions as the Parallax-made Propeller Tool development software.
······· The Propellent Executable (EXE) is a program that includes the Propellent Library within it and provides many of the same functions to anyone wishing for command-line support of the Propeller chip.
·
Features of the Propellent Library (Propellent.dll):
······· Can download Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Can compile Propeller source (.spin) for downloading, for saving as a binary or eeprom image, for retrieval of source document, or just for syntax checking.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Automatically stores user-modified preferences in the Windows Registry for use in future sessions.· This can be disabled if desired.
······· Allows access to current list of available serial ports.
······· Allows calling application to view and/or specify preferences such as Library Path, Reset Signal (DTR, RTS, or both) and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.
·
Features of the Propellent Executable (Propellent.exe):
······· Small, command-line driven application that includes the Propellent Library inside of it; there’s no need to have the Propellent.dll file to use the Propellent.exe.
······· Compiles and downloads Propeller source (.spin), and downloads Propeller Application images (.binary or .eeprom) to Propeller chips.
······· Allows saving of compiled source as a binary or EEPROM image.
······· Includes the Propeller Tool's multi-threaded serial port handling and Propeller chip communication functionality.
······· Includes the Propeller Tool's dialogs for indicating serial port access and download progress as well as the user-customizable serial port search options.
······· Stores user-modified preferences in the Windows Registry for use in future sessions; Source Library path, Reset Signal (DTR, RTS, or both), and Serial Search Method (AUTO or specific port).
······· Supports Win2K (and later) operating systems.

Examples of Command Line Usage:
  • ...somefolder> ·Propellent.exe· ·Graphics_Demo.spin············· - Compiles and downloads the Graphics_Demo application.
  • ...somefolder> ·Propellent.exe· ·/compile· /savebinary· Graphics_Demo.spin············ - Compiles and·saves·a binary image "Graphics_Demo.binary".

  • ...somefolder> ·Propellent.exe···/ID············ - Searches for and identifies a connected Propeller chip.
  • ...somefolder> ·Propellent.exe· ·/PORT· COM2· Graphics_Demo.binary············ -·Downloads the Graphics_Demo application from image file to Propeller on COM2.

Of course, that's just the tip of the iceberg.

Take care,
·

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
--Jeff Martin

· Sr. Software Engineer
· Parallax, Inc.

Post Edited (Jeff Martin (Parallax)) : 5/29/2008 3:20:31 PM GMT
«1

Comments

  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-05-29 03:25
    This thread isn't locked and there aren't a hundred "thank you"s??!!

    Nice work! This opens the door for various editors.
    Has anyone had a chance to try this under WINE yet?

    Thank You!!
    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card? - PropDOS
    Need a part? Got spare electronics? - The Electronics Exchange
  • PraxisPraxis Posts: 333
    edited 2008-05-29 05:40
    Hi Jeff,

    Nice work, makes the wait worth it.

    Regards

    Azlan

    PS. I have included here the exe PDF that I received earlier for those who can't wait for the website to be updated.
  • heaterheater Posts: 3,370
    edited 2008-05-29 07:50
    Please, please a Linux shared library of this.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    For me, the past is not over yet.
  • Robot FreakRobot Freak Posts: 168
    edited 2008-05-29 07:58
    This is absolutely great!!!

    Thanks Parallax! (although I thing Jeff has done most work)
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-05-29 08:36
    Thanks,

    This opens up the IDE for others to do and improve without reinventing the wheel (or should I say Cog) cool.gif
  • BaggersBaggers Posts: 3,019
    edited 2008-05-29 08:41
    Thanks Jeff, this'll come in handy for many many many people [noparse]:)[/noparse]

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    http://www.propgfx.co.uk/forum/·home of the PropGFX Lite

    ·
  • Graham StablerGraham Stabler Posts: 2,507
    edited 2008-05-29 09:15
    excellent and a good name too.

    Graham
  • simonlsimonl Posts: 866
    edited 2008-05-29 11:50
    I'm gonna LOVE /LIB smile.gif

    Thank you, thank you, thank you.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Cheers,

    Simon
    www.norfolkhelicopterclub.co.uk
    You'll always have as many take-offs as landings, the trick is to be sure you can take-off again ;-)
    BTW: I type as I'm thinking, so please don't take any offense at my writing style smile.gif
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-05-30 08:57
    @Jeff:

    Would Parallax consider releasing the code for the IDE (presuming it uses the dll - or if not, cut that bit out so that it could be modified to use the dll)?

    Then the IDE could be improved to add other features. Obviously it couldn't be called the same! The modified source would have to be made available with any version.

    I would like to see a terminal window to communicate with the propeller after downloading code into RAM. This window would also include the capability to capture or send a file. Others have suggested improvements with the default file structure. I wouldn't like to have to reinvent the "wheel" for the IDE Editor.

    Currently I am using Hyperterminal on another port.

    Any comments?
  • Robot FreakRobot Freak Posts: 168
    edited 2008-05-30 09:48
    @ Cluso99:
    You can find a by Parallax created terminal window here:
    http://www.parallax.com/Portals/0/Downloads/docs/prod/prop/PE-Lab-Objects-v1.1.zip
    There is some other stuff in that file, but I don't know a download that contains only the terminal.

    It has some features to automatically close the COM port when you switch to an other window.
    So you don't have to close it or disable it when you want to program the Propeller with the IDE.
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-05-30 11:08
    @ Robot Freak:

    Thanks for the link. I have downloaded the PST. Unfortunately it doesn't capture the data into a file. My application logs data (see DataLogger article) and uploads to the PC and is captured in a file. I now have this formatted into a *.spin format and then I open this file in the IDE and I get a timing diagram smile.gif

    My preference is to be able to do this all within the one IDE and it would save having to switch apps on the fly. Unfortunately Hyperterminal raises DTR so it resets the propeller, so currently I use a different com port (FT2232 which has 2 ports). smile.gif
  • JavalinJavalin Posts: 892
    edited 2008-05-30 11:44
    Thanks Jeff!

    This opens up the possibility of "firmware" updates via a custom interface!

    smile.gif

    James
  • Agent420Agent420 Posts: 439
    edited 2008-05-30 11:53
    Just to be clear... this isn't the same thing as the Spin compiler project, is it?· I mean this just takes the Propeller tool functionality and opens it to Windows software customization, it doesn't add any new Propeller code abilities (like compile Spin to assembly), or otherwise impact a project's design?



    Post Edited (Agent420) : 5/30/2008 12:25:18 PM GMT
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-05-30 14:27
    @Agent420:

    Basically, it's a command-line version and a dll version of the Propeller Tool without the Editor section. The dll is available for others to write windows software without having to worry about the compiler and downloader sections.
  • mparkmpark Posts: 1,305
    edited 2008-05-30 16:20
    Cool beans, but why the funky misspelling of "propellant"?

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Michael Park

    PS, BTW, and FYI:
    To search the forum, use search.parallax.com (do not use the Search button).
    Check out the Propeller Wiki: propeller.wikispaces.com/
  • Paul Sr.Paul Sr. Posts: 435
    edited 2008-05-30 16:29
    mpark said...
    Cool beans, but why the funky misspelling of "propellant"?

    Different word!!

    Adj. 1. propellent - tending to or capable of propelling; "propellant fuel for submarines"; "the faster a jet plane goes the greater its propulsive efficiency"; "universities...the seats of propulsive thought"
  • Ken PetersonKen Peterson Posts: 806
    edited 2008-05-30 16:36
    Propellent is an adjective, propellant is a noun. I didn't catch that at first either, and I thought it was misspelled. Just seems to me that the noun would better describe the software.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
  • rokickirokicki Posts: 1,000
    edited 2008-05-30 17:20
    Okay, let's all say together:

    SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE SOURCE

    smile.gif

    Anyway, cool beans. Considering this release, I wonder if there's any way to get to a
    Linux/Mac command-line compiler through this route, rather than reinventing it from
    scratch. I wonder if dosbox is sufficient to run it.
  • Mike GreenMike Green Posts: 23,101
    edited 2008-05-30 18:07
    Tomas,
    It says it only works with Win2000 and its successors, so it wouldn't work under DOSBox.
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-05-30 20:44
    We will not be releasing the source code to the IDE.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.
  • JWoodJWood Posts: 56
    edited 2008-05-30 20:54
    First of all, this is a large step in the right direction for those of us that like making there own IDE's for specific quality's.

    This is great stuff Jeff! Thanks for the release of it!!

    On a side note: I prefer to use C# and the .Net framework. So, I wrote a wrapper around the Propellent.dll using the 2.0 framework (I'll also make a 1.1 and 3.0). I also wrote a small proof of concept around it. this POC only implements a few of the functions but the wrapper has all of them. This has VERY little testing (being that I don't have a propeller around me while writing this) so when it bombs on you, feel free to modify the source.

    Over the weekend I'll clean this all up and post a release 1.0 of the wrapper and make the POC interface nice 'n pretty.

    Let me know what you all think.

    Thanks again Jeff for making this possible!

    Jason
    ··· Wood



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


    Post Edited (JWood) : 6/1/2008 3:14:40 AM GMT
  • Spork FrogSpork Frog Posts: 212
    edited 2008-05-31 01:11
    Thanks so much for this!

    I was curious, so I tried it under Linux with Wine. No luck again with the serial ports (as to be expected), but the "compille" option works perfectly. Using this with the Python loader and a makefile, this makes Linux development possible with no real nasty workarounds.

    Score!
  • RaymanRayman Posts: 14,162
    edited 2008-05-31 02:11
    I wish Parallax hadn't released this!

    Now, all I can think about is making my own IDE! I've griped before about how I'd do things and now they can just tell me to make my own if I don't like it...

    I've very tempted to make a IDE that uses SPIN in a more C like syntax and then convert this to SPIN on the fly and use the dll to compile it. A map could be used to translate error positions back to the source...

    I think some things like converting "=" to ":=" and "'" to "//" and making the ";" the eol character and using brackets instead of indentation would make things much better for those of us used to C syntax...

    I just got Visual Studio 2008 with the MFC expansion pack going and it would make for a very cool interface...

    If only I had more spare time [noparse]:([/noparse]
  • Cluso99Cluso99 Posts: 18,069
    edited 2008-05-31 02:25
    @Paul:

    Would Parallax consider releasing just the code editor section so we could put it in our own IDE, or is this considered too big an ask at this point in time??
  • Paul BakerPaul Baker Posts: 6,351
    edited 2008-05-31 04:45
    We are typically very generous on releasing code. However, there are two things as general policy we do not release; the source code·for the Basic Stamp and·applications written for the PC.

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    Paul Baker
    Propeller Applications Engineer

    Parallax, Inc.

    Post Edited (Paul Baker (Parallax)) : 5/31/2008 4:51:37 AM GMT
  • hippyhippy Posts: 1,981
    edited 2008-05-31 13:51
    Great news Jeff and many thanks to Parallax. I can see a lot of potential here ..

    * Alternative IDE's

    * Pre-Processing of Spin files to allow conditional compilation.

    * Propeller compilation of other languages using transparent conversion to Spin.

    * Ability to use non-standard downloaders; over ethernet, via wireless / XBee, two-wire serial, etc.

    For me, I'm excited about ...

    * Conditional compilation

    * Adding function pointers !!!

    * Being able to compile <some source>, generate an LMM system and have that come out as a standard Propeller .eeprom file.

    * Easy embedding of ImageCraft C with Spin

    One thing I would recommend is that anyone using Propellant makes that programmable so it can be easily changed. Whatever back-end tool chain is used it should be transparent to the front-end.

    My suggestion would be to create 'PropellantWrapper.dll' and 'PropellantWrapper.exe' from the off which are default wrappers to Propellant ( or whatever ) always closest to the front-end which means front-end designers only ever need worry about calling PropellantWrapper and don't need to select which actual wrapper(s) / tool chain are used.

    That way, someone writes a Conditional Compilation or other wrapper and every IDE can instantly use it with no change. I'll think on infrastructure design ( command line switches, API, calling conventions ) which will make it easy to pass things down the tool-chain and have the front-end easily determine / control whatever is in the tool-chain.

    It's a real shame Propellant won't work on Windows 98 / pre Windows 2K but I'll limit my complaint to just saying that.
  • Jasper_MJasper_M Posts: 222
    edited 2008-05-31 14:26
    The executable seems to work with wine on linux (at least the compiler). Now it needs just a wrapper executable and a loader [noparse]:)[/noparse]
  • hippyhippy Posts: 1,981
    edited 2008-05-31 15:06
    First the good news ...

    turn.gif The .exe does seem to work under Windows 98 so far, but not extensively tested, just a simple self-contained few-lines program.

    Now the slightly bad news ...

    mad.gif Errors pop-up as Message Boxes : To be useful for anything beyond simple IDE replacement there needs to be some means to silently redirect those to a named file. That shouldn't be too hard to add. A /VERSION should redirect to file as well if specified

    mad.gif Switches to Windows GUI : If run from MS-DOS Command Line in Full-Screen Mode, a switch is made back to Windows GUI on completion. Very annoying for command line programs which call Propellant.exe

    sad.gif Confirmation Pop-ups : Delete the .eeprom/.binary file before running to avoid the confirmation pop-up.

    sad.gif No Error Result : The ERRORLEVEL doesn't get set for the comamnd line. If the .eeprom/.binary is deleted before it won't be there if failed. Presumably an error file would not be present or be zero bytes on success as well.

    Whatever, it's a definite move in the right direction.

    rolleyes.gif Using /? doesn't work for me ( screwed formatting, black text forced on my black background ) so a rough and ready .HTM version of the switches attached ( rename after download ) ...

    Post Edited (hippy) : 5/31/2008 3:24:30 PM GMT
  • hippyhippy Posts: 1,981
    edited 2008-05-31 17:38
    Anyone know how to define / determine what the DLL definitions need to be for VB6 ? I can get simple calls to work but not others. I've no idea how to deal with function parameters ...

    Private Declare Function GetLibraryVersion _
    Lib "C:\Vb\User\Propellent\Propellent.dll" _
    ( _
    ) As Long
    
    Private Declare Function GetResetSignal _
    Lib "C:\Vb\User\Propellent\Propellent.dll" _
    ( _
    ) As Byte
    
    
    
  • Oldbitcollector (Jeff)Oldbitcollector (Jeff) Posts: 8,091
    edited 2008-05-31 17:43
    It just dawned on me. (Probably obvious to everyone else)

    This will permit conditional compile! (On the editor side of course)
    Anyone working on an editor already?

    OBC

    ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
    New to the Propeller?

    Getting started with the Protoboard? - Propeller Cookbook 1.4
    Updates to the Cookbook are now posted to: Propeller.warrantyvoid.us
    Got an SD card? - PropDOS
    Need a part? Got spare electronics? - The Electronics Exchange
Sign In or Register to comment.