:::: MENU ::::
Browsing posts in: 3D Printer

CP2104 레퍼런스 회로도

CP2014는 USB to UART bridge 칩이며, 데이터 시트에 보면 다음과 같은 레퍼런스 회로가 있다. REGIN 핀은 레귤레이터 입력핀인데, 이 회로도에서는 여기에 VBUS핀과 같이 연결을 해 놓고 있다. CP2104의 TX, RX가 시스템의 MCU의 RX, TX와 연결이 되어 있는 경우에는  일반적으로는 USB 케이블을 연결하는 순간 VBUS와 REGIN에 전압이 가해지면서CP2104의 TX값이 low로 되면서 시스템 MCU의  RX값이 바뀌게 된다. 따라서 시리얼 입력을  처리하는 루틴이 제대로 동작을 하지 않을 수 있다. 해결책은 REGIN의 입력을 VBUS가 아닌 시스템 전원으로 바꾸면 해결이 된다.


하드웨어 스타트업에서 제품 개발시 유의 사항

몇년전 킥스타터에서 펀딩에 성공한 프로젝트인 TIKO 3D프린터가 회사를 닫는다고 공지를 했다. 제품은 겨우 4천대 정도 미주지역에 배송을 했고, 전세계에 배송할 수만대분을 포기한 상태이다. 기술적인 혁신을 통해 비용을 줄여서 매우 값싼 3D 프린터를 개발한다고 되어 있었는데, 내용을 보니 기술적으로 해결하지 못한 부분도 있고, 프로토타입이 검증이 되기 전에 펀딩금액으로 이미 부품들을 주문해 버리기도 했으니, 어쩌면 당연한 결과이다.

하드웨어 스타트업에서 제품 개발시 유의 사항

고객군을 세분화하라.

Look for a sub-group of users in your target market and focus on them

제품의 기능을 설명하는 대신 혜택을 이야기 하라.

Most users care about what a product does, not how a product does it.

제품의 한가지 기능에 집중하라.

Focus on finding the single reason a customer would use this product and extend a limited feature set out of this single reason.

최종 제품전 작은 수의 시생산으로 제대로 동작하는 제품을 만들라.

The best hardware startups iterate early and often by making multiple runs of small numbers of units as they hone in on the right product.

참고자료: Hardware startups should lower user expectations


Makerbot, Prusa 그리고 3D 프린팅 시장

최근 메이커봇이 인원을 30% 감원한다는 기사

여기서 Makerbot과 Prusa의 현재 상황과 3D 프린팅 시장을 알 수 있다.

consumers are incapable of 3D design, fixing wonky machines and desire 3D models that aren’t easily found

  • 고객들이 아직은 3D 디자인을 할 수 없고
  • 기기에 문제가 생길 경우 해결이 안되며
  • 원하는 3D 모델을 찾기 여러움

그래서 시장은 아직 일반인 대상이 아니라 DIY community인데, 이쪽을 포커싱하고 있는 Prusa의 경우 90명 정도의 스텝이 월 3천대 이상을 판매한다고 함.


Ultimaker 3 내부 구성

Meet the new Ultimaker 3

Ultimaker 3의 특징 – Ultimaker 3 Spec.

  • 듀얼 노즐:서포트를 쉽게 제거하기 위해 물에 녹는 재질의 필라멘트 사용가능
  • 쉽게 교체 가능한 노즐
  • 향상된 쿨링 시스템
  • 상태를 나타내는 LED
  • Wi-Fi & USB stick 지원: Wi-Fi는 Local에서만 지원된다.
  • 카메라 지원
  • Active bed leveling

Ultimaker 3 내부 구성

A20 LIME2 Linux보드 & ATmega 보드

위 블럭다이어그램에서 보듯이기존 UM2의 경우에는 메인보드에 ATmega2560칩이 있었으나, UM3는 Connectivity를 추가하기 위해 A20 LIME2 Linux보드가 메인이 되고, 기존의 Atmega보드는 실시간 처리가 필요한 모터제어에만 사용이 되었다. 이 보드에 카메라 및 WiFI, Ethernet, USB Host, NFC 리더가 있는데, NFC리더는 필라멘트에 붙어 있는 NFC 테그를 태깅하기 위해 사용이 된다. WiFi의 경우 USB to WiFI 동글이 사용되는데, 앱을 확인해 보니 Local network에서만 사용이 된다.

프린터 헤드 보드

