作者: benz 時間: 2016-6-9 21:30 標題: ESP8266 3D printer server
https://github.com/luc-github/ESP3D
初頭諗住搵到好野, 以為佢可以upload完之後可以print出黎,
點知用左幾日時間整好之後, 先知無得print upload左d file(可能我唔識用),
無問題用左兩日時間加左print功能, 而家可以好似Wifi SD咁upload完print出黎,
有興趣嘅朋友可以試下
好處:
1. 夠平, 用十幾人仔可以做到print server功能
2. 無線Wifi
3. Upload完print出黎, 唔洗電腦
唔好處:
1. 因為ESP8266而家最多只可以用到4MB Flash(希望以後可以用到8M或16M),
1MB比程式用, 所以有3MB用, 但實際只有2.8MB可以用(不過都夠用),
有八九成file都唔會過2.8MB
2. 速度應該無Wifi SD咁快(無Wifi SD試), upload 2.51MB file 要1分21秒,
但已經好過用serial upload去SD好好多(要13分鐘)
基本要求:
1. ESP8266-01 (只有512K, 已經唔support) 或 ESP8266-12 (4MB)
(因為手上無ESP8266-12, 只有ESP8266-01同8M Flash,
所以自己改用winbond 25Q64FVSIG, 但係只用到4MB)
2. USB to Serial TTL (upload firmware)
3. Arduino 1.6.8 (完本已安裝1.6.5, 但唔成功)
4. ESP8266 core (要用git clone download, 如果唔係有D file無左, compile唔到)
5. ESP3D
詳細點做可以去睇 https://github.com/luc-github/ESP3D/wiki/Install-Instructions
只係改左兩個files webinterface.cpp & settings.tpl (under data folder)
compile 同upload data 之前 copy & replace就ok
https://h0.hkepc.com/forum/attachment.php?aid=1896267&k=53ed0042bd63652238cd3dcd09c5ede4&t=1781451548&sid=nL2r9fjd0L

https://h0.hkepc.com/forum/attachment.php?aid=1896268&k=b6b0241cbad951557d6492a560fa9c37&t=1781451548&sid=nL2r9fjd0L

