Cannont connect Uno Q to App Lab on MacBook Pro 2016

Hello everyone,

It’s been a while, but I’m back with an Arduino UNO Q 2GB. I’ve owned the board for a couple of months (so it might need a Linux update, based on what I’ve read online), but I only tried to connect it to my laptop for the first time yesterday.

My setup is the following:

  • Arduino UNO Q 2GB;

  • MacBook Pro 2016 (macOS Monterey 12.7.6);

  • iPhone 16 USB-C to USB-C cable (I also tried several other cables).

The board powers up correctly: it shows the infinity animation and then ends up with the pulsing heartbeat.
The green ON LED next to the USB-C connector is solid; onn the other side of the board LED 2 is solid blue, and LED 3 is pulsing green.

I’ve tried all USB ports on my Mac and left the board connected for hours, but Arduino App Lab never detects the board.

If I check About This Mac → System Information → USB, I can clearly see the board listed under the USB 3.0 bus as “Uno Q – uno-q”, so I don’t think the cable is the issue.

I’ve tried most of the solutions I could find online, except flashing the board with the latest Linux image (I’m currently traveling and didn’t bring a jumper wire with me).

Does anyone have suggestions on what else I could try?

Thanks in advance.

Ale

Bill at Dronebotworkshop just put out an excellent video. I think it is part 1 of ?
https://youtu.be/ConG_fma45M?si=BcgNdmtZ5quGt_-5

2 Likes

Thanks for the link. Just took a quick look at the video. It does a pretty good job of explaining how everything is linked together.

Thank you very much for the video!
I followed all the steps and successfully flashed Debian 20251127-441 (the latest version).

I didn’t have a proper jumper wire with me, so I made one using a piece of coated gardening wire I found around (obviously after having removed the coat), and it worked fine. After flashing the board, I received the following message in my macOS terminal:

“The board has been successfully flashed. You can now power-cycle the board (unplug and re-plug). Remember to remove the jumper.”

So I assume the flashing process completed successfully.

I then disconnected the board, removed the jumper wire, and reconnected it to my laptop. The board now shows a slightly different infinity animation at startup: there is a sort of moving trail at the beginning, and then the two dots appear simultaneously. After the infinity animation, the heartbeat LED is no longer present.

The LED status has also changed:

  • the green power LED is still solid,

  • on the opposite corner only the solid blue LED is on,

  • the green blinking LED is no longer present.

If I check About This Mac → System Information, I can still see the Arduino UNO Q board connected to the USB bus.

However, even after flashing the board and reconnecting it, Arduino App Lab still does not recognize the board.

Is there anything else I could try at this point?

Thanks again for your help.

Are you saying that it is no longer showing the pulsing heart animation?

Are you connecting the UNO Q directly to the Mac or via a hub?

Check your Mac system notifications to see whether there is a message asking to grant permissions to a new USB device. If so, then go ahead and grant the permissions.

Also, I believe that on the Mac there is a setting in Privacy & Security to Allow accessories to connect. If you are connecting other accessories then its probably enabled, but might be worth checking.

I’m connecting the board directly to the laptop without any hub.

I’ve checked if there were some rights to be granted but there were none in preferences (under privacy).

The hearth animation shows only once and then the LED matrix shuts down.
I attach a video here:

Thannk you very much!

Go back to Bills video and see what he does at the same point.

I’ve watched the video several times, but I really don’t see what he’s doing differently from me. He flashes the board, disconnects it, removes the jumper, reconnects it, and then App Lab recognizes it. I follow exactly the same steps, but App Lab never detects the board.

Am I missing something?

Thanks!

Follow-up / clarification – board is now working

Hi everyone,
I’m posting a clarification/update and I’ve removed my previous reply because I realized it might have been misleading.

The UNO Q is now working correctly and Arduino App Lab can see it.

After further testing, I’m no longer sure that the behavior I was initially investigating is actually a bug, so I’d like to double-check what is expected.
What I observed

  • The UNO Q boots correctly with the latest Debian image.

  • The board is always detected correctly via USB serial by Arduino CLI:

arduino-cli board list

shows:

/dev/cu.usbmodemXXXXXXXX  Arduino UNO Q  arduino:zephyr:unoq

  • Arduino App Lab now detects the board and works as expected.

What confused me initially

