Octoprint (3D print server) on Omega2+



  • Hi,
    I also have the problem with netifaces installing OctoPrint 1.3.1or OctoPrint 1.3.2.
    There's a solution?



  • This post is deleted!


  • See if this fixes the compile problem.
    ln -s /usr/bin/gcc /usr/bin/ccache_cc



  • This is amazing!! Can't wait to try it out!



  • @Alan-Brand Well, I ran that command, but I'm not sure yet. I was initally getting out of memory errors, so I added a 256MB swap file, and then kept going, and now I'm getting a "IOError: [Errno 28] No space left on device"??? Hello... there's only 13.3G of free space on the micoSD? :-O :gun:

    Edit: Monkey behind the keyboard then realises that he had stupidly and willfully skipped instructions from earlier, and said error message was a result of not enough space in /tmp. Error message could have pointed that out though! :-O

    Later Edit: I can now confirm that after a) adding some swap memory b) following the instructions properly and possibly c) doing the ln -s /usr/bin/gcc /usr/bin/ccache_cc suggested by @Alan-Brand that I have OctoPrint 1.3.1 installed and running. I see 1.3.2 is now out and about, but I haven't tried it out just yet. ;)

    Even Later Edit: Ok, decided to download and roll out OctoPrint 1.3.2 since I'm fiddling around with stuff. Configured without a hickup, and is now running happily. Instead of the root user patch, you are better off using the bypass option that is present now in OctoPrint... so instead of adding octoprint & to /etc/rc.local you want to add octoprint serve --iknowwhatimdoing & The same would apply to 1.3.1, and as far back as whenever that option was introduced.

    root@OctoPrint:~/OctoPrint-1.3.1# pip install -r requirements.txt
    Processing /root/OctoPrint-1.3.1
    Requirement already satisfied: flask<0.11,>=0.9 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Collecting Jinja2<2.9,>=2.8 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached Jinja2-2.8.1-py2.py3-none-any.whl
    Requirement already satisfied: werkzeug<0.9,>=0.8.3 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Collecting tornado==4.0.2 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached tornado-4.0.2.tar.gz
    Requirement already satisfied: sockjs-tornado<1.1,>=1.0.2 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-requirements.txt (line 10))
    Requirement already satisfied: PyYAML<3.11,>=3.10 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Requirement already satisfied: Flask-Login<0.3,>=0.2.2 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Requirement already satisfied: Flask-Principal<0.4,>=0.3.5 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Collecting Flask-Babel<0.10,>=0.9 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached Flask-Babel-0.9.tar.gz
    Collecting Flask-Assets<0.11,>=0.10 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached Flask-Assets-0.10.tar.gz
    Collecting markdown<2.7,>=2.6.4 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached Markdown-2.6.8.tar.gz
    Collecting pyserial<2.8,>=2.7 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached pyserial-2.7.tar.gz
    Requirement already satisfied: netaddr<0.8,>=0.7.17 in /usr/lib/python2.7/site-packages (from OctoPrint==1.3.1->-r requirements.txt (line 10))
    Collecting watchdog<0.9,>=0.8.3 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached watchdog-0.8.3.tar.gz
    Collecting sarge<0.2,>=0.1.4 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached sarge-0.1.4.tar.gz
    Collecting netifaces<0.11,>=0.10 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached netifaces-0.10.5.tar.gz
    Collecting pylru<1.1,>=1.0.9 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached pylru-1.0.9.tar.gz
    Collecting rsa<3.3,>=3.2 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached rsa-3.2.3-py2.py3-none-any.whl
    Collecting pkginfo<1.3,>=1.2.1 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached pkginfo-1.2.1.tar.gz
    Collecting requests<2.8,>=2.7 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached requests-2.7.0-py2.py3-none-any.whl
    Collecting semantic_version<2.5,>=2.4.2 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached semantic_version-2.4.2.tar.gz
    Collecting psutil<3.3,>=3.2.1 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached psutil-3.2.2.tar.gz
    Collecting Click<6.3,>=6.2 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached click-6.2-py2.py3-none-any.whl
    Collecting awesome-slugify<1.7,>=1.6.5 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached awesome-slugify-1.6.5.tar.gz
    Collecting feedparser<5.3,>=5.2.1 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached feedparser-5.2.1.zip
    Collecting chainmap<1.1,>=1.0.2 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached chainmap-1.0.2-py2.py3-none-any.whl
    Collecting future<0.16,>=0.15 (from OctoPrint==1.3.1->-r requirements.txt (line 10))
      Using cached future-0.15.2.tar.gz
    Exception:
    Traceback (most recent call last):
      File "/usr/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
        status = self.run(options, args)
      File "/usr/lib/python2.7/site-packages/pip/commands/install.py", line 324, in run
        requirement_set.prepare_files(finder)
      File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
        ignore_dependencies=self.ignore_dependencies))
      File "/usr/lib/python2.7/site-packages/pip/req/req_set.py", line 620, in _prepare_file
        session=self.session, hashes=hashes)
      File "/usr/lib/python2.7/site-packages/pip/download.py", line 821, in unpack_url
        hashes=hashes
      File "/usr/lib/python2.7/site-packages/pip/download.py", line 663, in unpack_http_url
        unpack_file(from_path, location, content_type, link)
      File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 605, in unpack_file
        untar_file(filename, location)
      File "/usr/lib/python2.7/site-packages/pip/utils/__init__.py", line 578, in untar_file
        shutil.copyfileobj(fp, destfp)
      File "/usr/lib/python2.7/shutil.py", line 52, in copyfileobj
    IOError: [Errno 28] No space left on device
    root@OctoPrint:~/OctoPrint-1.3.1# free
                 total       used       free     shared    buffers     cached
    Mem:        125748      35696      90052       7392        660      15984
    -/+ buffers/cache:      19052     106696
    Swap:       262140      15060     247080
    root@OctoPrint:~/OctoPrint-1.3.1# df -h
    Filesystem                Size      Used Available Use% Mounted on
    /dev/root                 5.5M      5.5M         0 100% /rom
    tmpfs                    61.4M     21.1M     40.3M  34% /tmp
    /dev/mmcblk0p1           14.5G    510.7M     13.3G   4% /overlay
    overlayfs:/overlay       14.5G    510.7M     13.3G   4% /
    tmpfs                   512.0K         0    512.0K   0% /dev
    


  • I gave up using o2+ for octoprint.
    A person at a local hackerspace ported octoprint to another board he is testing which has a mega and a chip running some sort of lede. His github is here

    https://github.com/robinjanssens/OctoPrint-for-MiCaBoard

    Maybe there is something you guys can also use for the O2+, I am going to see if I can get one of these boards and make my life easier.



  • I am able to run 1.3.4.

    mount -o remount,size=200M /tmp ==> To increase /tmp
    ln -s /usr/bin/gcc /usr/bin/ccache_cc ==> to install
    sed -i 's/Häußge/H./g' /root/OctoPrint-1.3.4/src/octoprint/util/comm.py
    sed -i 's/exit("You should not run OctoPrint as root!")/pass/g' /root/OctoPrint-1.3.4/src/octoprint/server/init.py

    Also, swap I did it in USB. Creating a swap file in SD card (ext4 format) was not working for me.



  • I seem to be having a memory issue on the "pip install -r requirements.txt" step.
    https://pastebin.com/xS4i0a2C
    ANy ideas how to combat this?



  • Got 1.3.5 to run, together with Cura.

    There are quite some hacks, but hope this is useful for you. Start from the comment of Jeff Karney (11 Mar 2017) - and do create the swap file of 512MB !

    Continue Octoprint Installation

    Replace step 3 with the following steps...

    cd /root
    wget https://github.com/foosel/OctoPrint/archive/1.3.5.zip
    unzip 1.3.5.zip
    

    Make sure everything can compile

    ln -s /usr/bin/gcc /usr/bin/ccache_cc
    

    Install all dependencies

    cd OctoPrint-1.3.5
    pip install -r requirements.txt
    

    Fix unicode we can't deal with in the code

    sed -i 's/Häußge/H\./g' /root/OctoPrint-1.3.5/src/octoprint/util/comm.py
    sed -i 's/Häußge/H\./g' /root/OctoPrint-1.3.5/src/octoprint/plugins/virtual_printer/virtual.py
    

    Start octoprint from command line (see article on how to auto-restart it on boot)

    octoprint serve --iknowwhatimdoing &
    

    Install Cura

    Install prerequisites

    opkg install make
    

    Download Cura legacy

    cd /root
    wget https://github.com/Ultimaker/CuraEngine/archive/legacy.zip
    unzip legacy.zip
    

    Here's a hack I found-out I needed since make failed (forgot how)

    echo "#undef LIBC_HAS_BACKTRACE_FUNC" > /usr/include/execinfo.h
    

    Then we can build Cura (it's long on the Omega2+)

    cd CuraEngine-legacy
    make
    

    For some reason ld can't find the static libraries for c and stdc++ and the build fails. I couldn't fix this directly, but what I did was to remove the --static from the last build line and this works.

    so if your build fails with:
    /usr/bin/ld: cannot find -lstdc++ /usr/bin/ld: cannot find -lc collect2: error: ld returned 1 exit status
    then run this (or remove the --static from the last output of make):

    g++ build/bridge.o build/comb.o build/gcodeExport.o build/infill.o build/inset.o build
    /layerPart.o build/main.o build/optimizedModel.o build/pathOrderOptimizer.o build/polygonOptimizer.o build/raft.o build/set
    tings.o build/skin.o build/skirt.o build/slicer.o build/support.o build/timeEstimate.o build/modelFile/modelFile.o build/ut
    ils/gettime.o build/utils/logoutput.o build/utils/socket.o -o build/CuraEngine -Lbuild/ -lclipper -flto
    

    Give Octoprint the path to Cura

    Run the Octoprint wizard: open http://omega-xxxx.local:5000 where xxxx are the 4 last digits of your Omega2+ mac address
    In the Cura Configuration step input the Octoprint setup Wizard CuraEngine:
    Path to CuraEngine: /root/CuraEngine-legacy/build/CuraEngine



  • @Theodore-Marescaux and @Jeff-Karney - thanks so much for the updated script. I've got Octoprint 1.3.5 working on my Omega 2+.

    However, I can't seem to connect to the 3d Printer. I've tried all the manual settings and baud rates but I get a 'Timeout while trying to connect to the printer' message.

    ----- Terminal Log -----
    Connecting to: /dev/ttyACM0
    Changing monitoring state from 'Offline' to 'Opening serial port'
    Connected to: Serial<id=0x232abc0, open=True>(port='/dev/ttyACM0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=10.0, xonxoff=False, rtscts=False, dsrdtr=False), starting monitor
    Changing monitoring state from 'Opening serial port' to 'Connecting'
    Send: N0 M110 N0*125
    Recv: ?
    There was a timeout while trying to connect to the printer
    Changing monitoring state from 'Connecting' to 'Offline'
    Connection closed, closing down monitor

    ----- Close Terminal Log -----

    Any ideas?


Log in to reply
 

Looks like your connection to Onion Community was lost, please wait while we try to reconnect.