Problem with UNO Q in Blink

I am new to UNO Q. Bought a board recently. Did all updates , installed AppLab , tried LED examples given in AppLab. It worked properly. But when I tried to test the UNO Q with IDE 2.3.8 LED Blink given in the examples did not work. What can be the problem.?

What are pins to which the 4 LEDs are connected..?

Hi @ks5084. Please try this:

  1. Connect the UNO Q board to your computer with a USB cable.
  2. Select the serial port of the UNO Q from Arduino IDE's Tools > Port menu.
  3. Select Tools > Programmer > OpenOCD from the Arduino IDE menus.
  4. Select Tools > Burn Bootloader from the Arduino IDE menus.
    Arduino IDE will perform a "Burn Bootloader" operation.
  5. Wait for the "Burn Bootloader" operation to finish successfully.

Now upload the Blink sketch to the board once again. Hopefully this time it will work as expected.

This is documented in the UNO Q user manual here:

https://docs.arduino.cc/tutorials/uno-q/user-manual/#mcu-controlled-leds

Look in the following diagram (Fig-1);
Each LED is a bundle of three RGB LEDs.
digitalWrite() works on LED3_R/G/B and LED4_R/G/B
LED3_R = LED_BUILTIN, and it is not connected with header pin 13.


Figure-1:

Thank you for the reply. Ideally the Blink LED (Using IDE) should have been modified by Arduino team so that it blinks all these 4 Leds in sequences and in 4 colors. That would have been nice.

I am scared to do this bootloader as I am afraid my board may get damaged . Ideally you should have put up a modified blink program which blinks all the 4 LEDs in sequence in all 4 colors without going into bootloader etc..Dont you think it is a good suggestion.?

It sounds like a fun project for you to take on yourself. After all, Arduino IDE is all about DIY (do it yourself).

I think you will find it much more rewarding to work with this technology to make your own vision a reality instead of using a finished project someone handed you.

Arduino Forum is always here to provide assistance if you encounter any problems or questions while working on your projects.

If you aren't willing to do that, you should use Arduino App Lab instead of Arduino IDE. Arduino App Lab automatically performs the required "Burn Bootloader" operation.

The developers are also working on making Arduino IDE automatically perform the required "Burn Bootloader" operation, but that work is not yet completed. So for now if you want to use Arduino IDE then you must trigger a "Burn Bootloader" operation yourself.

How many leds are bundled in a single LED? If there are 3 RGB leds, then 3 colors.

Have you tried to blink the leds in sequence?
LED1_R/G/B, ..., LED3_R/G/B

where:
LED1_R/G/B and LED2_R/G/B are driven by MPU and
LED3_R/G/B and LED3_R/G/B are driven by MCU.

Hints:
1. MPU finishes blinking LED1_R/G/B and LED2_R/G/B
2. MPU instructs MCU to blink LED2_R/G/B and LED3_R/G/B by RPC call
3. MCU instructs MPU to blink LED1_R/G/B and LED2_R/G/B by RPC call
4. Repeat

Application:

Working Principle: MPU blinks LED1_R/G/B, L2_R/G/B and then instructs the MCU to blink is LED3_R/G/B, LED4_R/G/B. MCU finishes blinking and then instructs MPU to blink its leds. The cycle repeats this way. The commands excage takes place via Brdge.call()/Bridge.provide() functions over the Router Bridge.
Script

import time
from arduino.app_utils import App, Leds, Bridge

def loop():
    # Turn on the LED red segment (1, 0, 0)
    Leds.set_led1_color(1,0,0)
    time.sleep(1)
    Leds.set_led1_color(0,0,0)
    time.sleep(1)

    # Turn on the green LED segment (0, 1, 0)
    Leds.set_led1_color(0,1,0)
    time.sleep(1)
    Leds.set_led1_color(0,0,0)
    time.sleep(1)

    # Turn on the blue LED segment (0, 0, 1)
    Leds.set_led1_color(0,0,1)
    time.sleep(1)
    Leds.set_led1_color(0,0,0)
    time.sleep(1)

    #---------------------------------
    # Turn on the LED red segment (1, 0, 0)
    Leds.set_led2_color(1,0,0)
    time.sleep(1)
    Leds.set_led2_color(0,0,0)
    time.sleep(1)
    
     # Turn on the LED green segment (0, 1, 0)
    Leds.set_led2_color(0,1,0)
    time.sleep(1)
    Leds.set_led2_color(0,0,0)
    time.sleep(1)
    
    # Turn on the blue LED segment (0, 0, 1)
    Leds.set_led2_color(0,0,1)
    time.sleep(1)
    Leds.set_led2_color(0,0,0)
    time.sleep(1)
    
    #----------------------------------------
    while Bridge.call("start_blink", "blinkled34",timeout=20) != "blink12":
        pass  # Do nothing, immediately loop back and check again
        
App.run(user_loop=loop)

sketch:

#include<Arduino_RouterBridge.h>

String startBlink(String str)
{
  if(str == "blinkled34")
  {
        digitalWrite(LED3_R, LOW);
        delay(1000);
        digitalWrite(LED3_R, HIGH);
        delay(1000);
    
        digitalWrite(LED3_G, LOW);
        delay(1000);
        digitalWrite(LED3_G, HIGH);
        delay(1000);

        digitalWrite(LED3_B, LOW);
        delay(1000);
        digitalWrite(LED3_B, HIGH);
        delay(1000);
        //-------------------------------
        digitalWrite(LED4_R, LOW);
        delay(1000);
        digitalWrite(LED4_R, HIGH);
        delay(1000);
    
        digitalWrite(LED4_G, LOW);
        delay(1000);
        digitalWrite(LED4_G, HIGH);
        delay(1000);

        digitalWrite(LED4_B, LOW);
        delay(1000);
        digitalWrite(LED4_B, HIGH);
        delay(1000);
        //-------------------------------
        return "blink12";
  }
}
    
void setup() 
{
  Bridge.begin();
  delay(5000);
  
  pinMode(LED3_R, OUTPUT);
  pinMode(LED3_G, OUTPUT);
  pinMode(LED3_B, OUTPUT);

  pinMode(LED4_R, OUTPUT);
  pinMode(LED4_G, OUTPUT);
  pinMode(LED4_B, OUTPUT);
  //------------------------
  digitalWrite(LED3_R, HIGH);
  digitalWrite(LED3_G, HIGH);
  digitalWrite(LED3_B, HIGH);

  digitalWrite(LED4_R, HIGH);
  digitalWrite(LED4_G, HIGH);
  digitalWrite(LED4_B, HIGH);

  Bridge.provide("start_blink", startBlink); 
}

void loop() 
{
  
}