Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

EightByEight - error uploading demo sketch from Arduino IDE: espcomm_open failed

Hi, I just got by EightByEight this weekend and I'm eager to start playing. It seems like a really rad little piece of hardware! I was able to get PatternPaint working with it, but when I tried to upload one of the example sketches, I get the errors: `warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed` I followed the instructions in the [Getting Started Guide](https://github.com/Blinkinlabs/EightByEight/blob/master/documentation/Getting started guide.pdf "Getting Started Guide") to load the ESP8266 Board info. I am pretty new to Arduino, so I could be making some newbie mistake that's just not documented in the 8x8 docs. Here is the full set of steps I've gone through so far: Basic Connection * downloaded and installed arduino IDE for Mac v1.8.4 * followed instructions to [Install the ESP8266 Board](https://github.com/esp8266/Arduino/blob/master/README.md#installing-with-boards-manager) * configured the Tools > Board configs according to the screencap in the Getting Started guide (also set Tools > Port to /dev/cu.usbmodem1421 * at this point I could open the Serial Port monitor and it shows debug info when you hold the button down (mac & IP address, accelerometer info) Pattern Paint * downloaded the app from http://blinkinlabs.com/blinkytape/patternpaint/ * quit out of the arduino app and restarted the pattern paint app to get the "save to blinky" button to be enabled * I also had to do "tools > restore firmware" to get the 8x8 to respond to pattern paint * after that it worked to preview the patterns on the device, and when i "saved" the patterns to the blinky and unplugged it, they were added to the end of the pre-loaded demos. Next I tried loading an Arduino sketch, starting with the BlinkyDemo from the [EightByEight repo](https://github.com/Blinkinlabs/EightByEight/tree/master/examples/BlinkyDemo) but I get an error whenever I try to upload a sketch. I tried out some of the example arduino sketches too, and they're giving the same error. Here's the full output when I try to upload a sketch: `Archiving built core (caching) in: /var/folders/8l/s03hdskd4xv2jskdlwyrk66c0000gn/T/arduino_cache_708934/core/core_esp8266_esp8266_generic_CpuFrequency_80,FlashFreq_40,FlashMode_qio,UploadSpeed_460800,FlashSize_2M,ResetMethod_nodemcu,Debug_Disabled,DebugLevel_None_____c9d37bcc24a4e4f34f6c8352a98fda97.a Sketch uses 275877 bytes (26%) of program storage space. Maximum is 1044464 bytes. Global variables use 35848 bytes (43%) of dynamic memory, leaving 46072 bytes for local variables. Maximum is 81920 bytes. warning: serialport_set_baudrate: baud rate 460800 may not work warning: espcomm_send_command: wrong direction/command: 0x01 0x00, expected 0x01 0x08 warning: espcomm_send_command: wrong direction/command: 0x01 0x00, expected 0x01 0x08 warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed error: espcomm_upload_mem failed` Do I need to reset the firmware again to upload a sketch from the Arduino IDE? If so, is the "Updating the ARM Firmware" link from the Getting Started guide the one I should follow? Thanks in advance!

Comments

  • Hi Benjamin, thanks! It sounds like you're doing everything correctly here. The critical setting in the Arduino tools menu is 'Reset Method' : 'nodemcu', however if you've followed the guide than that should be set already. We've seen this issue a few times (though mostly with Windows machines), and it's possible that it's a timing problem between the Arduino serial reset procedure and the USB firmware on the EightByEight. For reference, what kind of Mac are you using? If you happen to have a USB hub you could plug the EightByEight into, that would be worth a try (or if you're already using a hub, try plugging it in directly). Otherwise, we can try to make an ARM firmware update with less sensitive reset timing.
  • Thanks, Matt! I'm using a MacBook Air (13-inch, Mid 2013) running OS 10.12.6. I was not using a USB hub, but tried putting one in between and got the same errors. I set up Arduino, ESP8266 via Board Manager, etc. on a MacBook Pro (13-inch, 2016, Two Thunderbolt 3 ports) running OS 10.12.5, and got the same errors the first time, then tried uploading again a minute later and it was successful. I made a minor tweak and tried uploading again and got 6 errors before a successful upload. Having seen this success, I went back to the Macbook Air and tried uploading again, and it worked the first time. Go fig.
  • My buddy has a Macbook Pro (15-inch, Mid 2010) running OS X 10.10.5 and has not been able to get this to work at all - he gets similar errors: warning: espcomm_sync failed error: espcomm_open failed error: espcomm_upload_mem failed error: espcomm_upload_mem failed and has not been able to get these no matter how many times he tries the upload. When he tries to "Restore Firmware" in PatternPaint, after a few seconds he gets the error "Command SyncFrame timed out". Should we try the ARM firmware update you suggest or is something else (not) going on here?
  • It sounds like the solution is probably an ARM firmware upgrade, then. I'll try to isolate that error here and get an upgrade out soon
  • Also- if you want to know the specifics, I believe it is in the way we implemented the reset procedure for the ESP. We're emulating the nodeMCU reset method: https://tttapa.github.io/ESP8266/Chap06 - Uploading.html using a small bit of software on the ARM part: https://github.com/Blinkinlabs/EightByEight/blob/master/firmware/usb_dev.c#L331 The software expects to receive multiple CDC_SET_CONTROL_LINE_STATE messages from the host computer, and I believe whats happening is that that host computer is either filtering out those requests, or sending them either too slowly or too quickly for the ARM part to generate the reset signal properly. I added a routine to check for this error and automatically retry to PatternPaint, and that seemed to be work ok on my systems (a 2012 macbook air, 2016 dell laptop, and Raspberry Pi 3), but since the procedure is time sensitive I can imagine that it might have issues on other systems. I'm going to start by looking at the USB transfers that recent Arduino versions on macOs send to the badge, and go from there.
  • Cool, thanks for your support!
Sign In or Register to comment.