Creating an all in one terminal

They're gnu c and c++ compilers.

I guess 4.7 was part of Stretch or Jessie at some point

Just tsted it on an OctoPi 1.0 nightly build with

pi@octopi:~/CuraEngine/build $ g++ --version
g++ (Raspbian 10.2.1-6+rpi1) 10.2.1 20210110

and it seems to be working

pi@octopi:~/CuraEngine/build $ ./CuraEngine 
Cura_SteamEngine version DEV
Copyright (C) 2014 David Braam

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
Default config 'default.cfg' not used
M107
G1 F2700 E-4.50000
G0 F9000 X0.000 Y0.000 Z5.000
M104 S0                     ;extruder heater off
M140 S0                     ;heated bed heater off (if you have it)
G91                            ;relative positioning
G1 E-1 F300                    ;retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z+0.5 E-5 X-20 Y-20 F9000   ;move Z up a bit and retract filament even more
G28 X0 Y0                      ;move X/Y to min endstops, so the head is out of the way
M84                         ;steppers off
G90                         ;absolute positioning

So just try to build it

To install a slicer on OctoPi will require that the desktop be installed first. There is a script for that and instructions printed on the terminal when you login via SSH.

Following the advice of @PrintedWeezl, I was able to sudo apt install slic3r and run it successfully. I could not find Prusa-Slic3r and the Ultimaker Cura via Snap failed because it wants a 64-bit environment and the stable OctoPi release is 32-bit.

There is a beta release of OctoPi that I believe comes in both 32-bit and 64-bit flavors so you could try that. You say you have an old raspberry 3 which is either a 3B or a 3B+. I can't remember if both can run the 64-bit version but I'm pretty sure the 3B+ can.

did you have to do anything special when installing slic3r? i can do the desktop aspect easily but to be honest that middle section you wrote went way over my head. anytime i look at guides to download slic3r it requires over 30 minutes of setup. as i said i am not a person that is coding inclined. are you essentially saying that by installing a desktop i will gain access to the compilers i need? because as i understand it they are all thats stopping me

Imo the easiest and fastest way to get started is to install Cura on your pc, select the Ender 5 preset, install the OctoPrint plugin and connect it to Octoprint.
Then just slice, press on Print with Octoprint, open the Octoprint webui, press print, done.

Bildschirmfoto vom 2022-08-30 06-55-08
They named it slic3r-prusa :smiley:

Yeah I suspected that might be the case so I tested it on 64bit.

Both can run 64bit (and btw also the newer Pi 2 v1.2).

i understand that is the easiest thing to do but its not what my employer has asked for. For the purpose of pursuing my own ambition i would like to present him with exactly what he asked for despite the difficulty presented by this hurdle. I believe if i download an older version of octopi that the file needed may still be in the repository, any ideas how i can access previous versions that i can image using the pi imager?

The last image which listed preinstalled Cura was OctoPi 0.15.1 - however I'm pretty sure it was also included in OctoPi 0.16.0 and maybe even OctoPi 0.17.0.
It was definitely removed in OctoPi 0.18.0.

I would advice you to use the latest possible image. Best case would be OctoPi 0.17.0, which is based on Debian Buster and still got 2 years of extended support.

With those images you won't be able to update Octoprint to the latest version, because it requires Python 3 since 1.8.0.
If you want to upgrade the OctoPi 0.17.0 image to Python 3 follow this guide

