New Release: PropellerIDE + PropBASIC = Fun Times!
Brett Weir
Posts: 288
Hi there!
I know it's been awhile since you've heard from me. I've been busy trying to release a new version of LameStation, so PropellerIDE has been mostly on the back burner (except for when the kids report embarrassing crash bugs and strange behavior!).
However, a few weeks ago, you guys totally blew me away when a sizable chunk of the votes I received on the FedEx Small Business Grant Contest came directly from the Parallax forums! It was awesome! I didn't win, unfortunately, but I'm hanging in there and there will be other opportunities, but seeing you guys voting day after day was a real confidence boost and I couldn't be happier about it. So I decided to take some time away from LameStation and do a little something as a thank you for all the support.
Starting with version 0.38.4, PropellerIDE now supports Spin and PropBASIC seamlessly, side-by-side. This is possible because language-specific details and compilers have been abstracted away into pretty little config files, which also leaves open the possibility of supporting more languages in the future.
This is a major structural change, so this release may still be rough around the edges, but by and large, PropellerIDE should now look and feel like a native PropBASIC editor, on top of supporting Spin as it always has. While other Spin compilers are supported, the selection of bstc is hard-coded at present. It won't be long before openspin or other compilers can be chosen. However, PropBASIC will continue to require bstc or any other compiler supporting the @@@ extension, meaning PropBASIC is unlikely to find its way to Raspberry Pi any time soon.
In short, please take the brand new PropBASIC support for a Spin (lololol!), and let me know how it goes. Your feedback is always welcome.
https://github.com/parallaxinc/PropellerIDE/releases/tag/0.38.4
Happy Spinning!
Sincerely,
I know it's been awhile since you've heard from me. I've been busy trying to release a new version of LameStation, so PropellerIDE has been mostly on the back burner (except for when the kids report embarrassing crash bugs and strange behavior!).
However, a few weeks ago, you guys totally blew me away when a sizable chunk of the votes I received on the FedEx Small Business Grant Contest came directly from the Parallax forums! It was awesome! I didn't win, unfortunately, but I'm hanging in there and there will be other opportunities, but seeing you guys voting day after day was a real confidence boost and I couldn't be happier about it. So I decided to take some time away from LameStation and do a little something as a thank you for all the support.
Starting with version 0.38.4, PropellerIDE now supports Spin and PropBASIC seamlessly, side-by-side. This is possible because language-specific details and compilers have been abstracted away into pretty little config files, which also leaves open the possibility of supporting more languages in the future.
This is a major structural change, so this release may still be rough around the edges, but by and large, PropellerIDE should now look and feel like a native PropBASIC editor, on top of supporting Spin as it always has. While other Spin compilers are supported, the selection of bstc is hard-coded at present. It won't be long before openspin or other compilers can be chosen. However, PropBASIC will continue to require bstc or any other compiler supporting the @@@ extension, meaning PropBASIC is unlikely to find its way to Raspberry Pi any time soon.
In short, please take the brand new PropBASIC support for a Spin (lololol!), and let me know how it goes. Your feedback is always welcome.
https://github.com/parallaxinc/PropellerIDE/releases/tag/0.38.4
Happy Spinning!
Sincerely,
Comments
Out of nowhere comes possibly the best piece of news I've heard all year.
I feel that a game changing event just occurred
Sincerely thank you Brett.
That's awesome. Just in time to install after a 12 hour upgrade to Win 10 on this laptop!
Only one problem, I can't compile anything! The build and run buttons etc are grayed out. See screen shot:
Happy to hear it!
Definitely happy to hear that! :P
Hi Heater! So you're on a fresh Windows 10 install. According to the screen shot, it looks like you have no USB devices connected to the system, which would then gray it out. (Though, you bring up a good point that you should still be allowed to compile when no device is attached. Noted!). I had stopped packaging FTDI drivers with the Windows installation because they kept getting flagged as a virus on (and only on) Avast, so unless you've installed them otherwise, you wouldn't have them (I have been considering including them again and saying to heck with Avast).
Have you installed FTDI drivers/connected a device?
I played with it a bit. Turns out I can compile without any USB devices connected. Just open PropellerIDE, hit "new", type a little program in, hit the "hammer", then we get a dialogue box asking where to save the file...
This is the crucial part I can:
1) Give a file name and hit "save". In which case it gets compiled and all is good. Like below:
2) Not give a file name and hit "cancel" in the save as dialogue. In which case the "hammer" and other icons get grayed out and I cannot compile. As in the previous post.
Now, if I subsequently save the new file, "save as", the icons still remain grayed out.
Not only that I can't compile files that do have file names in other tabs. I have to restart PropellerIDE to get the icons working again.
It all seems to hinge on trying to compile some nameless source.
This Samsung laptop has just now been upgraded from Win 7 to Win 10. I don't recall now if any USB drivers were ever installed on it previously. It's a work machine so it may never have seen PropellerIDE or SimpleIDE before.
I don't have any USB devices plugged in, except keyboard and mouse.
@Brett
One thing to consider, in the Help menu, maybe access to the "What is PropBasic" .pdf file should be included. Maybe at this point Bean will have an updated copy available.
So far PropellerIDE looks very good, have not run into any problems yet. Not sure how much further I will be involved.
Ray
I always have thought Basic for the Prop was a good thing. Bean will be happy too!
So far, on a Windows 7 64bit setup, PropellerIDE using PropBasic, it is working without any obvious problems. All the PropBasic fans should find this version of PropellerIDE an absolute delight to use, maybe it's to simple too use. I am using a QuickStart board for the tests, just easier to access some LEDs and maybe later some touch buttons.
Ray
I've not had time to experiment yet, so it's sure comforting to hear about your success.
Is the code highlighting also working as you'd expect? Like, it shows up spelling errors in commands etc...
Ooh,- and does it do code/keyword completion too? (example- So if you type LO then do you get a dropdown for LOW and LOOP)
Since I am testing the .pbas file editor part, no it does not have that stuff working, although it is turned on in the preferences. Somebody else will have to test .spin file editor for the above mentioned.
@Brett, again, hopefully you will consider adding access to "What is PropBasic" .pdf to the Help menu, or something along those lines, for easy access to PropBasic stuff.
As to the keyword completion, when I use Visual Studio, that seems to be a good experience, but I have worked with other programs where it was a mess, and a hindrance to what you are doing. Be careful what you wish for.
Ray
Good advice !!
Using the program below the build manager shows 952 longs, while the memory map shows 235 longs. Not sure what to make of this.
Ray
Ahhh, I know what's going on. The logic that decides whether or not those buttons should be grayed out has seen some code rot and really needs some scrubbing. I'll jot that down on the list of things to fix. =o
That's surprising, haha. Who knows, maybe it comes with some drivers already? If you're not able to download, that's something I would try though.
Good thinking! I overlooked that on this release, but I'll drop one into the menu when I get the chance.
Ahahaha, it's too simple?? I'm happy to hear it. =P
Code completion does not work for PropBASIC at present. The way it's implemented at present, it relies on certain trigger keys like "." and "#" to pop up suggestions. I want to introduce a completer that uses the whole project model as its data source and can make suggestions regardless of the context, but that is another project.
Such a completer would also be non-blocking (unlike how you have to escape from it currently), as I find it annoying that PropellerIDE forces you to make a decision of whether to use a completion whether you asked for it or not.
Oops. Memory Map is something I overlooked when doing this. I haven't tested it at all for PropBASIC, so I wouldn't trust what it's telling you for the time being. I'll look into that though.
Well done Brett and Bean!
When I received a message from Brett vis-a-vis the integration of PropBASIC into PropellerIDE, I gave it a quick try and was happy. Today, though, I opened a substantial app and was absolutely thrilled -- this really is a game changer for those who want to program the Propeller in BASIC. I love that the details panel shows my attached libraries in a collapsible form, and clearly identifies subroutines, functions, constants, and even IO pins.
Again, well done Brett!
I'm sure this is just the beginning, and now that PropBASIC has a proper IDE, my sense is that Bean will be working to improve PropBASIC and add more features. Likewise for Brett working out any kinks we come across while re-exploring PropBASIC through PropellerIDE.
Exciting times for the Propeller.
I've been very busy at work and haven't had time to be on the forum much. When I get a chance I will try out PropellerIDE, but it looks fantastic!!!
Bean
Love the new Avatar!
Init_pad sets the pins as HIGH outputs to charge the pads then immediately switches the pins to inputs. Any pad being triggered will test as “<>1“
A couple of questions, what version of PropBasic is being used and is there some up to date documentation for it? I know many months back Bean mentioned that he had a version, but was unable to include it with BST, so their might be some confusion as to what the latest and greatest version of PropBasic is.
Also, I think everybody is aware of the lack of drivers for PropBasic, as the situation improves, will those be included with the distribution of PropellerIDE, the way it is done with OBJ files for Spin? Probably a different discussion could occur as to what these driver files would look like, and how they could be used.
Now, for those of you who have not tried PropBasic on PropellerIDE, it is as simple as, hit New, name the file .pbas, once you have your basic program entered, hit Run, and it should be running your program on your favorite Propeller setup.
Ray
Compiled some PropBASIC code and all ok. Actually including a really complex program which even VP couldn't handle!! So all VERY ok
However.... now I'd like to revert PropellerIDE to allowing compilation of traditional spin code... How to do that?
I'm getting compiler errors, so I guess the compiler choice needs to be changed back to spin language, but PropellerIDE GUI doesn't seem to allow that?
(not sure if this has been covered elsewhere- I thought I saw you mention something about the compiler choice being stuck at the moment... but cannot find that message!)
Ray
I'm sure this is a minor snag and will be worked out; I just wanted to bring it to your attention.
This is a very first release and as Jon suggests these minor snags will be worked out. And like Bean and Jon before him, Brett is doing this on his own time.
Overall my initial experience has been great and I think yours too. I also like the collapsible navigation menus on the left- I find that very logical and efficient. Let's all hope they don't vanish for long !!
For users only interested in PropBasic then what I mentioned doesn't really matter. In the meantime I could use PropellerTool to compile what I needed in Spin.
My feeling is that if the community can feedback any oddities here, and keep some active buzz going, then odds are good that Brett will remain encouraged to fix up these snags as spare moments appear! And this is already a workable solution for me, immeasurably better than what I had a week ago.
That's not my experience. The compiler is selected based on file extension -- save as .spin and you get the Spin compiler; save as .pbas and you get the PropBASIC compiler. Remember that BSTC is an external editor hence a file as to be saved to be passed to it.
I just tried a quickie Spin program, New -> .spin -> hit run, and seems to be working for me, with no errors. And yes it did use Brads Spin Tool Compiler v0.15.3, for the job. I believe Brett mentioned that when openspintool compiler is able to handle @@@, then he would be using that for everything.
So, at the moment, PropellerIDE uses Brads tools to compile Spin and PropBasic programs, and it does work seamlessly. I guess what we have now is PropellerIDE(BST Lite) tool, since I do not have a Linux setup, I cannot say anything about it working correctly on that setup, let alone a Raspberry Pi.
Ray
By traditional code I meant regular spin code. It wasn't over complex stuff, but it did include some Flight Controller libraries (local copies in the project folder). The code used to compile with PropellerIDE on that machine right up until the moment my mind wandered and I thought I'd update to the new PropellerIDE and give PropBASIC a test, which seemed flawless to me.
After that the spin code would no longer compile, and I quickly reverted to PropTool to finish the job I was doing. Sadly I didn't have time to investigate further, but when I'm next at the test bench I will try again and figure out exactly the issue as clearly this might not be an issue for every install.
What Jon said might be something (about saving before compiling) if PropellerIDE doesn't handle that automatically. Time will tell.
Edit: hmm-- maybe not that, as at the time I did save, and also tried rebooting and opening the file from the hdd without making changes.... anyway, save this for later!
BTW, I was using WinXP on a netbook at the time- ie. not Linux.
More to follow...!
I noticed (at least on Mac OS X) that Propeller IDE is using bstc for .spin compiles, but the executable for openspin is also included within the app package. I get that bstc allows @@@ and since PropBasic emits @@@, there's good reason to have bstc available. But, shouldn't the Preferences panel allow me to use the openspin compiler for my .spin files (a personal choice, I know!)?
I really prefer to use a compiler whose source code is available/maintained/etc when I can (I get that PropBasic needs bstc for the interim and it's a smart decision to make bstc the default compiler for the .spin that PropBasic emits). So, can the Prefs panel allow me to switch spin compilers?
Thanks for all your hard work (having PropBasic available in an excellent IDE is a fantastic option)!
dgately
Could one of you experts please explain the advantages of basic, as you see it.
I am sure I am missing something!
Thanks in advance.