PropellerIDE Development Thread

12467

Comments

  • Ok,
    I can get Propelleride to create,save,load a program from windows.
    However, from Linux it will create,save a program but no load to the prop. On the Linux machine it only identifies the port as tty USB0 and will not communicate with the prop
    Jim
  • RS_Jim wrote: »
    Ok,
    I can get Propelleride to create,save,load a program from windows.
    However, from Linux it will create,save a program but no load to the prop. On the Linux machine it only identifies the port as tty USB0 and will not communicate with the prop
    Jim

    Oh, there's one extra step to installation on Linux. If you haven't already, you should add yourself to the dialout group. Run the following command as root, where USER_NAME is your user.
    usermod -a -G dialout USER_NAME
    

    Then reboot your computer. Download should now work; if it doesn't, then let me know.

    It's a bug that it doesn't complain more when download fails. >.<
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • Brett Weir wrote: »
    RS_Jim wrote: »
    Ok,
    I can get Propelleride to create,save,load a program from windows.
    However, from Linux it will create,save a program but no load to the prop. On the Linux machine it only identifies the port as tty USB0 and will not communicate with the prop
    Jim

    Oh, there's one extra step to installation on Linux. If you haven't already, you should add yourself to the dialout group. Run the following command as root, where USER_NAME is your user.
    usermod -a -G dialout USER_NAME
    
    

    Then reboot your computer. Download should now work; if it doesn't, then let me know.

    It's a bug that it doesn't complain more when download fails. >.<

    Bret,
    I ran the command, rebooted, but still no Joy.
    Propellar IDE still only displays TTYB0 and does not offer any other port options. I have no problems with other USB devices eve through a hub. The prop is connected directly to a port not through a hub.
    Jim
  • I use this file.

    ATTRS {idVendor} == "0403", ATTRS {idProduct} == "6001", MODE = "664", GROUP = "frida"
    idVendor and idProduct is Propelller plug from Parallax.
    GROUP, change it to your name.

    In a terminal use lsusb without Propeller plug mounted, and again with Propeller plug mounted so you can see the ID of your plug.
    Yes Frida is my watchdog!
  • RS_JimRS_Jim Posts: 1,256
    edited January 2016 Vote Up0Vote Down
    Frida,
    My version of Linux doesn't recognize attrs command but I was able to us lsusb. I could see the device com and so I added a second quick start and it was recognized as a second port. I went into propelleride and I could download to the second QuickStart board. Still won't write to the first one,but at least I have progress!
    Jim
  • ElectrodudeElectrodude Posts: 1,210
    edited January 2016 Vote Up0Vote Down
    RS_Jim wrote: »
    Frida,
    My version of Linux doesn't recognize attrs command but I was able to us lsusb. I could see the device com and so I added a second quick start and it was recognized as a second port. I went into propelleride and I could download to the second QuickStart board. Still won't write to the first one,but at least I have progress!
    Jim

    There is no ATTRS command. That line is a udev configuration line. Download Frida's propeller.rules file, un-.tar.gz it, and (as root) put it in /etc/udev/rules.d/

    Or, equivalently, put that line in a file at /etc/udev/rules.d/propeller.rules
  • I should have a chance to try this today.
    Jim
  • Ok, so I got the file unzipped and stored /etc/ude/rules.d/propeller.rules, No joy.
    Question do {} remain or are they just there to show content that needs to be provided? I assume the "" remain.
  • ElectrodudeElectrodude Posts: 1,210
    edited January 2016 Vote Up0Vote Down
    RS_Jim wrote: »
    Ok, so I got the file unzipped and stored /etc/ude/rules.d/propeller.rules, No joy.
    Question do {} remain or are they just there to show content that needs to be provided? I assume the "" remain.

    {idVendor} and {idProduct} should stay exactly like that. Don't fill them in with anything or change them at all. They are labels for the numbers "0403" and "6001", which apparently are the vendor and product codes for FTDI chips. Just fill in your username at GROUP="insertyourusernamehere".

    You might also want to try running "sudo udevadm control --reload-rules" or rebooting, so that udev rereads those files.
  • RS_JimRS_Jim Posts: 1,256
    edited January 2016 Vote Up0Vote Down
    Ok, I misunderstood frida's post thinking I could change the label to Parallax Propeller.
    It is now working and I can plug in multiple props and each gets recognized.

    Jim
  • Brett WeirBrett Weir Posts: 287
    edited February 2016 Vote Up0Vote Down
    Hi guys, I've made a new release of PropellerIDE! Get it now!

    PropellerIDE v0.36.5

    About

    This release is the first to deploy a major rewrite of the PropellerManager library, which fixes a number of connectivity problems with older releases. This release thus focuses on providing integrations with features that were not possible before using the previous PropellerManager, such as a much faster serial terminal, custom baud rates that work, switching terminal devices on the fly, clock frequency retargeting in the memory map widget, and more.

    Release Notes

    Components Upgraded

    - PropellerManager (v0.8.0)

    Bugs Fixed

    - [IDE-171] - Serial terminal always opens to first device instead of current one
    - [IDE-175] - PropTerm chokes when receiving large amounts of data
    - [IDE-180] - Downloads sometimes fail when connected over USB hub

    New Features

    - [IDE-172] - Add clock retargeting to memory map
    - [IDE-174] - Improve IDE debug output
    - [IDE-176] - Support custom baud rates

    Improvements

    - [IDE-177] - Synchronize states between serial terminals
    - [IDE-166] - Reduce total number of recoloring / updating calls when switching tabs
    - [IDE-179] - Select last connected device automatically

    Documentation

    As an additional note, I've started work on a new manual for PropellerIDE, which you can read in progress here:

    PropellerIDE Manual: HTML | PDF | ePub | Mobi

    Currently it's only available in English, but if anyone is interested in translating it into other languages when it's complete, contact me and I can reach out to you when the time comes. When the manual is further along, I will be moving it to the main developer site where it'll be easier to find.

    For anyone who has not checked out the developer site, go, go now!
    http://developer.parallax.com/

    Enjoy!
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • Brett...

    Thanks for all you efforts.

    Lately, I've been using PropellerIDE to write assembly code for the P2... because it has scrolling:)

    I know you are very busy... but if it is easy enough, could you build a kludge in there that if a label falls at the beginning of a line and starts with a "very special" character, it would show up in the cheat box on the left and I could get to it by clicking?

  • Hi,

    I have been trying to use auto-complete.

    I type the name of the module and then the dot, it brings up a blank box and I can't go further, I have tried 3 letters etc.

    The program compiles ok and if I turn off auto-complete things work correctly.

    Any suggestions?

    thank you for the IDE
  • rjo__ wrote: »
    Brett...

    Thanks for all you efforts.

    Lately, I've been using PropellerIDE to write assembly code for the P2... because it has scrolling:)

    I know you are very busy... but if it is easy enough, could you build a kludge in there that if a label falls at the beginning of a line and starts with a "very special" character, it would show up in the cheat box on the left and I could get to it by clicking?

    I'm happy to hear it. :) Please excuse my ignorance though; what do you mean, it has scrolling? Like with the mouse scroll wheel? =P

    I am afraid its a little more complicated than that to scan he source files for useful information without returning lots of false positives and icky corner cases. Something like that would be easier if the scanner supported blocks, but it doesn't, and that's going to add a lot more complexity if/when it does, so it's low on my list of things to do. =\
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • lmclaren wrote: »
    Hi,

    I have been trying to use auto-complete.

    I type the name of the module and then the dot, it brings up a blank box and I can't go further, I have tried 3 letters etc.

    The program compiles ok and if I turn off auto-complete things work correctly.

    Any suggestions?

    thank you for the IDE

    Erp. Thanks for pointing that out. I had noticed that issue before but I didn't pay much mind to it. I just made a patch release.

    https://github.com/parallaxinc/PropellerIDE/releases/tag/0.36.6

    Try that out and let me know how it goes. It should fix things for you.
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • Thanks for your work, Brett.

    I Did only a quick test.

    One thing I noticed is, if I declare an array of objects (someobject[2]) the file does not appear in the project view.

    Auto complete works for me, but it would be nice if it would also work for constants (not only for '.' but also for '#').
    οἶδα οὐκ εἰδώς
  • dnalor wrote: »
    Thanks for your work, Brett.

    I Did only a quick test.

    One thing I noticed is, if I declare an array of objects (someobject[2]) the file does not appear in the project view.

    Auto complete works for me, but it would be nice if it would also work for constants (not only for '.' but also for '#').

    Happy to contribute. :)

    An array of... objects? I didn't realize that was even syntax that Spin accepts. Is that in the manual anywhere?

    Huh. Well, that's a head scratcher. It should work for constants already. I'll have to take another look at it later tonight.
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • @Brett,

    Yes, it is in the manual and quite useful.

    syntax is simple

    OBJ

    someobject[2] "fullduplexserial"

    CODE

    someobject[0].TX(whatever)
    someobject[1].TX(whatever)

    The interesting part here is that SPIN just uses one code section, one data section, but two var sections.

    So code and dat get pruned to save space but each instance will have own VAR sections.

    For example Kye's Fat_Engine can be used multiple times to access more than one file at the same time. Just mount and start the first one. Each further instance will just add some VAR space for handling the FAT and providing a sector buffer.

    Enjoy!

    Mike
    I am just another Code Monkey.
    A determined coder can write COBOL programs in any language. -- Author unknown.
    Press any key to continue, any other key to quit

    The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this post are to be interpreted as described in RFC 2119.
  • msrobots wrote: »
    @Brett,

    Yes, it is in the manual and quite useful.

    syntax is simple

    OBJ

    someobject[2] "fullduplexserial"

    CODE

    someobject[0].TX(whatever)
    someobject[1].TX(whatever)

    The interesting part here is that SPIN just uses one code section, one data section, but two var sections.

    So code and dat get pruned to save space but each instance will have own VAR sections.

    For example Kye's Fat_Engine can be used multiple times to access more than one file at the same time. Just mount and start the first one. Each further instance will just add some VAR space for handling the FAT and providing a sector buffer.

    Enjoy!

    Mike

    Ahhh, I'm aware that you can have more than one of an object. I just didn't know that you could use array notation to access them. That almost allows you to create classes in Spin. =O
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • Still problems with auto-complete with patch 0.36.6

    Same symptoms, soon as I hit the . I get a single line blue box and nothing pops up, even if I type the full name.

    I tried uninstalling, going through the registry to remove any residual keys and deleted the install directory. Reinstalled and still have the same problem.

    Could I have libraries on my computer that affect it?

    thanks

    Lee
  • lmclaren wrote: »
    Still problems with auto-complete with patch 0.36.6

    Same symptoms, soon as I hit the . I get a single line blue box and nothing pops up, even if I type the full name.

    I tried uninstalling, going through the registry to remove any residual keys and deleted the install directory. Reinstalled and still have the same problem.

    Could I have libraries on my computer that affect it?

    thanks

    Lee

    Ah, that shouldn't make a difference.

    Well, let's see. If you could provide a little more information, that'd be helpful. Can you verify that your library paths are correct in the Preferences? Are you trying to use functions in an object in the same folder as the main program or a different folder?

    I decided to work on the problem more. There's definitely still something not quite right but it's gonna take some time to go through it. I'll let you know when I have something.
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • The object is in the same folder as the main program.

    I am not using any object from the library paths, the library path is correct.


    I have just done a test using one of the library files from the library path, it works as expected, it appears the problem is only with objects in the same directory as the main program.

    best regards

    Lee
  • lmclaren wrote: »
    The object is in the same folder as the main program.

    I am not using any object from the library paths, the library path is correct.


    I have just done a test using one of the library files from the library path, it works as expected, it appears the problem is only with objects in the same directory as the main program.

    best regards

    Lee

    Ahhh, yeah, that's the problem I found. For whatever reason, I'm overwriting the main file path when using auto-complete. I'll have a fix out in a few hours after some other changes. =P
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • thank you
  • Hello again, @lmclaren, @dnalor, and @msrobots. Here's an updated build for you to try!

    https://github.com/parallaxinc/PropellerIDE/releases/tag/0.36.7

    Bugs Fixed

    [IDE-182] - Auto-complete fails for files in same folder

    New Features

    [IDE-183] - Add support for constant auto-completion
    [IDE-184] - Add support for object arrays in projectview
    [IDE-185] - Auto-complete functions and constants in current file

    I've also added a new doc page describing how auto-completion works in PropellerIDE and how to use it.

    https://bweir.gitbooks.io/propelleride/content/user/editor/code-completion.html

    Lemme know how it goes!
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • First impression is that it still does not work if the object file is in the same directory as the main code. Works ok if the object file is in the library path.

    I will test further in the morning

    thank you

    Lee
  • [IDE-182] - Auto-complete fails for files in same folder
    No, my files were always in same folder. But my observations are:
    - Some files did not work (were saved with propellertool). Edit file with propelleride and save -> autocomplete works.
    - one object i called pin. If I type "pin." , I see only "Pub ..." in the box. If I call it pins or something else it works.
    [IDE-183] - Add support for constant auto-completion
    Works.
    [IDE-184] - Add support for object arrays in projectview
    File appears now in projectview. but autocomplete does not work ("someobject[0]." or "someobject[0]#" do not show the box.
    [IDE-185] - Auto-complete functions and constants in current file
    Works somehow. Problem is, that the box is to narrow (I only see "PUB... PUB t...p" instead of "PUB main PUB tryLoop) .
    That's the case for some other files, too.
    My observation:
    The box is about 4 characters shorter than the longest name + parameter. The parameterlist of the longest is always cutted.
    If a function do not have parameters the box is shorter than the longest name and the names are shorted (PUB n...e).
    οἶδα οὐκ εἰδώς
  • Brett WeirBrett Weir Posts: 287
    edited February 2016 Vote Up0Vote Down
    dnalor wrote: »
    [IDE-182] - Auto-complete fails for files in same folder
    No, my files were always in same folder. But my observations are:
    - Some files did not work (were saved with propellertool). Edit file with propelleride and save -> autocomplete works.
    - one object i called pin. If I type "pin." , I see only "Pub ..." in the box. If I call it pins or something else it works.

    Can you send me the project that you're working with? Also, what is the environment you're on? Windows? Mac? Linux? Propeller Tool saves files in a really strange format. I'm going to need to examine it more closely to see how that's affecting things.
    dnalor wrote: »
    [IDE-183] - Add support for constant auto-completion
    Works.

    Cool!
    dnalor wrote: »
    [IDE-184] - Add support for object arrays in projectview
    File appears now in projectview. but autocomplete does not work ("someobject[0]." or "someobject[0]#" do not show the box.

    Yes. I made it work in project view, not autocomplete. That's going to be more complicated. I'm going to have to think about how that'll work.
    dnalor wrote: »
    [IDE-185] - Auto-complete functions and constants in current file
    Works somehow. Problem is, that the box is to narrow (I only see "PUB... PUB t...p" instead of "PUB main PUB tryLoop) .
    That's the case for some other files, too.
    My observation:
    The box is about 4 characters shorter than the longest name + parameter. The parameterlist of the longest is always cutted.
    If a function do not have parameters the box is shorter than the longest name and the names are shorted (PUB n...e).

    I think I know just how to fix this. I'll get back to you on this.
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • lmclaren wrote: »
    First impression is that it still does not work if the object file is in the same directory as the main code. Works ok if the object file is in the library path.

    I will test further in the morning

    thank you

    Lee

    Same question that I asked for @dnalor. I will need to know more about your circumstances to troubleshoot this.
    LameStation, the game console parents want their kids to play!
    PropellerIDE, an integrated, cross-platform IDE for the Propeller
    PropellerManager, an event-driven C++ API for managing Propeller devices
  • Hello Brett,

    Thank you for an excellent program in PropellerIDE.
    It is really shaping up, well done.

    I upgraded from ver. 0.33.3 to ver. 0.36.5 on February 9th (2016)
    running on a Raspberry Pi 2 model B Raspbian-Jessie

    I'm sure I have some done something wrong in the install process.
    It is now running very slowly.
    Screen scrolling and selecting text takes soooooo long.

    attached ( I hope ) is the terminal screen boot report.

    The Warning messages may mean more to you than they do to me. :)
    Thanks you for any help you may have.

    Roger.
    pi@RPi2:~ $ propelleride 
    libEGL warning: GLX/DRI2 is not supported
    libEGL warning: DRI2: failed to authenticate
    libEGL warning: DRI2: failed to open swrast (search paths /usr/lib/arm-linux-gnueabihf/dri:${ORIGIN}/dri:/usr/lib/dri)
    [DEBUG] main: PropellerIDE v0.36.5 - An easy-to-use, cross-platform IDE for the Parallax Propeller
    [WARN ] default: Cant find EGLConfig, returning null config
    [WARN ] default: Unable to find an X11 visual which matches EGL config 0
    [WARN ] default: Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
    [DEBUG] color.scheme: loading ":/themes/Dusk_Ocean.theme"
    [DEBUG] color.scheme: loading "/home/pi/.config/Parallax/PropellerIDE.conf"
    [DEBUG] color.scheme: saving "/home/pi/.config/Parallax/PropellerIDE.conf"
    [DEBUG] project.parser: rebuilding project model
    [WARN ] default: Cant find EGLConfig, returning null config
    [WARN ] default: Unable to find an X11 visual which matches EGL config 0
    [WARN ] default: Could not initialize OpenGL for RasterGLSurface, reverting to RasterSurface.
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] file.manager: opening "/usr/share/propelleride/library/library/com.serial.terminal.spin"
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] file.manager: opening "/home/pi/Propeller Code/RGB_Cube_Docs.spin"
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] file.manager: opening "/home/pi/Propeller Code/jm_ws2812.spin"
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] file.manager: opening "/home/pi/Propeller Code/RGB-Cube-4.spin"
    [DEBUG] project.parser: rebuilding project model
    [DEBUG] project.parser: rebuilding project model
    
    



Sign In or Register to comment.