레벨링을 위한 센서 /  쿨링팬 / LED 제어 / 노즐의 온도 컨트롤 및 사용시간 체크를 위한 EEPROM이 있다.

네트웍을 통한 원격제어

REST API를 사용해서 원격 제어가 가능하다. 즉 http://10.180.1.209/api/v1/system/hostname 이런 형태로.. 관련 내용은 https://ultimaker.com/en/community/23283-inside-the-ultimaker-3-day-2-remote-access-part-1 에서 확인할 수 있다.

참고자료


S3G protocol

  • S3G는 “Sanguino3 Gcode”의 줄임말로 3D 프린터를 제어하는 언어임.
  • 파일의 경우 .s3g를 사용하는데 MakerBot에서 이것을 차용하여 .x3g로 사용함.
  • 초기에 8비트 AVR의 성능때문에 사용함.
  • MakerBot의 경우 s3g, x3g파일을 처리할 수 있고, gcode를 이것으로 변환하는 translator를 내장하고 있음.
  • OctoPrint의 경우 GPX라는 플러그인이 있고,  GpxUI라는 GUI wrapper도 있다.
  • 관련 소스는 https://github.com/markwal/GPX

S3G protocol

구성 및 통신

2가지 네트워크로 구성이 된다.

  • Host network: PC와 보드로 기본적으로 시리얼이다. 115200 or 38400 bps
  • Tool network: 보드와 툴사이로 RS485 사용

에러 방지를 위해 매 패킷의 마지막에 CRC를 사용


3D 프린터 슬라이싱 툴

Software User Price OS
3DPrinterOS Beginners, Advanced Users Freemium Browser, Windows, Mac
Astroprint Beginners, Advanced Users Freemium Browser, Raspberry Pi, pcDuino
Craftware Beginners, Advanced Users Free Windows, Mac
Cura Beginners, Advanced Users Free Windows, Mac, Linux
IceSL Advanced Users Free Windows, Linux
KISSlicer Beginners, Advanced Users Free/$35 Windows, Mac, Linux, Raspberry Pie
MakerBot Print Beginners Free Windows, Mac
MatterControl Beginners, Advanced Users Free Windows, Mac, Linux
Netfabb Basic Intermediate Users, Advanced Users Free Windows, Mac, Linux
OctoPrint Intermediate Users, Advanced Users Free Raspberry Pi, Windows, Mac Linux
Repetier Intermediate Users, Advanced Users Free Windows, Mac Linux
Simplify3D Beginers, Advanced Users $150 Windows, Mac
Slic3r Advanced Users, Professional Users Free Windows, Mac Linux
SliceCrafter Advanced Users Free Browser
Tinkerine Suite Beginners Free Windows, Mac
Z-Suite Beginners Free Windows, Mac

필라멘트 들뜸을 방지하려면

3D 프린팅을 하면서 일반적으로 모델의 사이즈가 큰 경우 모델의 바닥부터 필라멘트가 수축을 하면서 들뜨게 된다.

이런 현상을 방지하기 위해서는

  • 히트베드 사용
  • Raft / Brim 사용
  • 레벨링을 잘 맞추기
  • 캡톤필름/Buildtak sheet 등을 사용
  • 출력속도 낮추기
  • Infill을 줄이기

그리고 이 글(HOW TO STOP FILAMENT WARPING IN 3D PRINTED PARTS)에서는 Brim을 넣을 때 lily pads를 넣는 것을 설명하고 있는데 좋은 아이디어 인듯.

ABS의 경우 참고자료

  • Heat bed에 Kapton필름, 딱풀, ABS Juice등을 사용
  • 첫번째 레이어에서 팬 컨트롤

 


Meshlab 빌드

Meshlab은 3D프린팅에 필요한 파일의 메쉬를 수정할 수 있는 툴로 오픈소스이며, 3가지 OS를 지원한다. 그리고 웹에서 구현한 버전도 있다.

이 소스를 빌드하려면 다음과 같은 3가지 소스가 필요하다.
* 필요한 소스들 3가지

* VS(Visual Studio)로 컴파일하기
1. QT 컴파일
(1) QT소스의 압축을 풀고, VS(Visual Studio) Command prompt를 실행하여 해서 다음과 같이 설정을 한다.
(2) 만약 VS가 여러 버전이 설치되어 있다면,

set QMAKESPEC=win32-msvc2008