作者: benz 時間: 2016-6-9 21:33
upload 唔到兩個 files, 有無人可以教下我點upload, 因為只可以upload jpg gif png
作者: fred2088 時間: 2016-6-11 01:19
回覆 2# benz
ESP8266-01 要改做4M ?
作者: ma_hty 時間: 2016-6-11 07:00
本帖最後由 ma_hty 於 2016-6-11 07:03 編輯
回覆 1# benz
> 2. 速度應該無Wifi SD咁快(無Wifi SD試), upload 2.51MB file 要1分21秒,
但已經好過用serial upload去SD好好多(要13分鐘)
Wifi upload to SD card 哪會這麼慢? 就算是 Serial upload to SD card, 是慢一點了, 也不至於慢到 13分鐘 2.5MB. 簡陋到 用 Marlin+Pronterface upload 2.5MB to SD card via serial 也不過只是約 4分鐘.
要這麼慢, 想必是你的 SD card 讀寫程序犯了些低級錯誤了.
作者: palpatrick 時間: 2016-6-11 10:05
我覺得個project好正!
多謝師兄分享!
作者: benz 時間: 2016-6-11 10:29
回覆 3# fred2088
不是, 只要現成的ESP8266-12(4MB)就可以, 佢要求係最小1MB (舊的512KB都可以)
我沒有ESP8266-12(4MB), 只有ESP8266-01(512KB), 所以先自己改
作者: benz 時間: 2016-6-11 10:36
回覆 4# ma_hty
我講得唔清楚, 我係講upload 到 ESP8266 的速度是1分21秒(2.5MB file),
不是upload 到 wifi SD的速度, 因為我沒有wifi SD 測試
我都係用Marlin+Pronterface upload的, 可能config set錯
作者: benz 時間: 2016-6-11 10:38
作者: benz 時間: 2016-6-11 10:55
回覆 2# benz
試改名upload兩個files, 但都唔成功
(試將settings.tpl 改做 settings.jpg , webinterface.cpp 改做 webinterface.jpg)
作者: ma_hty 時間: 2016-6-11 10:57
本帖最後由 ma_hty 於 2016-6-11 11:11 編輯
回覆 ma_hty
我講得唔清楚, 我係講upload 到 ESP8266 的速度是1分21秒(2.5MB file),
不是upload 到 wif ...
benz 發表於 2016-6-11 10:36
我前面所說的 wifi upload to SD , 也不是指 WIFI SD. 我沒有記錯的話, WIFI SD 好像只能下載, 不能上載, 而且它的效能認真麻麻地, WIFI SD 大可不必考慮.
至於... 經 wifi upload 檔案到 SD 的合理速度大概多少呢... 找一隻 android 手機, 安一隻沒犯低級錯誤的 file explorer (ES檔案瀏覽器 是個好選擇), 然後經 wifi 由電腦上載一個 2.5MB檔案到手機. 所需時間的三份之一呢 就差不多是合理需時. (
作者: benz 時間: 2016-6-11 11:16
回覆 10# ma_hty
我再講得清楚d, 係由電腦browser upload 到 ESP8266 print server然後save到ESP8266的Flash,
我諗一粒ESP8266的CPU power 和 Flash的write speed, 唔會快得過電腦和手機吧
作者: ma_hty 時間: 2016-6-11 11:30
本帖最後由 ma_hty 於 2016-6-11 15:31 編輯
回覆 ma_hty
我再講得清楚d, 係由電腦browser upload 到 ESP8266 print server然後save到ESP8266的Flash ...
benz 發表於 2016-6-11 11:16
(... 雖然有點反常, 但 "平o野 有時也會有好o野喎"...)
作者: benz 時間: 2016-6-11 11:44
回覆 12# ma_hty
程式唔係我寫的(我都無咁叻), 只係加左print功能,
不過我都覺得已經好好, 無線加無腦打印
作者: fred2088 時間: 2016-6-11 13:44
回覆 13# benz
可以Share 嗎 ?
作者: benz 時間: 2016-6-11 15:11
回覆 14# fred2088
可以, 但係我upload唔到
想問下係唔係hkepc唔比upload其它file (只可以jpg gif png) ?
作者: fred2088 時間: 2016-6-11 15:26
回覆 15# benz
可上傳 Google Drive, Share 條 Link 出來 !
作者: benz 時間: 2016-6-11 15:46
本帖最後由 benz 於 2016-6-13 00:09 編輯
回覆 16# fred2088
https://drive.google.com/open?id=0B9NCNLWNpqpaSW1RZW50TmNzdWs
作者: benz 時間: 2016-6-11 16:14
用法:
要upload .g 尾的file到print server(file name唔可以長過大約24字元,
實際長度唔記得, 係SPIFF限際), 就會見到Print button
提提各位, 個print功能係直出(read file from flash)直入(write file to com port),
如果等唔到Marlin ok回覆係會loop 死的, loop死可以按reset
重有係印緊時, print server係會無返應, 直至印完為止
試印過幾次都無問题, enjoy!!!
作者: fred2088 時間: 2016-6-12 20:47
本帖最後由 fred2088 於 2016-6-12 21:04 編輯
回覆 18# benz
-------------------- ESP8266 Info from ESPlorer
2nd boot version : 1.4(b1)
SPI Speed : 40MHz
SPI Mode : QIO
SPI Flash Size & Map: 8Mbit(512KB+512KB)
jump to run user1 @ 1000
------------------------------------ Upload Error
草稿碼使用了 325,185 bytes (65%) 的程式儲存空間。上限為 499,696 bytes。
全域變數使用了 38,808 bytes (47%) 的動態記憶體,剩餘 43,112 bytes 給區域變數。上限為 81,920 bytes 。
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
error: failed reading byte
----------------------------------------------
changed to use ---->>> ESP8266 Sketch Data Upload
[SPIFFS] upload : C:\Users\User\AppData\Local\Temp\build02c639358e331ceafc988bcc44c2ee96.spiffs/esp8266.spiffs.bin
[SPIFFS] address: 0x7B000
[SPIFFS] reset : ck
[SPIFFS] port : COM18
[SPIFFS] speed : 115200
error: failed reading byte
warning: espcomm_send_command: cant receive slip payload data
error: failed reading byte
https://h0.hkepc.com/forum/attachment.php?aid=1897026&k=a2f09ca197d19a3f3583d59f5594f67d&t=1781451548&sid=nL2r9fjd0L

作者: benz 時間: 2016-6-12 21:29
本帖最後由 benz 於 2016-6-12 21:46 編輯
回覆 19# fred2088
1. GPIO0 正常係pull up, 要upload時要 pull down先可以upload到
2. 當見到arduino upload 個時, 要手動按reset button 一下
3. USB serial TTL TX 去 ESP8266 RX (要1K和2K電阻做分壓)
USB serail TTL RX 去ESP8266 TX
4. 要3.3V 的(不是5V), https://github.com/luc-github/ESP3D 有電路圖可參巧
作者: benz 時間: 2016-6-12 21:30
本帖最後由 benz 於 2016-6-12 22:29 編輯
1. upload 錯左 ESP8266-0.6.2.zip file (舊的delete左)
請重申download ESP8266-0.6.2new.zip (用左新名)
https://drive.google.com/open?id=0B9NCNLWNpqpaSW1RZW50TmNzdWs
2. 用ESP8266 print server印細件野無問題, 今日印大件野(要個幾鐘的),
印左三次都唔得, 試過改baud rate, 無sleep mode 都唔得,
一次就黎印完就出錯, 兩次印到中間就出錯, 唔知點解
作者: ma_hty 時間: 2016-6-12 21:54
回覆 21# benz
> 2. 用ESP8266 print server印細件野無問題, 今日印大件野(要個幾鐘的),
印左三次都唔得, 試過改baud rate, 無sleep mode 都唔得,
一次就黎印完就出錯, 兩次印到中間就出錯, 唔知點解
Serial communication 是十分容易被其他信號干擾的溝通方式, 你... 會不會是用了一條長長的電線去做 ESP8266 和 Arduino 的 serial 連結?
作者: fred2088 時間: 2016-6-12 21:58
回覆 20# benz
GPIO0 Short to GND when power on esp8266 with USB connector
作者: benz 時間: 2016-6-12 22:02
回覆 22# ma_hty
用左一條18cm長的電線(應該唔會太長吧)
作者: benz 時間: 2016-6-12 22:03
回覆 23# fred2088
作者: fred2088 時間: 2016-6-12 22:08
本帖最後由 fred2088 於 2016-6-13 11:06 編輯
回覆 25# benz
是不是 這 Default Settings ?
//default values
#define DEFAULT_WIFI_MODE AP_MODE // CLIENTN_MODE
const char DEFAULT_SSID[] PROGMEM = "BL-LINK1";
const char DEFAULT_PASSWORD[] PROGMEM = "***************";
#define DEFAULT_IP_MODE STATIC_IP_MODE
const byte DEFAULT_IP_VALUE[] = {192, 168, 0, 1};
const byte DEFAULT_MASK_VALUE[] = {255, 255, 255, 0};
#define DEFAULT_GATEWAY_VALUE DEFAULT_IP_VALUE
const long DEFAULT_BAUD_RATE = 115200; // 9600;
Connected 到了
https://h0.hkepc.com/forum/attachment.php?aid=1897044&k=5b0e839206854597aece9db45e03b3e9&t=1781451548&sid=nL2r9fjd0L

作者: benz 時間: 2016-6-12 22:20
本帖最後由 benz 於 2016-6-12 22:22 編輯
回覆 26# fred2088
這是我的default setting, 你可以改config.h的, 然後compile一次就得
作者: fred2088 時間: 2016-6-12 22:22
本帖最後由 fred2088 於 2016-6-12 22:32 編輯
回覆 27# benz
Thanks
可以試吓用在 TinyOLED 上的 ESP8266 ...
但想問 Wifi Upload 是去 Free Memory : 27608 bytes (26M) ?
https://h0.hkepc.com/forum/attachment.php?aid=1897048&k=715a50a459e0a86b39ede90910814ac6&t=1781451548&sid=nL2r9fjd0L

作者: benz 時間: 2016-6-12 22:33
回覆 28# fred2088
係ESP8266的memory : 27K
去Extra settings 最下面就可以看到有幾位多可以upload
作者: ma_hty 時間: 2016-6-12 22:33
嗯... 暫時換一條盡短的線試試看吧. 可能性雖不大, 但 simpler case first.
作者: fred2088 時間: 2016-6-12 22:34
本帖最後由 fred2088 於 2016-6-12 22:35 編輯
回覆 29# benz
471K ?!
作者: benz 時間: 2016-6-12 22:35
回覆 28# fred2088
你有471K 可以upload
因為你係用ESP8266 1M (512K program, 512K data)
作者: benz 時間: 2016-6-12 22:38
回覆 31# fred2088
ESP8266-1 好似得1M (自己改先有4M用)
ESP8266-12 有4M (1M program 3M data)
所以要用ESP8266-12 4M的
作者: benz 時間: 2016-6-12 22:39
回覆 30# ma_hty
ok thanks, 遲d 再試
作者: benz 時間: 2016-6-12 23:07
回覆 31# fred2088
請問打印有無問題? 請看pm
作者: ma_hty 時間: 2016-6-12 23:21
本帖最後由 ma_hty 於 2016-6-12 23:27 編輯
回覆 34# benz
當你經 webserver upload 檔案時, 你馬上 redirect資料去 serial, redirect 之前, 送出 "M28 filename.g"
. 檔案傳送完後, 後加 "M29", 去停止寫入.
如此, 雖然是慢了一點, 但是, 這樣你就不必擔心不夠空間用.
不過呢... 長遠計, 你最好還是 加一個SD 模塊, 直接由 ESP8266 去讀寫. 然後, 要麼再用 M28/M29 寫 Marlin SD card + 寫完開始印; 要麼 ESP8266 讀 SD card 經 serial 直接印.
還不滿意的話, 來個 SPI in multi-master mode 去讓 ESP8266 和 Arduino 共用同一 SD card 模塊 (當然, 這樣軟體就要十分小心去管理了).
嗯嗯嗯... (如此... 這般...)
作者: benz 時間: 2016-6-12 23:41
回覆 36# ma_hty
1. 其實如果ESP8266有幾MB比我upload, 都夠用
(如果ESP8266可以用到8MB or 16MB, 就一定夠用)
2. 初頭試左之後先知無upload後print出黎呢個功能,
就諗住用最簡單方法, 就係加個print功能, 都無諗咁多
3. 佢有個功能可以印SD file的, 不過無試過
4. 無睇佢個upload功能點寫, 唔知識唔識改
多謝你的建議
作者: ma_hty 時間: 2016-6-13 02:02
本帖最後由 ma_hty 於 2016-6-13 14:34 編輯
回覆 37# benz
> 4. 無睇佢個upload功能點寫, 唔知識唔識改
- void UploadToMarlinSDCard()
- {
- HTTPUpload& upload = (web_interface->WebServer).upload();
- if(upload.status == UPLOAD_FILE_START)
- {
- Serial.println( "M28 " + upload.filename ); // tell Marlin to begin writing to SD card
- }else if(upload.status == UPLOAD_FILE_WRITE)
- {
- Serial.write( upload.buf, upload.currentSize ); // send whatever we received to Marlin
- }else if(upload.status == UPLOAD_FILE_END)
- {
- Serial.println();
- Serial.println( "M29" ); // tell Marlin SD writing finished
- // tell Marlin to select the file we merely wrote
- // and start printing the selected file
- Serial.println( "M23 " + upload.filename );
- delay(100);
- Serial.println( "M24" );
- } else {
- Serial.println();
- Serial.println( "M29" ); // tell Marlin SD writing finished
- // upload failed, we do nothing for now
- }
- }
WebServer.on("/FILES", HTTP_ANY, handleFileList,SPIFFSFileupload);
變成
WebServer.on( "/FILES", HTTP_ANY, handleFileList, UploadToMarlinSDCard );
^^", 程式寫起來 應該差不多就是上面的模樣. Compile 呢, 是 compile 過了, 但是, 我缺了電阻和電容, ESP8266 跑不起來. 無得試, 你真的去試的話... 我諗你需要很多運氣 ^^".
( 上面原碼的用意是 upload 檔案 + 用 M28/M29 寫 Marlin SD card + 寫完開始印 )
作者: fred2088 時間: 2016-6-13 12:47
回覆 38# ma_hty
大神師兄, 軟又得, 硬又得 ...
作者: ma_hty 時間: 2016-6-13 13:57
回覆 39# fred2088
> 大神師兄, 軟又得, 硬又得 ...
你這句受之有愧了. 原碼又沒測試過, 能不能用 尚是未知. 不能用的話, 上面的原碼 不過就是一堆 人不能讀的字符而已.
作者: benz 時間: 2016-6-13 21:14
回覆 38# ma_hty
可以試下, thanks (你都差唔多寫晒)
作者: lkc8210 時間: 2016-12-27 17:39
CHing~
我本來有一塊E01用緊25Q80ASSIG
可以做到你所post既野
我又手痕淘左粒25Q128FVSG直接換左上去
依家Com唔到,又更新唔到韌體,點算好?

PS: 我見你幅相粒25Q第3只腳係飛綫wo~飛左去邊?
作者: benz 時間: 2016-12-27 21:04
回覆 42# lkc8210
唔係飛綫, 係唔小心整走左第三腳pad, 所以要用綫連接
我係用25Q64FVSIG, 未試過25Q128FVSG, 唔知係唔係唔support
因為我手上只有ESP8266-01, 所以先會咁試, 其實直接用ESP8266-12(4M)會方便d
作者: lkc8210 時間: 2016-12-28 10:53
回覆 43# benz
多謝回覆
原來我又調轉左TxRx
依家更新左個韌體同埋Upload d file
但係個網頁既返應好慢
作者: fred2088 時間: 2017-4-17 21:22
請問可用ESP32 嗎 ?
作者: fred2088 時間: 2017-11-30 11:25
回覆 45# fred2088
大家有試這個嗎 ?! 可用 SD Card ...
https://github.com/probonopd/WirelessPrinting/


