OctoPrint 설치
너그러운 와이프께서 책상을 하나 더 사줘서, 그 동안 작은 탁자에 올려두었던 3D 프린터를 책상에 두고 쓸 수 있게 되었다.
그 동안엔 gcode 파일을 sd 카드로 복사해서 프린트를 하곤 했는데, 찾아보니 CR-10에 들어간 SD카드 포트의 내구성이 그리 좋지 않아 금새 망가진다는 글을 보았다.
그래서 다른 사람들은 어떻게 하나... 싶어서 찾아봤더니 Octoprint라는 것을 이용해서 출력을 한다고 한다.
OctoPrint는 USB로 연결된 프린터에 gcode 데이터를 웹으로 전송받아 출력할 수 있는 기능을 하는 서버이다.
8. 3D 프린터를 켜고, 접속을 시도해본다. 접속은 아래 그림을 참고하자!
여기서 Serial Port는 서버에서 연결된 주소에 따라 다를 수 있다. 나의 경우에는 저 콤보박스를 누르니까 ttyUSB0가 잡혀있었다. Baudrate는 프린터가 지원하는 것으로 설정하자. CR-10의 경우 115200이다. 설정을 하고 나면 Connect를 누른다.
만일 여기서 빨간색 창이 나타나면서 오류가 뜨면 여기를 확인해보자.
나의 경우에는 "Permission denied: '/dev/ttyUSB0'" 이런 오류가 떴는데 아래와 같이 해결했다.
9. 이제 OctoPrint를 재부팅할 때 마다 자동으로 실행하는 설정을 하자. 라즈베리파이에서 자동실행을 하려면 여기를 참고하면 좋다. 나는 rc.local을 수정하는 방식을 사용했다.
2017-09-09 추가
OctoPrint의 플러그인을 설치하려고 할 때 아래와 같은 메시지가 떠서 설치를 못하고 있었다.
pip 커맨드는 /var/octoprint/venv/bin에 설치가 되어 있었는데, 이 디렉토리의 권한이 root로 되어 있었다. 아마도 설치할 때 sudo가 귀찮아서 루트로 설치했었나보다.
그래서 아에 /var/octoprint의 모든 파일을 pi 계정 소유로 옮겼더니 해결되었다.
pi:shared는 소유자는 pi, 소유그룹은 shared로 한다란 의미다. shared란 그룹은 내가 만든거니, 각자에 맞게 변경하면 된다. 그룹을 변경하지 않으려면 :shared 부분을 입력하지 않으면 된다.
/var/octoprint는 octoprint 소스를 풀어놓은 위치다.
그 동안엔 gcode 파일을 sd 카드로 복사해서 프린트를 하곤 했는데, 찾아보니 CR-10에 들어간 SD카드 포트의 내구성이 그리 좋지 않아 금새 망가진다는 글을 보았다.
그래서 다른 사람들은 어떻게 하나... 싶어서 찾아봤더니 Octoprint라는 것을 이용해서 출력을 한다고 한다.
OctoPrint는 USB로 연결된 프린터에 gcode 데이터를 웹으로 전송받아 출력할 수 있는 기능을 하는 서버이다.
보통은 OctoPrint가 설치된 SD카드 이미지를 구워서 직접 설치하지만, 나에겐 프린터 전용으로 쓸 라즈베리파이가 없어서 기존의 라즈베리파이에 소스를 다운받아 설치하는 형태로 진행했다.
다음은 설치 방법이다.
1. Python을 설치한다. (1~3번 참고)
$ sudo apt-get install python-dev
2. pip를 설치한다.$ curl -O https://bootstrap.pypa.io/get-pip.py
$ sudo python get-pip.py
3. virtualenv를 설치한다.$ sudo pip install virtualenv
4. octoprint 소스를 다운받는다. (4번 이하 참고)$ mkdir octoprint
$ cd octoprint
$ git clone https://github.com/foosel/OctoPrint.git .
5. 소스를 설치하기 위해 소스폴더에 가상환경을 구성한다.$ virtualenv venv
6. 설치를 시작한다. ./venv/bin/python setup.py install
7. OctoPrint의 기본 설정을 한다. 다음 주소로 접속하면 된다.http://server_ip:5000/
8. 3D 프린터를 켜고, 접속을 시도해본다. 접속은 아래 그림을 참고하자!
여기서 Serial Port는 서버에서 연결된 주소에 따라 다를 수 있다. 나의 경우에는 저 콤보박스를 누르니까 ttyUSB0가 잡혀있었다. Baudrate는 프린터가 지원하는 것으로 설정하자. CR-10의 경우 115200이다. 설정을 하고 나면 Connect를 누른다.
만일 여기서 빨간색 창이 나타나면서 오류가 뜨면 여기를 확인해보자.
나의 경우에는 "Permission denied: '/dev/ttyUSB0'" 이런 오류가 떴는데 아래와 같이 해결했다.
$ sudo adduser pi dialout
$ sudo chmod a+rw /dev/ttyUSB0
여기서 빨간 부분은 자신의 계정과 포트에 맞게 쓰자. 이렇게 입력하고 재부팅 시키면 권한 문제는 해결된다. (참고)9. 이제 OctoPrint를 재부팅할 때 마다 자동으로 실행하는 설정을 하자. 라즈베리파이에서 자동실행을 하려면 여기를 참고하면 좋다. 나는 rc.local을 수정하는 방식을 사용했다.
$ sudo nano /etc/rc.local
위 명령을 입력하고 파일 제일 하단에 아래 그림과 같이 입력하고 저장한다. (참고)sudo -H -u pi bash -c '/var/octoprint/venv/bin/octoprint serve'
여기서 pi라는 계정으로 명령을 실행하는 이유는 octoprint가 root 권한으로는 서버가 실행되지 않기 때문이다. /var/octoprint 부분은 4번에서 소스를 다운받은 디렉토리를 지정하면 된다.2017-09-09 추가
OctoPrint의 플러그인을 설치하려고 할 때 아래와 같은 메시지가 떠서 설치를 못하고 있었다.
"The pip command could not be found or does not work correctly for this installation of OctoPrint"
그래서 아에 /var/octoprint의 모든 파일을 pi 계정 소유로 옮겼더니 해결되었다.
$ sudo chown -R pi:shared /u /var/octoprint
pi:shared는 소유자는 pi, 소유그룹은 shared로 한다란 의미다. shared란 그룹은 내가 만든거니, 각자에 맞게 변경하면 된다. 그룹을 변경하지 않으려면 :shared 부분을 입력하지 않으면 된다.
/var/octoprint는 octoprint 소스를 풀어놓은 위치다.
저도 권한 문제가 있어서 해결 못하고 있던 중에 이글을 읽고 덕분에 해결하였습니다. 감사드립니다.
답글삭제