Skip to content

Arduino Uno Q Preliminary Example#1054

Merged
TMRh20 merged 8 commits into
masterfrom
ArduinoQ
Dec 13, 2025
Merged

Arduino Uno Q Preliminary Example#1054
TMRh20 merged 8 commits into
masterfrom
ArduinoQ

Conversation

@TMRh20

@TMRh20 TMRh20 commented Dec 11, 2025

Copy link
Copy Markdown
Member

Adding preliminary example for Arduino Uno Q

@TMRh20

TMRh20 commented Dec 11, 2025

Copy link
Copy Markdown
Member Author

The only main problem is the Arduino Q MCU output is not respecting the new lines, but other that that it works.

sprintfPrettyDetails PythonOutput
@2bndy5

2bndy5 commented Dec 11, 2025

Copy link
Copy Markdown
Member

Arduino Q MCU output is not respecting the new lines

Doesn't seem to be our problem.

I noticed about a bunch of complaints about the App Lab proprietary software and the Uno Q board on Arduino forums. It looks like a lot of redit users got all fired up too, but I'm not re-posting that doom scroll.

If Arduino (Qualcomm) doesn't consider community feedback from the Uno Q roll out, then there might be an inevitable maker community exodus toward alternatives (probably PlatformIO + Zephyr project). But simplicity like the Arduino IDE experience is hard to find in alternatives.

@2bndy5 2bndy5 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What version of Python is running in the app lab?

If app lab is not using a venv for each project

python3 --version
Comment thread examples_uno_q/rf24_encoderadiodetails/python/main.py Outdated
Comment thread examples_uno_q/rf24_encoderadiodetails/python/main.py Outdated
TMRh20 and others added 2 commits December 11, 2025 10:13
Co-authored-by: Brendan <2bndy5@gmail.com>
Co-authored-by: Brendan <2bndy5@gmail.com>
@TMRh20

TMRh20 commented Dec 11, 2025

Copy link
Copy Markdown
Member Author

I think it runs a venv for each project inside a docker container.

What version of Python is running in the app lab?

Python 3.13.5

@2bndy5

2bndy5 commented Dec 11, 2025

Copy link
Copy Markdown
Member

Yikes! Using a docker container seems like overkill (especially for a SBC) if they want to protect the Linux system assets. Do you have to run App Lab with root privileges? This invokes so many other questions about using bricks. And I thought I over-thought things, damn.

@TMRh20

TMRh20 commented Dec 11, 2025

Copy link
Copy Markdown
Member Author

No, root privileges are not required.

Turns out you can't just do things like create or access a TUN interface either, so that pretty much rules out any RF24Gateway like behavior too.

@2bndy5

2bndy5 commented Dec 11, 2025

Copy link
Copy Markdown
Member

Yea, I just saw your arduino forums thread. Does app lab allow you to add custom args when running the docker container? If so, I suspect you could forward network ports into the docker container.

Comment thread examples_uno_q/rf24_encoderadiodetails/sketch/sketch.yaml
@2bndy5

This comment was marked as outdated.

@TMRh20

TMRh20 commented Dec 11, 2025

Copy link
Copy Markdown
Member Author

Does app lab allow you to add custom args when running the docker container? If so, I suspect you could forward network ports into the docker container.

App lab is pretty sparse for options etc. I was trying to figure out a way to run docker with CAP_NET_ADMIN privileges but still haven't figured out if its possible.

@per1234

per1234 commented Dec 12, 2025

Copy link
Copy Markdown
Contributor

the Arduino Q MCU output is not respecting the new lines

Hi @TMRh20. I have notified the Arduino App Lab developers of the incorrect handling of the \n (LF) line ending by Serial Monitor.

Note that the Arduino App Lab Serial Monitor does handle CRLF line endings (which is what is used by Print::println) as expected. So it may be possible to work around the problem in some cases (though I understand that in this case where the line endings are in the library source code that would be inconvenient).

Comment thread examples_uno_q/rf24_encoderadiodetails/README.md Outdated
@TMRh20 TMRh20 merged commit 5b209c5 into master Dec 13, 2025
6 checks passed
@TMRh20 TMRh20 deleted the ArduinoQ branch December 13, 2025 23:39
radio.encodeRadioDetails(encoded_details);
Monitor.println(F("\nhexadecimal dump of all registers:"));
for (int i = 0; i < 43; i++) {
Bridge.call("RF24Callback", encoded_details[i]);

@TMRh20 TMRh20 Feb 5, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something seems to have changed with the Q lately.

Running this example now results in what seems to be a hang of the MCU.

Changing this line to Bridge.notify("RF24Callback", encoded_details[i]); seems to work around the issue, but requires also adding a delay, because the notify function doesn't wait for an ACK.

I'm not sure if I want to change this right away or what. The google AI results indicate this is a 'known issue' and the same Bridge.call function seems to work in my advanced example at https://github.com/TMRh20/Sketches/tree/master/ArduinoQ/rf24-advanced-interaction

I think it might be best to wait to see if these Bridge issues are resolved before making more changes. Its not an RF24 issue, but some sort of timing issue or something it seems with the Q.

I don't like this board much after working with it now for over a month... I think the Raspberry Pi has it beat by many miles.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe that example just needs to wait until the bridge is ready. I found an example in Arduino forums. The solution seems similar to waiting for while (!Serial); before emitting output.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll have to try that out later! Thanks for the tip!

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well I tried the workaround in that thread:

  while(!start)
  {
    Bridge.call("linux_started").result(start);
  }

It just seems to hang on this call, never syncing. IMHO the Uno Q has now reached the level of hokey and almost unusable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

3 participants