You can run a simple script which should take care of everything for you.

  1. Login with SSH to the user pi

  2. Type sudo apt install slic3r

  3. (optional) Type sudo apt install slic3r-prusa

  4. Open the desktop (I use RealVNC Viewer because I don't have a monitor/keyboard/mouse connected to my RPi).

  5. Open a terminal window on the desktop

  6. Type slic3r or (Optional) Type slic3r-prusa3d

I don't consider any of the above "special". There is no "compiling" involved as I'm just using the pre-build packages from the repository.

My recommendation is to use OctoPi 0.18.0 which will come with OctoPrint 1.8.2. Install the desktop, install slic3r-prusa, and install the OctoPrint-Slic3r plugin. If this doesn't meet your employer's request, then you will need to tell us more details about what he has asked for.

I also would recommend that you explain to your employer that slicing on an "old raspberry 3" is not the best solution. Do your slicing on a desktop (or more than one) and then upload the .gcode files through the OctoPrint web interface. Depending on the slicer, you may be able to configure it to interface with OctoPrint directly.

1 Like

do i have to set it so the desktop always opens when the pi starts or should i have it set to no. in regards to my employers request he simply wants students and teachers to be able to log in to the octopi web interface, transfer stl files and have them sliced and printed all in one neat setup

im attempting to compile the library following the instructions given in the link you provided. they present a large quantity of code which confuses me greatly.

if [ ! -z "${TBB_DIR}" ]; then
sudo rm -rf ${TBB_DIR}
fi
mkdir -p ${TBB_DIR}
cd ${TBB_DIR}
wget ${TBB_RELEASE}
tar xzvf $(basename ${TBB_RELEASE})
cd tbb*
make tbb CXXFLAGS="-DTBB_USE_GCC_BUILTINS=1 -D__TBB_64BIT_ATOMICS=0"
cd ${TBB_DIR}
mkdir libtbb-dev_${TBB_VERSION}_armhf
cd libtbb-dev_${TBB_VERSION}_armhf
mkdir -p usr/local/lib/pkgconfig
mkdir -p usr/local/include
mkdir DEBIAN

cd ${TBB_DIR}/libtbb-dev_${TBB_VERSION}_armhf/DEBIAN
cat > control << EOF
Package: libtbb-dev
Priority: extra
Section: universe/libdevel
Maintainer: ${YOUR_NAME} <${YOUR_EMAIL}>
Architecture: armhf
Version: ${TBB_VERSION}
Homepage: http://threadingbuildingblocks.org/
Description: parallelism library for C++ - development files
 TBB is a library that helps you leverage multi-core processor
 performance without having to be a threading expert. It represents a
 higher-level, task-based parallelism that abstracts platform details
 and threading mechanism for performance and scalability.
 .
 (Note: if you are a user of the i386 architecture, i.e., 32-bit Intel
 or compatible hardware, this package only supports Pentium4-compatible
 and higher processors.)
 .
 This package includes the TBB headers, libs and pkg-config
EOF

cd ${TBB_DIR}/libtbb-dev_${TBB_VERSION}_armhf/usr/local/lib
cp ${TBB_DIR}/tbb*/build/*_release/libtbb.so.2 .
ln -s libtbb.so.2 libtbb.so

cd ${TBB_DIR}/tbb*/include
cp -r serial tbb ${TBB_DIR}/libtbb-dev_${TBB_VERSION}_armhf/usr/local/include

cd ${TBB_DIR}/libtbb-dev_${TBB_VERSION}_armhf/usr/local/lib/pkgconfig
cat > tbb.pc << EOF
# Manually added pkg-config file for tbb - START
prefix=/usr/local
exec_prefix=\${prefix}
libdir=\${exec_prefix}/lib
includedir=\${prefix}/include
Name: tbb
Description: thread building block
Version: ${TBB_VERSION}
Cflags: -I\${includedir} -DTBB_USE_GCC_BUILTINS=1 -D__TBB_64BIT_ATOMICS=0
Libs: -L\${libdir} -ltbb
# Manually added pkg-config file for tbb - END
EOF

cd ${TBB_DIR}
sudo chown -R root:staff libtbb-dev_${TBB_VERSION}_armhf
sudo dpkg-deb --build libtbb-dev_${TBB_VERSION}_armhf

sudo dpkg -i ${TBB_DIR}/libtbb-dev_${TBB_VERSION}_armhf.deb
sudo ldconfig

are the paragraphs chunks of code i just copy and paste or am i meant to do this one line at a time? This is very confusing for someone whose not well versed on coding as i cannot see any clear indication of enter breaks

As several people have now told you, you should be using modern versions. If your employer wants ancient stuff, you should advice them to go with what's supported instead of what's completely unsupported for years now - they can't want to build up their stack on ancient unsupported software.

And you should especially do this because it seems like frankly you are completely out of your element with trying to get said ancient and unsupported stuff to work. We are a helpful bunch here, but this here starts to look like you are asking us to do your job for you and that frankly is not what an open source project and/or its support forums are about.

2 Likes

First of all I say my employer but really he’s more a benefactor that can get me a potential job. I’ve exhausted my means of conventional resources so I am seeking to follow the advice previously posted to install the recommended add ons. Im frankly confused at your comment. This is an open source forum for getting assistance when you hit a wall when using this specific program which is exactly what I’m doing and I’m very close to achieving my goal thanks to help from b-Morgan and weazle which I am more than grateful for as I never would’ve achieved this alone. I have minimum hurdles left to jump the big one being I am unsure how to break up the aforementioned code to correctly set up the TBB library on rasbarian 8.3 necessary for building the current version of slic3r. The github installation guides are all out of date and contain coding for files that either clash or no longer exist within the repository which is incredibly confusing and frustrating for someone new to the program hence why I have reached out for assistance which I have gotten.
As I’ve previously stated I’m aware that for high quality and detailed printing it is better to run the modern cura app on windows or whatever pc os you run and install the octopi on that however the goal of this project is to create an all in one terminal. Not a terminal that can only read gcode, one that does everything so that a student or an untrained teacher/substitute can use an easy gui to complete their task

Where do these .stl files come from?

I would propose an alternate solution to your employer...

Instead of sending .stl files to OctoPrint, use slicers that have a direct to OctoPrint option. There are many to choose from (PrusaSlicer, Ultimaker Cura) including web based slicers like Kiri:Moto.

I believe this can satisfy your employer's desire in a more supportable way.

Sometimes it can be hard to create the desired solution, and goals have to be changed down the road.

Gina's point was that if you are being paid to do this work, and you are then just offloading part of that on to the community (for free), that is not correct.

The reason that everything is outdated is because not many people want to do things this way anymore - there's a reason it's called 'Cura Legacy'. It shouldn't be used for a new setup. Regardless of what your employer would like, I would say you should recommend to them an alternative way to solve the problem, so that you don't have to run ancient software for them.

I also don't see where building the slicer manually comes in - above were posted several ways to get the slicers using sudo apt install. Have you tried that?

3 Likes

It’s says quite clearly in the install guide if you are running a younger version than 10 you’ll have to build the library yourself. Seeing as octopi uses raspberry 8.3 that’s the set of instructions I followed. Was I not supposed to do that?

And as I explained 3 TIMES NOW. This project is for my own ambition. I AM GETTING PAID NOTHING. I’m trying to get a job in an environment that will allow me to grow and nurture my inventive side and this is my way in. I’ve been given that same piece of advice 7 times in this thread. If you don’t have a direct comment of assistance towards the published project kindly remove yourself from the chat. I’ve been working on this for months and have only just managed to get assistance with this.

At this moment, the plugin will be installed, but Slic3r must be downloaded and configured, which can be done following these steps: How to install Slic3r on RPi · OctoPrint/OctoPrint-Slic3r Wiki · GitHub

Was this step unnecessary because we did the desktop thing or was it something else that I’m not understanding?

I don't know what 'raspberry 8.3' is referring to, but OctoPi 0.18 is based Raspberry Pi OS, which is based on Debian 10 (Buster).

So the first line of this guide you linked of 'How to install Slic3r on RPi' says the same thing that @b-morgan did earlier:

On Raspbian 10 Buster, slic3r and slic3r-prusa are available in the apt repository and do not need to be built on the Pi.

No need to build it, just follow the instructions in the post here:

OH I was looking at the raspbian version which said 8.3.2 (could be wrong about the 3rd number) using gcc —version. So it should all be ready to go just following the install guide without that step? Also how do I check the debian version using the terminal if you don’t mind me asking?
Edit: I have successfully installed the base slic3r program on the desktop already aswell as run it and create a printer profile

As we have said multiple times... Nothing needs to be compiled so what version of gcc you have is irrelevant. What version of Debian is mostly irrelevant as well but if you must know, type:
cat /etc/os-release
in a terminal window.

1 Like

Apologies I’m still wrapping my head around the exact functions of certain files and such. So just to be clear:
The gcc —versions functions I put in showed me the current version of raspbian gcc files available. Which is not what I wanted because gcc files act as compilers for plugins that are not prebuilt to the package?
And also yeah me looking at that is probably what screwed me I’ve been doing all this under the assumption I’ve been on a pre Debian 10 system which over complicated things, my apologies.