2.3.1 does not let me upload to seeduino, how do i downgrade back to 2.3.0? where is this file located?

hey all, 2.3.1 came up as a download yesterday at which i duly ignored and cracked on with my code to a seeeduino xiao. today i've come back and done the upgrade and now my seeeduino is recognised and i can compile, but the upload times out with an error of cant see seeduino on com6... which is still present in the dropdown menu.

you used to be able to download old versions, but this page is outdated... and im too stupid to understand github... so anywhere easy to download 2.3.0 from so i can get back to coding?

thanks

ahh. ignore me. i found 2.3.0 in my downloads folder, uninstalled 2.3.1. and installed 2.3.0 and its still borked.

works fine yesterday, but today its fucked.

Hi @kelvinmead. I'm going to ask you to post the full verbose output from an upload attempt.


:exclamation: This procedure is not intended to solve the problem. The purpose is to gather more information.


Please do this:

  1. Select File > Preferences... (or Arduino IDE > Settings... for macOS users) from the Arduino IDE menus.
    The "Preferences" dialog will open.
  2. Uncheck the box next to Show verbose output during: compilation in the "Preferences" dialog.
  3. Check the box next to Show verbose output during: ☐ upload.
  4. Click the "OK" button.
  5. Attempt an upload, as you did before.
  6. Wait for the upload to fail.
  7. You will see a "Upload error: ..." notification at the bottom right corner of the Arduino IDE window. Click the "COPY ERROR MESSAGES" button on that notification.
  8. Open a forum reply here by clicking the "Reply" button.
  9. Click the <CODE/> icon on the post composer toolbar.
    This will add the forum's code block markup (```) to your reply to make sure the error messages are correctly formatted.
    Code block icon on toolbar
  10. Press the Ctrl+V keyboard shortcut (Command+V for macOS users).
    This will paste the error output from the upload into the code block.
  11. Move the cursor outside of the code block markup before you add any additional text to your reply.
  12. Click the "Reply" button to post the output.
Sketch uses 51100 bytes (19%) of program storage space. Maximum is 262144 bytes.
Performing 1200-bps touch reset on serial port COM6
Waiting for upload port...
No upload port found, using COM6 as fallback
"C:\Users\Kelvin Mead\AppData\Local\Arduino15\packages\Seeeduino\tools\bossac\1.7.0-arduino3/bossac.exe" -i -d --port=COM6 -U true -i -e -w -v "C:\Users\Kelvin Mead\AppData\Local\Temp\arduino\sketches\1AE4F596E4EE81DA8DE2677E0F8059FC/xiao_mousebuttonforfishing2b.ino.bin" -R
No device found on COM6
Failed uploading: uploading error: exit status 1

did all of the above, but it just stuck on uploading after the message saying "No upload port, using COM6 as fallback" so waited and then just pulled the cord.

side note, but the verbose output doesnt seem to show anything at all!

i did have a forced windows update a day or 2 ago... so im thinking somethings happened.

#include "Adafruit_TinyUSB.h"

// HID report descriptor using TinyUSB's template
// Single Report (no ID) descriptor
uint8_t const desc_hid_report[] =
{
  TUD_HID_REPORT_DESC_MOUSE(),
};

// USB HID object 
Adafruit_USBD_HID usb_hid;

const int latch1 = 10;
const int latch2 = 6;
const int latch3 = 7;
const int push1 = 3;
const int push2 = 4;
const int push3 = 5;

void setup() {
//  Keyboard.begin();

  pinMode(latch1, INPUT_PULLUP);
  pinMode(latch2, INPUT_PULLUP);
  pinMode(latch3, INPUT_PULLUP);
  pinMode(push1, INPUT_PULLUP);
  pinMode(push2, INPUT_PULLUP);
  pinMode(push3, INPUT_PULLUP);

  usb_hid.setPollInterval(30);
  //usb_hid.setStringDescriptor("TinyUSB HID Composite");
  usb_hid.begin();

//   // wait until device mounted
   while( !USBDevice.mounted() ) delay(1);

  delay(1000);
}

void loop() {
  // turn the led off
    digitalWrite(LED_BUILTIN, 1); 

// latch 1 - left mouse button
  if (digitalRead(latch1) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
    usb_hid.mouseButtonPress(0, 1); 
  } else {
    usb_hid.mouseButtonPress(0, 0); 
  }
  
  // latch 2
  if (digitalRead(latch2) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
  }
  
  // latch 3
  if (digitalRead(latch3) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
   }

// push 1
  if (digitalRead(push1) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
    //usb_hid.keyboardPress(uint8_t report_id, char ch) 
    //usb_hid.keyboardPress(0, HID_KEY_S); // ctrl KEY_LEFT_CTRL 224
    //uint8_t keycode[6] = {HID_KEY_S};
    //usb_hid.keyboardPress(KEY_LEFT_ALT, 1); // alt KEY_LEFT_ALT
    //usb_hid.keyboardPress(KEY_F10, 1); // f10 KEY_F10
    //delay(10);
    //usb_hid.keyboardRelease(0);

  } else {
    //digitalWrite(LED_BUILTIN, 1); 
    //usb_hid.keyboardRelease(1);
    //usb_hid.keyboardPress(224, 0); // ctrl
    //usb_hid.keyboardPress(KEY_LEFT_ALT, 0); // alt
    //usb_hid.keyboardPress(KEY_F10, 0); // f10
  }

  // push 2
  if (digitalRead(push2) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
  }

  // push 3 - save last video (nvidia)
  if (digitalRead(push3) == LOW) {
    digitalWrite(LED_BUILTIN, 0); 
  }


}

not overtly relevant, but this is the code im uploading.

Your board does not react on the reset issued by the IDE or Windows is slow in picking up the change.

  1. I'm not familiar with your board.
  2. Do you see changes in Windows device manager when you see the "performing 1200-bps ..."?
  3. Does the built-in LED fade in/out when you see the "performing 1200-bps ..."?
  4. If you double-tap the reset button on your board, do you see (2) and (3) above? If there is no reset button, connect one.

If your board reacts on the double-tap reset, use double-tap reset when the IDE shows "Performing 1200-bps touch reset on serial port COM6".

what's weird, is that it did do. it worked just fine! just when the updates cae along it seemed to go strange! so ive done the double tap on reset, and it did stuff...

ive managed to upload a blink sketch, and its blinking but unsure of why the seeeduino has lost the automatic ability!

thanks for your help!

Your board has native USB. Part of the file that is uploaded to your board contains functionality that identifies the board to your operation system and reacts on the software reset that the IDE issues when an upload starts.

The sketch that you wrote can overwrite variables that are used by the above functionality due to bugs in your sketch. As a result your board can not identify itself any more or it will not react on the software reset.

Note that it might have been coincidence that this happened after the update. I do not believe that much in coincidences but I do not know exactly what happened at your side :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.