Shop OBEX P1 Docs P2 Docs Learn Events
SimpleIDE for Raspberry Pi Raspian — Parallax Forums

SimpleIDE for Raspberry Pi Raspian

Heater.Heater. Posts: 21,230
edited 2014-02-02 10:45 in Propeller 1
Managed to get Jazzed's Simple IDE built into a package for the Raspberry Pi running Raspian.

You can find the latest version here:

http://dl.dropbox.com/u/81267937/SimpleIDE-0-8-4.armv6l.raspberrypi-linux.tar.bz2

EDIT: v0-9-45 here: https://dl.dropboxusercontent.com/u/81267937/SimpleIDE-0-9-45.armv6l.raspberrypi-linux.tar.bz2

EDIT: v0-9-46 here https://dl.dropboxusercontent.com/u/81267937/SimpleIDE-0-9-46.armv6l.raspberrypi-linux.tar.bz2


Includes Spin support, working Propeller loader and of course the full up propgcc toolchain.


Installation instructions:

The instructions for installing SimpleIDE for x86 Linux are here:

https://sites.google.com/site/propellergcc/downloads/linux-downloads

For Raspi it goes like this:

Once you have your Raspian "wheezy" up and running and have it connected to the net you can download the SimpleIDE package for Raspberry Pi

First let's assume you have a TV, keyboard and mouse connected to your Pi.

Get yourself a graphical (X) session with this command:
$ startx

Start up a command line terminal window, the should be an icon for a terminal on your desktop.

Now download the SimpleIDE package. You can do that many ways but I would just use the following command from the command line on the Raspi itself:
$ wget http://dl.dropbox.com/u/81267937/SimpleIDE-0-8-4.armv6l.raspberrypi-linux.tar.bz2

Of course that link will change over time, best to keep an eye on this pages for updates:
http://forums.parallax.com/showthread.php?141469-SimpleIDE-for-Raspberry-Pi-Raspian-update-v0.8.4

Unpack the downloaded file:
$ tar -jxf SimpleIDE-0-8-4.armv6l.raspberrypi-linux.tar.bz2
Change to the package directory (Created by the above step) and do the following
$ sudo ./setup.sh pi

Assuming you are still the default user "pi",change that if not.

Now you can run simple IDE:
$ ./simpleide
With this set up you should be able to program the Propeller over a USB serial adapter. But as you are using voth USB ports for keyboard and mouse that's a problem unless you have a USB hub.

To use the UART on the GPIO header follow the instructions here:
http://forums.parallax.com/showthread.php?141469-SimpleIDE-for-Raspberry-Pi-Raspian&p=1116618&viewfull=1#post1116618
and here;
http://forums.parallax.com/showthread.php?141469-SimpleIDE-for-Raspberry-Pi-Raspian&p=1116619&viewfull=1#post1116619

Do the second part first.
«1345