를 입력하여 컴파일러 버전을 설정해야 함. 만약 VS가 2008만 설치되어 있다면 이 과정은 생략해도 됨
(3) 다음과 같은 절차로 QT를 컴파일

configure -debug-and-release
qmake 컴파일 및 실행. <= VS에 대한 makefile을 생성하는 과정
nmake

를 입력하여 QT 전체를 다시 컴파일

2. MeshLab 컴파일
(1) VS prompt 상에서 다음과 같이 입력하여 환경변수를 잡아 줌

set QTDIR=C:\Qt\4.6.3
set PATH=C:\Qt\4.6.3\bin
set VCPATH=C:\Program Files\Microsoft Visual Studio 9.0\VC\bin
set PATH=%PATH%;%VCPATH%;%SystemRoot%\System32
set QMAKESPEC=win32-msvc2008

(2) VCG라이브러리의 경로 설정
VCG Library의 경로를 meshlab 소스와 같은 레벨에 둔다.
(3) meshLab의 external 부분 컴파일
meshLab의 src\external 로 이동하여 다음과 같이 입력하여 솔루션 파일을 만든다.

qmake -tp vc -recursive external.pro

external.sln 파일이 생성된다. 이 파일을 VS로 열어서 솔루션을 다시 빌드한다.

(4) meshLab 소스 컴파일
meshlab의 src 로 이동하여 다음과 같이 입력하여 솔루션 파일 생성

qmake -tp vc -recursive meshlabv12.pro

meshlabv12.sln 파일이 생성됨.

이것을 VS로 열어서 빌드한다. (솔루션 속성에서 시작 프로젝트를 meshlab프로젝트로 설정한다.)
* io_3ds가 link 에러가 발생하면 제거.
(5) meshLab의 src\distrib로 이동하면 빌드된 파일 meshlab.exe을 확인한다.
이 파일을 실행시 에러가 나면 QT\Bin 에서 dll 파일을 동일 폴더에 복사해서 실행한다.

* 트러블 슈팅
아래와 같은 에러가 나면 바이러스 체크프로그램을 끄고 다시 작업.
general error c101008d: Failed to write the updated manifest to the resource of file… Access is denied.

참고: http://blog.csdn.net/zyjiang0571/article/details/7340650



Slic3r 빌드 하기

3D 프린팅을 위한 슬라이서 프로그램인 Slic3r는 오픈소스로 github에 코드가 공개되어 있다. 물론 각 OS에 맞는 실행파일을 다운로드해서 사용이 가능하지만 github에 공개된 코드를 빌드해서 사용이 가능하다. Windows, Mac, Linux 등 3가지 OS에서 빌드가 가능하며, Mac OS X에서 빌드하는 방법은 https://github.com/alexrj/Slic3r/wiki/Running-Slic3r-from-git-on-OS-X에 정리되어 있다.

Slic3r는 C++ 과 Perl로 작성이 되어 있다.

The core geometric algorithms and data structures are written in C++, and Perl is used for high-level flow abstraction, GUI and testing.

그리고 다음과 같은 기능이 있다.

Key features are:

  • multi-platform (Linux/Mac/Win) and packaged as standalone-app with no dependencies required
  • complete command-line interface to use it with no GUI
  • multi-material (multiple extruders) object printing
  • multiple G-code flavors supported (RepRap, Makerbot, Mach3, Machinekit etc.)
  • ability to plate multiple objects having distinct print settings
  • multithread processing
  • STL auto-repair (tolerance for broken models)
  • wide automated unit testing

Other major features are:

  • combine infill every ‘n’ perimeters layer to speed up printing
  • 3D preview (including multi-material files)
  • multiple layer heights in a single print
  • spiral vase mode for bumpless vases
  • fine-grained configuration of speed, acceleration, extrusion width
  • several infill patterns including honeycomb, spirals, Hilbert curves
  • support material, raft, brim, skirt
  • standby temperature and automatic wiping for multi-extruder printing
  • customizable G-code macros and output filename with variable placeholders
  • support for post-processing scripts
  • cooling logic controlling fan speed and dynamic print speed

이중 auto-repair기능에 대한 설명은 메뉴얼에 나와있는데, 홀이 있거나 앞뒤가 뒤바뀐 경우 자동으로 repair한다. 이 기능을 off하는 방법은 없다. 이외 추가적으로 Netfabb이나 FreeCAD도 추천을 하고 있다.

If the 3D mesh described in the model contains holes, or edges are misaligned (known as being non-manifold), then Slic3r may have problems working on it.