While troubleshooting, I ran some additional tests:

  • No USB Ethernet / CDC / RNDIS interface ever appears on macOS:
  1. networksetup -listallhardwareports
    
    
  2. No _arduino._tcp service is announced via mDNS:
  • dns-sd -B _arduino._tcp
    
    

These tests always return nothing, even when the board is working and App Lab can see it.

This led me to initially think something was missing or broken, but now it seems possible that this is simply not how the UNO Q is meant to be discovered on macOS, and that serial discovery is the expected mechanism.

My question

Is this behavior normal?

In other words:

  • Is it expected that the UNO Q:

    • does not expose a USB Ethernet interface?

    • does not announce _arduino._tcp via mDNS?

  • And that the only supported/expected way to discover it on macOS is via USB serial (as shown by arduino-cli), which App Lab then uses internally?

I just want to confirm that this is the intended behavior and that there is nothing else I should be enabling or checking.

Thanks a lot for the support and for your patience!

I think post 2 was the solution then?

Ok, so when I plug my board in, I get:

  • Arduino infinity logo animation with dots inside the loops
  • heartbeat logo with 2 beats
  • matrix goes blank

arduino-cli then reports as follows:

$ arduino-cli board list
Port         Protocol Type              Board Name    FQBN                Core
/dev/ttyACM0 serial   Serial Port (USB) Arduino UNO Q arduino:zephyr:unoq arduino:zephyr
/dev/ttyS0   serial   Serial Port       Unknown

I am running this on Linux so the port names will be different, but as you can see, it reports the UNO Q on port /dev/ttyACM0. If I reconnect the network then it also reports an IPv6 network address:

$ arduino-cli board list
Port                      Protocol Type              Board Name    FQBN                Core
fe80::e32c:d942:7726:b33e network  Network Port      Arduino UNO Q arduino:zephyr:unoq arduino:zephyr
/dev/ttyACM0              serial   Serial Port (USB) Arduino UNO Q arduino:zephyr:unoq arduino:zephyr
/dev/ttyS0                serial   Serial Port       Unknown

Evidently then, the arduino-cli also searches the local network when it is available.

Even with the network disconnected, AppLab is able to detect the UNO Q when it is connected to the PC only directly via a USB cable.

While still connected to USB only and the network connection disabled, I ran an ip addr to list my network interfaces. It did not show any local Ethernet interface being exposed by the UNO Q over the direct to PC USB connection.

On Linux there are two tools for working with mDNS: avahi-utils and mdns-scan. I tried both of them and neither reported anything. This was as expected, because mDNS is a network protocol. However, since the UNO Q board was already configured for WiFi, once the network connection was re-enabled and after a short delay, both tools were able to detect the UNO Q _arduino._tcp hostname. The avahi-utils tool reported it on both the IPv4 and IPv6 network.

If you connect a multi-port USB dongle that includes an Ethernet port, an Ethernet connection does then get exposed via the dongle, but because there is no IP address assigned to it yet, it can't communicate. However, an IP address can be assigned to the port manually from the command terminal which can be accessed either from AppLab or while working in SBC mode, although since most of us use WiFi, its probably unlikely that anyone would use that option.

So I think the answer to your questions are:

  • the UNO Q does not expose an Ethernet port over a direct to PC USB connection.
  • the UNO Q can only announce itself over mDNS if :
    • a network has been configured and it has been given a hostname*
    • it is connected to that network (e.g. WiFi)
    • the PC/Laptop/Mac is also connected to the same network subnet

*not sure whether it has a default generic one?

Since the UNO Q does not expose an Ethernet port over a direct PC connection, it cannot announce itself via mDNS using that route. I didn't test whether it advertises itself over the dongle Ethernet port, although I could ping it once an IP address had been assigned to the connected interface on both the UNO Q and the PC.

Hi, thanks a lot for the very detailed explanation and for taking the time to test this on your own UNO Q — that really helped clarify things.

In my case, the confusion came from the fact that this was a brand-new board, not yet connected to any Wi-Fi network. Since the initial Wi-Fi setup is done through App Lab, App Lab is effectively the first and only way to configure networking.

What initially blocked me was that, on macOS, App Lab did not detect the UNO Q at all until the Arduino CLI discovery tools had been installed and initialized. Once that was done, App Lab immediately detected the board over USB serial, and everything started working as expected.

