2016年12月23日 星期五

nanodlp 的研究筆記(1)

Ref :  http://www.instructables.com/id/MUVe-3D-DLP/?ALLSTEPS

Ref :  https://drive.google.com/file/d/0B8xCOdl2soS-UDQ1ckE3SEZvVnM/view

 Ref :   http://2.bp.blogspot.com/_aaotUA171Ek/TAPDwEDsLsI/AAAAAAAAA7s/RRJ2WczYSao/s1600/dev.png


1.  直接燒錄官方的img

2.  download Raspbian Lite and wget source code and install it

  • Install Raspbian Lite on SD card. (Probably works with other Linux distributions too)
  • Run the below command on Raspberry Pi Terminal.
  • (wget http://www.nanodlp.com/nanodlp.tar.gz -O - | tar -C /home/pi -xz);cd /home/pi/printer;sudo ./setup.sh

Wire the HDMI to your projector HDMI, connect the USB from the RAMPS to the Raspberry Pi USB header.   ( 投影機用HDMI接,  RAMPS請用USB 線接)

type the IP address of the printer into your preferred web browser (後面會講到可以用gui的界面)

*SHUTTER NOTES* The shutter is normally attached to the RAMPS in our printer systems but we now have the added option of wiring a servo to the Raspberry Pi. Simply wire the servo to its own 5V power power supply, and run the signal pin of the servo to one of the free GPIO pins on the Pi. Then you can configure the nanoDLP software to use whatever pin you selected. We used GPIO 4/physical pin 7. If you have a low enough amperage servo and a high power Pi power supply, you can take power from pins 4 and 6, 5V and Ground

燒入韌體   https://github.com/mUVe3D/Marlin-mUVe1DLP-Running

點選下載...  打開  Marlin.ino   (如果沒有安裝arduino IDE , 請先下載)

如果要lcd panel enable 的話



然後我把  Baudrate 改成  115200 (250000 似乎有問題)



 #define MOTHERBOARD 33


Ref :  http://www.03dp.com/forum.php?mod=viewthread&tid=1826





在tools 那邊選擇  Mega 2560

按下 build 和upload  即可....


接下來去windows 的 網路

如果有弄成功就會看到   NanoDLP Generic Printer  ...滑鼠點進去..

注意看網址..  因為都是在自己的網段裡面..  所以瀏覽器出現的ip應該是  192.168.1.X


也可以使用  http://www.advanced-ip-scanner.com/cn/  這個軟體來scan 你的網段裡面rpi 有沒有ip

Machine Setup

首先先來確定  rpi 和    ramps1.4 的protocol  

先使用  putty  連線到   rpi...


login : pi

pass :  raspberry

登入後,,    type      "ls /dev/tty*"


port 變成  ttyACM1

G code 的詳細解釋  http://reprap.org/wiki/G-code

再回到   web browser

這裡根據你剛剛查詢到的結果,  改變後,直接按下Enter 即可

接下來切換到  Terminal


代表rpi  和 ramps 控制板溝通ok.


接下來看arduino 控制板


  • Arduino Mega2560 主控板(该套件包含):这是3d打印机的大脑,负责控制整个打印机来完成特定的动作,如打印特定的文件等;
  • RAMPS1.4 (该套件包含):这是上面主控板的拓展板,有它是为了更好的与其它硬件进行连接和控制的,起到过渡桥梁的作用;
  • A4988步进电机驱动板(该套件包含):这是用来连接步进电机的,从而实现主控板对步进电机的控制,实现XYZ及挤出机的动作;


虽然没有连接加热头和热床,但可以进行简单测试,首先连接12V电源,然后设置加热床和加热头的温度分别为230和110度,此时板子上有两个红色LED会相继点亮,这说明这部分电路正常,关掉即可。然后再右下角输入命令:M106 S255点发送,来打开风扇控制,此时另一盏红色LED会点亮,输入:M107点发送可以关掉。





MKS  V1.4  控制板....

目前DLP只會用到Z 軸..  所以只需要插  Zstepper


This section will show you how to get firmware into your controller and run it with basic settings.
Software required: FTDI USB drivers, Arduino IDE, Choice of firmware ( Marlin or Repetier or Sprinter ), Pronterface
1. USB VCP Drivers - MKS Gen uses the newer FT232 USB to UART chip and it needs the updated VCP(virtual com port) drivers from the
manufacturer's website . Download the correct version for your operating system or you can get the executable version for Windows(easier).
Windows Vista/7 may try to do an update to locate the proper drivers but it is recommended to install the FTDI drivers for better performance.
The VCP drivers will install a COM Port on your computer for the MKS Gen, you can check what port number was assigned by going to your device manager and click on Ports(COM & LPT) look for something that says "USB Serial Port(COM3)" where COM3 is you assigned port number(will vary from PC to PC). Remember this number as you will be using it later in configuring other software.

2. Install Arduino IDE - Download and extract the Arduino IDE .

3. Get your firmware - While you can use most firmwares out there, we will use Marlin as an example. Download and extract Marlin or any other forks of the firmware that you prefer/need.
4. Upload firmware - Run the Arduino IDE (arduino.exe).
Select your board - Click on Tools -->Board -->Arduino Mega 2560,
Select your serial port - Click on Tools-->Serial Port-->(select your COM port for the X3 USB, you can check this in Device manager)
On Arduino click File-->Open -- then point to your Marlin Download and select Marlin.pde. With Marlin loaded on the IDE window, click on the tab that says "configuration.h". These are the basic entries that you need to change to get the X3 working.
#define BAUDRATE 250000 //This will work fine for the MKS Gen
#define MOTHERBOARD 33 //33 is for RAMPS which the MKS GEN is compatible with MOTHERBOARD 34 
#define TEMP_SENSOR_0 3 //If you have the NTC 100K  
#define TEMP_SENSOR_1 0 
#define TEMP_SENSOR_2 0 
#define TEMP_SENSOR_BED 3 //If you have the NTC 100K  
These entries are the only ones you need just to get the MKS Gen running. Once you get it to upload you can now test most features of the board. You will need to tweak the settings on the configuration file for your printer.
5. Upload(or compile to test) Marlin - While still on the Arduino window
Click on the Triangle inside the circle to do a test compile, this makes sure that the firmware does not contain errors( you can skip this)
Click on the arrow pointing to the right inside a square frame to upload firmware to the board. If everything goes well you'll see a "Done Uploading" message near the bottom of the Arduino window.



LCD Type

Marlin includes support for several controllers. The two most popular controllers supported by Marlin are:
  • REPRAP_DISCOUNT_SMART_CONTROLLER A 20 x 4 character-based LCD controller with click-wheel.
  • REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER A monochrome 128 x 64 pixel-based LCD controller with click-wheel.
See Configuration.h for the full list of supported controllers.




//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG

#define X_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MIN_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
#define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.