Comments

  • jazzedjazzed Posts: 11,803
    edited 2012-07-25 09:01
    Heater, I think your short circuit methodology caused the xmm loader issue because the loader needs some .dat files to be included. Copying the .dat files to loader/include first should fix the problem.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-25 09:14
    As far as I know I have all the .dat files.in the right place.
    Perhaps someone could check.
    By the way what are the .binary files that get built? They don't seem to end up in /opt/parallax anywhere.

    Now, remind me, what options should I select to get hello world running from the 32MB RAM on the Gadget Gangster board?
  • jazzedjazzed Posts: 11,803
    edited 2012-07-25 09:20
    Heater. wrote: »
    As far as I know I have all the .dat files.in the right place.
    Perhaps someone could check.
    By the way what are the .binary files that get built? They don't seem to end up in /opt/parallax anywhere.

    Now, remind me, what options should I select to get hello world running from the 32MB RAM on the Gadget Gangster board?

    If I'm not mistaken, the .binary files get stuffed into the propeller-load program. That's why you need the .dat files in the propgcc/loader/include source path (not /opt/parallax/propeller-load). The build script will copy files from propgcc/loader/include to the /opt/parallax path.

    Choose XMMC and SDRAM board type for loading a program (to make the program stick without loading will require sdcard and SDRAM-SDCARD board type).

    Slowly leaving the house today :) I won't be on line again until about 7PM PST.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-25 09:24
    Ok. In that case there is definitley a problem with xmm loading in that package as I tried those options.
    I will have another go at the loader tomorrow.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-26 09:18
    OK Jazzed,

    Managed to get SimpleIDE to build a package from the release scripts. It has built v0.8.0 despite pulling an update from the repo.
    Also includes the Spin language support which seems to work with a quick test.
    I think I now have all the .dat and .binary files incorporated into the loader correctly. At least I can program helloworld into the GadgetGanster cards SDRAM where I see it finds sdram_cache.dat and the serial helper while loading. It even runs when loaded!

    Getting those .dat and .binary files in there is a pain. At least one of the .binary files did not exist on my PC as it seems to get deleted after use. So I had to trick the build system on the PC into leaving a copy behind. Then the build on the raspi likes to clean all those files and try to rebuild them....

    Bad news is the upload to dropbox is repeatedly failing so I can't get the package out of here.
  • jazzedjazzed Posts: 11,803
    edited 2012-07-26 09:24
    Heater. wrote: »
    OK Jazzed,

    Managed to get SimpleIDE to build a package from the release scripts. It has built v0.8.0 despite pulling an update from the repo.

    Oh, I changed the process a little because of some issues. You need to build the debug version from qt-creator first. That's what gets copied to the release now.

    You'll have to rebuild-all to get the version number. That was in the last push. Thanks for building the spinside branch!

    Sorry for your other troubles. We'll sort them out next week (vacationing now).

    Thanks,
    --Steve
  • Heater.Heater. Posts: 21,230
    edited 2012-07-27 04:34
    SimpleIDE-0-8-0 Raspberry Pi Raspian is now in available in Drop Box. See first post.
    Only up to version 0.8.0 so far might get another build out today to catch up.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-28 03:20
    Sorry, did not have time to go for a 0.8.1 build. That might have to wait till Monday.
    Anyone been trying this out?
    Whilst I have propgcc and all working on the Pi here I'm still not sure if it all works from the package out of the box.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-29 13:07
    Jazzed,
    Any way to get version 0.8.1 built without qtcreator. I don't have creator installed in the Pi and no way to get it just now.
    Assuming I have the latest sources from the repo. I did an update on Friday.
  • jazzedjazzed Posts: 11,803
    edited 2012-07-29 19:53
    Heater. wrote: »
    Jazzed,
    Any way to get version 0.8.1 built without qtcreator. I don't have creator installed in the Pi and no way to get it just now.
    Assuming I have the latest sources from the repo. I did an update on Friday.

    Done. pulll/update spinside then run release/linux/release.sh.

    Sorry for the trouble.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-30 07:11
    I have updated the SimpleIDE for Raspian to the latest 0.8.1 version. See first post.

    It would be great if someone would report if this works for them. With the absence of feed back I may give up.

    @Jazzed, OK got it now, first "hg pull" then "hg update spinside", I'm not so familiar with hg yet.

    For some reason I could not build the thing from release/linux/release.sh. It finished copiling and failed in the link step with:
    mainspinwindow.o: In function `MainSpinWindow::connectButton()':
    mainspinwindow.cpp:(.text+0x47a4): undefined reference to `Terminal::getEditor()'
    
    and then a bunch of other missing Terminal:: symbols.

    So I did a qmake, make clean, make in the propside directory. Then disabled qmake, make clean, make from the release script and ran it. The resulting SimpleIDE in the build directory then worked so I hope the rest of the package content is OK.
  • Heater.Heater. Posts: 21,230
    edited 2012-07-30 08:53
    I bit the bullet, deleted my /opt/parallax on the raspi and then unpacked and installed the Simple IDE 0.8.1 package.
    Lo, it works!
  • prof_brainoprof_braino Posts: 4,313
    edited 2012-07-30 09:07
    Is there a big difference between Raspian and Wheezy?

    The RPi site recommended starting with Wheezy, now that I've gotten that working, should I switch to Raspian?

    Or should it work "just work"?
  • Heater.Heater. Posts: 21,230
    edited 2012-07-30 09:27
    Braino,

    If you mean the regular armel Debian distribution I'm pretty much sure it won't run there, you are welcome to try.

    Raspian is now the recommended Linux distribution for the Pi, although I could not find any such announcement on the raspberrypi.org front pages. However if you check the quick start page it now says, without any explanation:
    We recommend that developers use the Raspian “wheezy” image, which includes Python, gcc, and a range of example applications.

    and on the downloads page under the "Raspian "wheezy"" heading it says:
    If you’re just starting out, this is the image we recommend you use. It’s a reference root filesystem from Alex and Dom, based on the Raspbian optimised version of Debian,

    The reason for this is that Raspian is a complete rebuild of Debian that enables the use of the floating point hardware which gives a big boost in performance to a lot of programs. The regular Debian armel uses floating point emulation on the PIs ARM6 CPU.

    This has an impact on the way registers are used by the compilers and the way things are linked together. Possibly if a program does not use floating point it might still work but otherwise no.

    So, perhaps don't junk what you have and switch to Raspian but just try it out on another SD card. I'm sure there are still things that work in regular Debian that don't work in Raspian. For example it took them a few days to get Free Pascal working after I pointed out that it did not.
  • jazzedjazzed Posts: 11,803
    edited 2012-07-30 13:48
    Heater. wrote: »
    @Jazzed, OK got it now, first "hg pull" then "hg update spinside", I'm not so familiar with hg yet.

    For some reason I could not build the thing from release/linux/release.sh. It finished copiling and failed in the link step with:
    mainspinwindow.o: In function `MainSpinWindow::connectButton()':
    mainspinwindow.cpp:(.text+0x47a4): undefined reference to `Terminal::getEditor()'
    
    and then a bunch of other missing Terminal:: symbols.

    So I did a qmake, make clean, make in the propside directory. Then disabled qmake, make clean, make from the release script and ran it. The resulting SimpleIDE in the build directory then worked so I hope the rest of the package content is OK.

    Hmm. Maybe you need to do $ hg revert all

    I did a fresh apt-get install mercurial, qt4-qmake, and qt-sdk on Mint. At first, I forgot to do $ hg update spinside . That built ok using release/linux/release.sh, but ctags had to be built manually. Then, I did $ hg update spinside. There were some issues with ctag change conflicts, so i did $ hg revert all. After that rm -rf release/linux/build, and rebuilding ctags, the release.sh script worked fine.

    I noticed there are some debug messages coming out on the console - need to look at them.

    If i had a PI i would test the package. Send me one :)
  • TylerSkylerTylerSkyler Posts: 72
    edited 2012-08-02 01:29
    This is great! Just a quick question, what is it that makes this IDE build 300mbs?
  • Heater.Heater. Posts: 21,230
    edited 2012-08-02 05:51
    I have updated the SimpleIDE for Raspian to the latest 0.8.3 version. See first post.

  • jazzedjazzed Posts: 11,803
    edited 2012-08-02 08:05
    Thanks Heater.

    The Terminal is fixed now for user locales Finnish, German, Portuguese, and Chinese.
    There was one small bug fix where an unopened file was being used which caused lots of console output.
    Are you doing Propeller-GCC pull/update and rebuild? If so, this will contain Dave Hein's file "r+" fix.
    This is great! Just a quick question, what is it that makes this IDE build 300mbs?

    Propeller GCC tools and libraries like any other GCC is pretty big.
    Also the Qt shared libraries are big for open-source license usage.
  • Heater.Heater. Posts: 21,230
    edited 2012-08-02 08:12
    TylerSkyler,
    ...what is it that makes this IDE build 300mbs?

    Good question. No idea. It takes most of the day to rebuild it from source on the Raspberry Pi so I hope it's big:)

    C is a much bigger language than Spin and comes with a lot of libraries and such.
    C++ is a much bigger language than C and comes with even more baggage.
    Then there are tools in there for working with compiled object files and libraries etc. Most of which we don't need to worry about most of the time.
    Then there are the Qt libraries that the actual IDE is made out of.
    And man page documentation etc etc etc


    Anyway, I have an 8GB SD card in my Pi so I can live with it.

    Having just figured out how to get the correct resolution out of the Pi for my hdmi monitor I see that SimpleIDE is looking very nice there and is quite fast enough to work with. Not sure about the terminal screen yet.

    Previously I was running SimpleIDE from a PC on the net, terrible slow.
  • Heater.Heater. Posts: 21,230
    edited 2012-08-02 08:27
    Jazzed,

    The localization changes is what prompted me to do a repackage.

    As of this moment I get this out of hg for propside:
    pi@raspberrypi ~/propside $ hg pull
    pulling from https://code.google.com/p/propside/
    searching for changes
    no changes found
    

    and this for propgcc:
    $ hg branch  
    default
    $ hg pull  
    pulling from https://code.google.com/p/propgcc/
    searching for changes
    no changes found
    

    And everything has been rebuilt.

    So I think this package is up to date for Simple IDE 0.8.3.
  • TylerSkylerTylerSkyler Posts: 72
    edited 2012-08-02 11:16
    Heater. wrote: »
    TylerSkyler,



    Good question. No idea. It takes most of the day to rebuild it from source on the Raspberry Pi so I hope it's big:)

    C is a much bigger language than Spin and comes with a lot of libraries and such.
    C++ is a much bigger language than C and comes with even more baggage.
    Then there are tools in there for working with compiled object files and libraries etc. Most of which we don't need to worry about most of the time.
    Then there are the Qt libraries that the actual IDE is made out of.
    And man page documentation etc etc etc


    Anyway, I have an 8GB SD card in my Pi so I can live with it.

    Having just figured out how to get the correct resolution out of the Pi for my hdmi monitor I see that SimpleIDE is looking very nice there and is quite fast enough to work with. Not sure about the terminal screen yet.

    Previously I was running SimpleIDE from a PC on the net, terrible slow.

    Thanks for the reply! On my Pi I have a 32gb flash drive so it is no problem. I was just curious because I got the impression that the IDE is a "light" IDE and I was shocked to see how long it took to transfer the IDE to my pi via ssh.
  • Heater.Heater. Posts: 21,230
    edited 2012-08-02 11:38
    Tylerskyler,
    It's a trick of words. It's called Simple IDE. So it should be simple to use. Says nothing about being lite.

    Anyway the ever so simple IDE for Arduino must include the same GCC stuff but then on top you need the whole Java run time for the IDE itself.
  • Heater.Heater. Posts: 21,230
    edited 2012-08-03 06:34
    Jazzed,

    How does your serial port enumerator work? On my 0.8.3 build for Raspian I have two serial ports that can be used for the terminal:
    crw-rw---T 1 root dialout 204, 64 Jan  1  1970 /dev/ttyAMA0
    crw-rw---T 1 root dialout 188,  0 Aug  3 16:22 /dev/ttyUSB0
    

    I only get ttyUSB0 in the list when hitting rescan.

    ttyAMA0 is the on board UART which was the kernel console port and a user terminal port, now disabled as such.
    I want to use it for Prop programming.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-03 11:32
    Heater. wrote: »
    Jazzed,

    How does your serial port enumerator work? On my 0.8.3 build for Raspian I have two serial ports that can be used for the terminal:
    crw-rw---T 1 root dialout 204, 64 Jan  1  1970 /dev/ttyAMA0
    crw-rw---T 1 root dialout 188,  0 Aug  3 16:22 /dev/ttyUSB0
    

    I only get ttyUSB0 in the list when hitting rescan.

    ttyAMA0 is the on board UART which was the kernel console port and a user terminal port, now disabled as such.
    I want to use it for Prop programming.
    The propeller-load program looks at ports /dev/ttyUSB* when looking for Propeller chips. This is probably wrong but looking at /dev/tty* often ends up with a huge list of non-existent ports. Do you know of a good way to weed out the ones that aren't really there?
  • jazzedjazzed Posts: 11,803
    edited 2012-08-03 14:00
    Heater. wrote: »
    Jazzed,

    How does your serial port enumerator work? On my 0.8.3 build for Raspian I have two serial ports that can be used for the terminal:

    I'm using QextSerialPort and friends. It allows ttyUSB*, ttyS*, and rfcomm* (partially allows ttyACM*). I'll relax that and put in a user's filter at some point. I could add the ttyACM* for the next 0-8-x commit.
  • David BetzDavid Betz Posts: 14,516
    edited 2012-08-03 14:26
    jazzed wrote: »
    I'm using QextSerialPort and friends. It allows ttyUSB*, ttyS*, and rfcomm* (partially allows ttyACM*). I'll relax that and put in a user's filter at some point. I could add the ttyACM* for the next 0-8-x commit.
    What is "rfcomm"? Should we modify propeller-load to accept /dev/ttyS*? Is there some standard for tty naming or does everyone just do what they want? I can make propeller-load just use /dev/tty* but I suspect that will greatly slow down port detection.
  • jazzedjazzed Posts: 11,803
    edited 2012-08-03 15:31
    David Betz wrote: »
    What is "rfcomm"? Should we modify propeller-load to accept /dev/ttyS*? Is there some standard for tty naming or does everyone just do what they want? I can make propeller-load just use /dev/tty* but I suspect that will greatly slow down port detection.

    I have no idea what rfcomm is. Some QextSerialPort contributor thing. SimpleIDE or a user can send propeller-load any port string, so I suspect that what is being done in propeller-load now is just fine.
  • TorTor Posts: 2,010
    edited 2012-08-04 03:55
    rfcomm is used for Bluetooth serial connections at the least.

    -Tor
  • Heater.Heater. Posts: 21,230
    edited 2012-08-05 00:18
    Jazzed, yes, SimpleIDE and propeller-load work fine with /dev/ttyAMA0. Well at least it gets as far as opening the port and reporting that it can't find a Propeller there.

    I was just wondering if there is any way serial port enumerators can find out what the real hardware serial devices are connected and present those to the user skipping all those other /dev/tty* entries which are either non-existant or some kind of vertual terminal.

    I'm busy hacking up propeller loader to wiggle a Raspberry Pi GPIO pin as the Propeller reset when using the on board UART which has no DTR/RTS signals.

    Has any raspi owning Propeller head out there tried out this package?
  • ColeyColey Posts: 1,110
    edited 2012-08-05 06:53
    Being a complete noob in all things linux I decided to give this a go and it was surprisingly simple.
    I downloaded the archive from your link and extracted it to my home directory, ran the install command in the terminal (from the extracted directory) and rebooted my system.
    On reboot I started the application from the terminal and hey presto! it worked!

    Thanks Heater and Jazzed!!!

    Now to try to connect a Prop :D

    P1000160.jpg
    864 x 648 - 168K
Sign In or Register to comment.