Thanks again for confirming that this behavior is normal and for explaining the network side so clearly — it helped me separate what was expected behavior from what was just a tooling/setup issue on my side.

1 Like

Hi, thanks a lot for following up and for sharing that video — it was definitely useful and interesting, and it helped me better understand the overall setup and expected behavior of the UNO Q.

Though, what actually made the difference was installing the Arduino CLI and, more specifically, letting it install and initialize the required discovery tools (especially serial discovery). As far as I can tell, this step isn’t explicitly mentioned in the video (unless I missed it). Once the Arduino CLI was properly installed and initialized, App Lab was immediately able to detect the UNO Q over USB serial, even before any network configuration.

That said, the video was still very helpful as a general reference for the UNO Q setup and behavior, so thanks again for sharing it — it definitely contributed to getting everything up and running.

Thank you very much again!

Check the video at 1050ish. I never work off the videos, instead click the ...more then click the first link to open the article. Search on CLI. Also in the video, there is a timeline, see first pic. The second pic is the article.


1 Like

Interesting. I only installed arduino-cli as a separate stand-alone tool yesterday on the tower PC specifically because you mentioned it in your post and I wanted to try it for myself. However, AppLab was already able to detect my UNO Q prior to that, without the arduino-cli tool being explicitly installed.

Incidentally, I am assuming here that you do mean arduino-cli as distinct from arduino-flasher-cli, as these are different tools. I did download and unpack the arduino-flasher-cli on my laptop to allow me to flash the firmware to the latest version, but neither tool had actually been installed prior to the UNO Q being detected by AppLab on either computer.

I expect that someone else (@ptillisch ?) will know, but I imagine that the required detection tools must already be bundled into the tool-chain contained within the AppLab package, so its curious if you had to install arduino-cli separately for your UNO Q to be detected. While doing so seems to have provided a workaround for your problem, this does not explain why AppLab was not able to initially detect your UNO Q board.

I didn't see downloading arduino-cli mentioned in the video either and it is not mentioned in Arduino's own Getting Started guide, nor was it required in my own experience of getting set up with AppLab, all of which suggests that it is not a necessary step. However, I am, admittedly, not as familiar with Apple Macs as I am with Linux. On the other hand, using arduino-flasher-cli to update the firmware on the UNO Q is a sensible first step to take prior to configuring and using the board with AppLab.

You’re absolutely right — Arduino CLI is mentioned in the video, and thanks for pointing that out.

Rewatching it carefully, it comes up briefly around 10:50, but then, in the more practical part of the setup (around 12:30), the creator explicitly suggests downloading only Arduino App Lab and Arduino Flasher CLI, which is a different tool from Arduino CLI (Arduino CLI was in the lower right corner of his screen and he never downloads it).

In any case, thanks again for sharing the video — it was genuinely very useful and helped me get back into the Arduino ecosystem after many years, especially considering how much things have evolved with the UNO Q. I really appreciated it as a general introduction and reference.

Thanks for the detailed thoughts!

I should probably stress that I don’t feel experienced enough to provide a deeper technical analysis of why this made a difference in my case. What I shared was simply my practical experience, in the hope that it might help someone else who runs into the same issue.

I can’t say with certainty that installing Arduino CLI is the definitive or required solution in all cases. What I can say is that, after almost two days of unsuccessfully trying to get App Lab to detect my brand-new UNO Q on macOS, the board finally became visible to App Lab shortly after installing Arduino CLI and running it for the first time. Whether that was the direct cause, a side effect (e.g. discovery tools being initialized), or just coincidental timing, I honestly can’t tell.

Thanks again for taking the time to test this on your setup and for sharing your perspective!

1 Like

That is the CommandLineInterface for the Arduino IDE. It has nothing to do with the UNO Q. If things started working after downloading that, it is a coincidence. It may be that either the UNO Q updates had not finished yet, or some sort of reset was needed that the download of the Arduino CLI (NOT Flasher CLI) caused. In any case it's good you got past that step. Now the hard part begins.

Thanks for the clarification — that makes sense, and I appreciate you taking the time to explain it.

In any case, I’m glad I’ve managed to get past that step and really appreciate all the help and explanations along the way. Fingers crossed for the next part of the journey :slightly_smiling_face:

Thanks again for the support!