Shop OBEX P1 Docs P2 Docs Learn Events
SimpleIDE 1.1.0 On Linux.... almost :( — Parallax Forums

SimpleIDE 1.1.0 On Linux.... almost :(

I'm really close I think! (I hope). I have re-written the Linux packaging script in Python and it seems to be working great. It builds a package just like the old 1.0.0 release. Supertastic. From that package, SimpleIDE installs and runs great! Unfortunately... the programs coming out of SimpleIDE don't run so well, and I don't know why.

Trying to run the Welcome program results in a successful program of the Propeller (according to proploader anyway) but no text is shown in SimpleIDE's terminal. I tried running the same thing from the command line and got the same results: proploader reports a successful transfer of the app, but then fails to print anything back.

I'd love to hear if anyone has suggestions or wants to give it a try for themselves. You can download the package from TeamCity here and view my pull request on GitHub here, where I've also brought up this issue.

Comments

  • The problem seems the precompiled libraries, after recompiling the required libraries simpletools, simpletext and simplei2c, the welcome project works.
    I guess you have bundled the updated propeller-gcc but the old libraries ?

    I found a couple other problems:

    1. The new proploader doesn't work with my boards, not sure if this is really a problem with the loader or with my boards, I'm not using the standard propplug but a PIC18F14K50. The "old" propeller-load works fine. This is the verbose output from proploader:
    marco@bridge:~/SimpleIDE/My Projects$ /opt/simpleide/bin/proploader -v -p /dev/ttyACM0 -r cmm/Welcome.elf 
    Opening file 'cmm/Welcome.elf'
    Delivering second-stage loader
    Downloading file to port /dev/ttyACM0
    5416 bytes remaining             
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - timeout
    ERROR: Download failed: -1
    

    I'll try to look at the proploader source to see if there is something I'm missing.

    2. Changing memory model overwrites the old files on the first build, then subsequent builds works.
    For example, the default welcome project builds as cmm. On first run (fresh install) build the project and you see the cmm folder empty and the output in the "My Projects" folder. Build again, the cmm folder is filled. Now, change memory model to lmm and build, you'll see the lmm folder empty and the cmm folder overwritten with the lmm build. Hit build again and finally the lmm folder is filled. Not sure if this is linux specific (will try on Windows later).

  • macca wrote: »
    The problem seems the precompiled libraries, after recompiling the required libraries simpletools, simpletext and simplei2c, the welcome project works.
    I guess you have bundled the updated propeller-gcc but the old libraries ?

    I found a couple other problems:

    1. The new proploader doesn't work with my boards, not sure if this is really a problem with the loader or with my boards, I'm not using the standard propplug but a PIC18F14K50. The "old" propeller-load works fine. This is the verbose output from proploader:
    marco@bridge:~/SimpleIDE/My Projects$ /opt/simpleide/bin/proploader -v -p /dev/ttyACM0 -r cmm/Welcome.elf 
    Opening file 'cmm/Welcome.elf'
    Delivering second-stage loader
    Downloading file to port /dev/ttyACM0
    5416 bytes remaining             
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - receiveDataExactTimeout
    transmitPacket 6 failed - retrying
    transmitPacket 6 failed - timeout
    ERROR: Download failed: -1
    

    I'll try to look at the proploader source to see if there is something I'm missing.

    2. Changing memory model overwrites the old files on the first build, then subsequent builds works.
    For example, the default welcome project builds as cmm. On first run (fresh install) build the project and you see the cmm folder empty and the output in the "My Projects" folder. Build again, the cmm folder is filled. Now, change memory model to lmm and build, you'll see the lmm folder empty and the cmm folder overwritten with the lmm build. Hit build again and finally the lmm folder is filled. Not sure if this is linux specific (will try on Windows later).
    Do your boards something other than 80mhz crystals? I haven't done any testing with other clock speeds. proploader uses a two-stage loader and the second stage needs to know the crystal speed.
  • David Betz wrote: »
    Do your boards something other than 80mhz crystals? I haven't done any testing with other clock speeds. proploader uses a two-stage loader and the second stage needs to know the crystal speed.

    The problem is the new fastload feature, the PIC can't handle a baud rate of 900k or so. The bad thing is that there isn't an option to disable that feature, I had to modify a board configuration to force the fast load rate to 115200. I suggest to add a generic board configuration with all legacy settings.

    After further testing, I can confirm that the build bug shows up in the Windows version too, and appears it was introduced with 1.1.0, I did a quick test with the previous version and it works as expected.

    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.
  • macca wrote: »
    David Betz wrote: »
    Do your boards something other than 80mhz crystals? I haven't done any testing with other clock speeds. proploader uses a two-stage loader and the second stage needs to know the crystal speed.

    The problem is the new fastload feature, the PIC can't handle a baud rate of 900k or so. The bad thing is that there isn't an option to disable that feature, I had to modify a board configuration to force the fast load rate to 115200. I suggest to add a generic board configuration with all legacy settings.
    That's a good suggestion. You can also change any of the .cfg parameters on the proploader command line with the "-D fastloader-baud-rate=n" option.

  • I was afraid it would be GCC :/

    So exactly which version (commit hash?) of PropGCC should be included?
    macca wrote: »
    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.

    Moving PropGCC within the simpleide folder would require a (presumably simple) code change to SimpleIDE for the default path.
    Installing to a user directory should be as simple as extracting the archive and running bin/SimpleIDE I think. You'll need to open the settings and tell it where PropGCC can be found... but I think that should work.
  • DavidZemon wrote: »
    I was afraid it would be GCC :/

    So exactly which version (commit hash?) of PropGCC should be included?
    macca wrote: »
    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.

    Moving PropGCC within the simpleide folder would require a (presumably simple) code change to SimpleIDE for the default path.
    Installing to a user directory should be as simple as extracting the archive and running bin/SimpleIDE I think. You'll need to open the settings and tell it where PropGCC can be found... but I think that should work.
    The latest SimpleIDE from Parallax continues to use the old release_1_0 branch of the propgcc repository. It doesn't have any of Eric's fixes over the past several years. Also, as some here have figured out, the object files generated by the release_1_0 branch are not compatible with the most recent version of PropGCC.
  • David Betz wrote: »
    DavidZemon wrote: »
    I was afraid it would be GCC :/

    So exactly which version (commit hash?) of PropGCC should be included?
    macca wrote: »
    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.

    Moving PropGCC within the simpleide folder would require a (presumably simple) code change to SimpleIDE for the default path.
    Installing to a user directory should be as simple as extracting the archive and running bin/SimpleIDE I think. You'll need to open the settings and tell it where PropGCC can be found... but I think that should work.
    The latest SimpleIDE from Parallax continues to use the old release_1_0 branch of the propgcc repository. It doesn't have any of Eric's fixes over the past several years. Also, as some here have figured out, the object files generated by the release_1_0 branch are not compatible with the most recent version of PropGCC.

    So it's simply an incompatibility problem, not a "bug"? So if someone were to recompile all of the libraries in Simple, it would work just fine? That brings up a question I've had for a very long time: how are those libraries compiled? Did someone open up each and every folder in SimpleIDE and click the build button, or is there a script somewhere? If its easy to recompile everything, I'll happily add that to the release script so that the libraries are always compatible with whatever version of PropGCC is shipped with SimpleIDE.

    Also, do you think anyone would be interested in switching SimpleIDE's build system from QMake to CMake? Doing so would allow consistent packaging instructions for all OSes - so that you don't have one release script for linux, another for Windows, and a third for Mac.
  • DavidZemon wrote: »
    David Betz wrote: »
    DavidZemon wrote: »
    I was afraid it would be GCC :/

    So exactly which version (commit hash?) of PropGCC should be included?
    macca wrote: »
    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.

    Moving PropGCC within the simpleide folder would require a (presumably simple) code change to SimpleIDE for the default path.
    Installing to a user directory should be as simple as extracting the archive and running bin/SimpleIDE I think. You'll need to open the settings and tell it where PropGCC can be found... but I think that should work.
    The latest SimpleIDE from Parallax continues to use the old release_1_0 branch of the propgcc repository. It doesn't have any of Eric's fixes over the past several years. Also, as some here have figured out, the object files generated by the release_1_0 branch are not compatible with the most recent version of PropGCC.

    So it's simply an incompatibility problem, not a "bug"? So if someone were to recompile all of the libraries in Simple, it would work just fine? That brings up a question I've had for a very long time: how are those libraries compiled? Did someone open up each and every folder in SimpleIDE and click the build button, or is there a script somewhere? If its easy to recompile everything, I'll happily add that to the release script so that the libraries are always compatible with whatever version of PropGCC is shipped with SimpleIDE.

    Also, do you think anyone would be interested in switching SimpleIDE's build system from QMake to CMake? Doing so would allow consistent packaging instructions for all OSes - so that you don't have one release script for linux, another for Windows, and a third for Mac.
    I'm told that SimpleIDE has a feature for rebuilding all of the libraries although I haven't tried it myself.

  • Heater.Heater. Posts: 21,230
    edited 2017-03-12 18:26
    QMake is consistent across all operating systems already. QMake is what all Qt applications use. I see no need to muddy the situation my changing the build tool.

    I'm not sure why there is a build script at all. Except I guess it builds SimpleIDE, with QMake, and then it also has to build/package prop-gcc, the loader etc. Perhaps that build script could be replaced with CMake. Although that adds an unnecessary dependency for anyone who wants to build the thing.
  • Heater. wrote: »
    QMake is consistent across all operating systems already. QMake is what all Qt applications use. I see no need to muddy the situation my changing the build tool.

    I'm not sure why there is a build script at all. Except I guess it builds SimpleIDE, with QMake, and then it also has to build/package prop-gcc, the loader etc. Perhaps that build script could be replaced with CMake. Although that adds an unnecessary dependency for anyone who wants to build the thing.

    Right now, packaging for Mac requires this script, packaging for Linux requires this script and packaging for Windows requires some other script which doesn't appear to be in the repository at all. If QMake can combine all of these into one consistent packaging definition, it would appear to me that no one knows how to make it happen. I know CMake can unify all of these and I have the ability, time, and interest to do it. I've already done so for PropWare, using one packaging definition that can build exe, deb, rpm, dmg, and zip/tgz/bz2 installers (I just can't build the dmg package because it has to be run from a Mac), and I'd like to see it happen for SimpleIDE.
    David Betz wrote: »
    DavidZemon wrote: »
    David Betz wrote: »
    DavidZemon wrote: »
    I was afraid it would be GCC :/

    So exactly which version (commit hash?) of PropGCC should be included?
    macca wrote: »
    If I can give you a suggestion about the install script, try to put the gcc folder inside the simpleide folder, this will be consistent with the Windows installer and helps with testing since it doesn't mess with existing installations (I already had my own propeller-gcc folder under /opt). Also it would be good to be able to install in a user folder instead of /opt for the same reason.

    Moving PropGCC within the simpleide folder would require a (presumably simple) code change to SimpleIDE for the default path.
    Installing to a user directory should be as simple as extracting the archive and running bin/SimpleIDE I think. You'll need to open the settings and tell it where PropGCC can be found... but I think that should work.
    The latest SimpleIDE from Parallax continues to use the old release_1_0 branch of the propgcc repository. It doesn't have any of Eric's fixes over the past several years. Also, as some here have figured out, the object files generated by the release_1_0 branch are not compatible with the most recent version of PropGCC.

    So it's simply an incompatibility problem, not a "bug"? So if someone were to recompile all of the libraries in Simple, it would work just fine? That brings up a question I've had for a very long time: how are those libraries compiled? Did someone open up each and every folder in SimpleIDE and click the build button, or is there a script somewhere? If its easy to recompile everything, I'll happily add that to the release script so that the libraries are always compatible with whatever version of PropGCC is shipped with SimpleIDE.

    Also, do you think anyone would be interested in switching SimpleIDE's build system from QMake to CMake? Doing so would allow consistent packaging instructions for all OSes - so that you don't have one release script for linux, another for Windows, and a third for Mac.
    I'm told that SimpleIDE has a feature for rebuilding all of the libraries although I haven't tried it myself.

    Interesting. I've been through the menus a couple times and haven't seen such a feature. I wonder if it requires setting some environment variable before starting it to enable some super secret menu option :)
  • Here is what jazzed said about building the Simple Libraries:
    The latest package allows building all the libraries in Project View with Ctrl+Alt+F12 on windows. Never tried with Mac or Linux.
  • jazzedjazzed Posts: 11,803
    There is a bug in Ctrl+Alt+F12 where all packages are built as LMM. I have a fix for it to commit soon.
  • jazzed wrote: »
    There is a bug in Ctrl+Alt+F12 where all packages are built as LMM. I have a fix for it to commit soon.
    Wow! I haven't seen you here for ages. Welcome back!

  • jazzed wrote: »
    There is a bug in Ctrl+Alt+F12 where all packages are built as LMM. I have a fix for it to commit soon.

    Indeed, welcome back! We've missed your wisdom and input.
  • jazzedjazzed Posts: 11,803
    Project View -> Program Menu -> Build All Libraries (Ctrl+Alt+F12) fix change pushed.
    New SimpleIDE version is 1.1.1. Build clean to see version change at runtime.

    David Zemon's github activity woke me up, but I'll be sleeping again soon.
    Pull requests will be handled by Parallax.
  • Hm... ctrl + alt + f12 switches X sessions.... that's problematic :/
  • jazzedjazzed Posts: 11,803
    Project View -> Program Menu -> Build All Libraries
  • Thanks, found it. Now I can't get my board to enumerate in the com port drop down list, and running proploader from the command line throws the "Error: No wifi module found" error. Hm... I shall see if this new "Build All Libraries" button gets PropWare up and running from Windows in the meantime.
  • DavidZemon wrote: »
    Thanks, found it. Now I can't get my board to enumerate in the com port drop down list, and running proploader from the command line throws the "Error: No wifi module found" error. Hm... I shall see if this new "Build All Libraries" button gets PropWare up and running from Windows in the meantime.
    Do you have a WX wi-fi module? If you're trying to find COM ports you have to use proploader -s. It defaults to looking for WX wi-fi modules since it was originally written to test the WX wi-fi loader firmware.
  • David Betz wrote: »
    DavidZemon wrote: »
    Thanks, found it. Now I can't get my board to enumerate in the com port drop down list, and running proploader from the command line throws the "Error: No wifi module found" error. Hm... I shall see if this new "Build All Libraries" button gets PropWare up and running from Windows in the meantime.
    Do you have a WX wi-fi module? If you're trying to find COM ports you have to use proploader -s. It defaults to looking for WX wi-fi modules since it was originally written to test the WX wi-fi loader firmware.

    I do not. I'll try that. I just realized I can't try the "Build all libraries" thing from windows because the Windows release is still 1.1.0 :)
  • jazzed wrote: »
    Project View -> Program Menu -> Build All Libraries (Ctrl+Alt+F12) fix change pushed.

    Took me a while to understand what you mean with "Project View", and the settings dialog won't help much: the "View Mode" option is on the same line with 'Auto include simple libraries" which made me think that it was related to it, only when I displayed the tooltip I realized that it should be checked to see another menu entry, which switches view showing more menu entries. Not very intuitive. Please move it below the auto include entry so they don't appear related. And, while I don't understand all these UI filtering, rename it to something like "Enable View Mode Switch". Better would be to not have that option and be able to switch mode always. Even better, display the whole UI.

    Another thing, I understand that the build all libraries isn't an operation that should be done very often, but the process makes impossible to do something else while building. The dialogs pop-up, project loading, etc. brings the SimpleIDE window on top every time. This is very annoying especially when the warning dialog says that it could take hours (fortunately it took only a couple of minutes) !

    I think we should open a SimpleIDE thread for bugs and suggestions.
  • macca wrote: »
    I think we should open a SimpleIDE thread for bugs and suggestions.

    I would recommend, rather than a forum thread, you simply create tickets in GitHub: https://github.com/parallaxinc/SimpleIDE/issues
  • jazzedjazzed Posts: 11,803
    Macca,

    The default interface "Simple View" features are selected by Parallax for very a given audience. Project View is deliberately obscured to prevent Simple View users from accidentally going there. It is extremely unlikely that Parallax would allow Build All Libraries in Simple View.

    Simple View is the only reason that the program keeps the title SimpleIDE ... I will not debate the actual simplicity or benefits, etc... of SimpleIDE, because what is simple to Parallax and others is difficult for me, vice-a-versa.

    Github is the right place to point out bug fixes or request enhancements. Any feature requests or bug fixes that show up in github are negotiated between the developer and Parallax. Community input is important, but this forum is not where issue priorities are decided.

  • I actually could not get SimpleIDE 1.1.1 to show the "Build All Libraries" menu item. In fact, I could not get it to show the "Set Project View" menu item when I checked the View Mode checkbox, either... So, I wrote a bug report (actually two) at https://github.com/parallaxinc/SimpleIDE/issues after finding that SimpleIDE 1.1.1 has some first-run issues.

    I had to run SimpleIDE 1.1.1 in Qt Creator's Debugger to get the mode switch to work. The logic for first run of 1.1.1 when a previous version of the IDE has been run seems to have a bug that limits the menu options (at least on macOS 10.12.3 Sierra). Hopefully, the issues get reviewed before next release.

    Anywho, that link is to the proper place for writing up bug reports on SimpleIDE, if you want Parallax reviewing and prioritizing fixes/enhancements. Here it is again :-) https://github.com/parallaxinc/SimpleIDE/issues

    dgately
  • Alright, good news! I downloaded SimpleIDE from my TeamCity server again (v1.1.1) and installed on my new Ubuntu 16.10 laptop. I then opened SimpleIDE, rebuilt all libraries, connected a Quickstart, opened the "Welcome.side" project, and was able to successfully compile, load, and read the output from the program in the built-in terminal!

    I'm not sure how reproducible this success is... but it is the first success story! Now if we could get some attention from Parallax on this GitHub issue.
  • FYI: The link http://david.zemon.name:8111/viewType.html?buildTypeId=SimpleIDE_Qt5side&guest=1 is dead right now.

    I did get the files from it a few days ago.
    However, when I run the "Welcome.c" example, I don't see any ouput in the terminal window.
    It claims to have built and loaded the image to the Activity Board, but nothing in the terminal at all. :(
  • Link is alive again. Sorry about that. I've been off the Propeller radar for a while, but I think I'm back now.
  • ChrisL8 wrote: »
    However, when I run the "Welcome.c" example, I don't see any ouput in the terminal window.
    It claims to have built and loaded the image to the Activity Board, but nothing in the terminal at all. :(

    Hi,

    i suspected a delay error (terminal is launched too late after the propeller ). i added a for-loop with a fair amount of time and i saw the hello written.

    But now i have another problem. All code about servo are not working. Anyone have an idea?
Sign In or Register to comment.