本帖最後由 fred2088 於 2016-6-12 22:35 編輯

回覆 29# benz


    471K ?!   所以要用 4M 的 ESP8266-01 或 12 ?

TOP

回覆 28# fred2088

你有471K 可以upload
因為你係用ESP8266 1M (512K program, 512K data)

TOP

回覆 31# fred2088

ESP8266-1 好似得1M (自己改先有4M用)
ESP8266-12 有4M (1M program 3M data)
所以要用ESP8266-12 4M的

TOP

回覆 30# ma_hty

ok thanks, 遲d 再試

TOP

回覆 31# fred2088

請問打印有無問題? 請看pm

TOP

本帖最後由 ma_hty 於 2016-6-12 23:27 編輯

回覆 34# benz

其實話時話呀, 為啥你不用番 Marlin 原來寫 SD card 的方式? 即是...
當你經 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 模塊 (當然, 這樣軟體就要十分小心去管理了).  

嗯嗯嗯... (如此... 這般...)

TOP

回覆 36# ma_hty

1. 其實如果ESP8266有幾MB比我upload, 都夠用
   (如果ESP8266可以用到8MB or 16MB, 就一定夠用)

2. 初頭試左之後先知無upload後print出黎呢個功能,
   就諗住用最簡單方法, 就係加個print功能, 都無諗咁多

3. 佢有個功能可以印SD file的, 不過無試過

4. 無睇佢個upload功能點寫, 唔知識唔識改

多謝你的建議

TOP

本帖最後由 ma_hty 於 2016-6-13 14:34 編輯

回覆 37# benz

> 4. 無睇佢個upload功能點寫, 唔知識唔識改
  1. void UploadToMarlinSDCard()
  2. {

  3.   HTTPUpload& upload = (web_interface->WebServer).upload();
  4.   if(upload.status == UPLOAD_FILE_START)
  5.   {
  6.     Serial.println( "M28 " + upload.filename );  // tell Marlin to begin writing to SD card

  7.   }else if(upload.status == UPLOAD_FILE_WRITE)
  8.   {
  9.     Serial.write( upload.buf, upload.currentSize );   // send whatever we received to Marlin

  10.   }else if(upload.status == UPLOAD_FILE_END)
  11.   {
  12.     Serial.println();
  13.     Serial.println( "M29" );  // tell Marlin SD writing finished

  14.     // tell Marlin to select the file we merely wrote
  15.     // and start printing the selected file
  16.     Serial.println( "M23 " + upload.filename );
  17.     delay(100);
  18.     Serial.println( "M24" );

  19.   } else {
  20.     Serial.println();
  21.     Serial.println( "M29" );  // tell Marlin SD writing finished

  22.     // upload failed, we do nothing for now

  23.   }

  24. }
複製代碼
你把上面的 function, 放到 webinterface.cpp 之內 (放在你改過的 SPIFFSFileupload function 前或後吧).  然後, 改一改你下面的這一句
    WebServer.on("/FILES", HTTP_ANY, handleFileList,SPIFFSFileupload);
變成
    WebServer.on( "/FILES", HTTP_ANY, handleFileList, UploadToMarlinSDCard );


^^", 程式寫起來 應該差不多就是上面的模樣.  Compile 呢, 是 compile 過了, 但是, 我缺了電阻和電容, ESP8266 跑不起來.  無得試, 你真的去試的話... 我諗你需要很多運氣 ^^".

( 上面原碼的用意是 upload 檔案 + 用 M28/M29 寫 Marlin SD card + 寫完開始印  )

TOP

回覆 38# ma_hty


    大神師兄, 軟又得, 硬又得 ...

TOP

回覆 39# fred2088

> 大神師兄, 軟又得, 硬又得 ...

你這句受之有愧了.  原碼又沒測試過, 能不能用 尚是未知.  不能用的話, 上面的原碼 不過就是一堆 人不能讀的字符而已.

TOP