Why should we consider redesign the SWD interface on the XIAO

I have a question, I would like to know what is your reason for wanting to use the SWD interface on the XIAO? Is it for chip development? From our point of view, there are two main considerations:

  1. for our main group (Arduino users), is there a smooth enough program uploading process
  2. Whether there is enough user base to support SWD interface instead of USB, JLink connector is not cheap, I doubt about it
  3. Whether SWD interface can solve the problem that XIAO often turns into a brick.

This device has an interesting connector

I think there are 2 markets… those who want to hobby the XIAO and those who want to surface mount on a production board… the question is why not just expose the USB connector tto the outside of the producr… I dont think we have figgured out how best to surface mount solder to the under (pogo) pins on the bottom… I dont think that would be a problem to have Seeed Fusion surface mount a XIAO to a mother/daughter board… i dont know… I dont even know how to use these pins, but i am assuming debug and production software upload…

bricking is def a thing to think about I am thinking of having snap off componants that can pulled off addional optional functionality as in

You have to pay a fee to use the propritary connector?

SWD refers to two different things: a light debugging protocol with clock and data, plus ground; the 2x10 0.05" connector usually used with it.

Flashing the Xiao board through USB often fails, with the board freezing. Using an external debugger solves this issue.

So now, I am using an external debugger also for flashing the board. The external debugger could be a Xiao SAMD turned debugger or, better, a Segger probe.

Segger used to list the Edu mini probe at an affordable price; it is no longer the case. Price went from USD20 to USD60.

The Xiao expansion board provided the pogo pins to make the connections, alas only for some boards, SAMD, nRF52840 and RP2040. The ESP32 requires full JTAG, except the lastest C-series which include the debugger.

I would trade the USB connector on the Xiao boards for a SWD or similar connector. There are various variants of the SWD connector, some with a 3V3 power line and UART RX/TX like the Silicon Labs Simplicity mini connector.

Raspberry Pi has done an excellent job with the debug probe and the fool-proof connector. It would be an opportunity for Seeed to release an affordable debugger probe. Seeed could come with its own connector, for example a 1x6 1mm for 3V3, ground, clock, data, TX and RX.

2 Likes

Hi there,
“you shouldn’t”…

“disclaimer” These are my own opinions , not reflective of any company or user class and may be TLDR for some.
So officially it’s this.

Serial Wire Debug (SWD)

developed by Silicon Labs
https://community.silabs.com › article › serial-wire-deb…
(Silicon Labs Community)

Serial Wire Debug (SWD) is a 2-pin (SWDIO/SWCLK) electrical alternative JTAG interface that has the same JTAG protocol on top. SWD uses an ARM CPU standard …

So The Xiao is unique and if you’re bricking or having issues flashing through USB then “your doing it wrong” :face_with_hand_over_mouth: LOL or there is something else afoot system wise.

I have programmed (flashed)100’s of them with maybe 2 ever having issues and I had to go and use the SWD to recover Worked well. The jlink part is TOO expensive and thus would provide a high barrier to entry and requiring another piece to get going.
Mind you it is for DEBUGGING the code and Instead of changing the Xiao , change or update the Xiao expansion board design (PoGo’s) that works with the ARM and RISC platforms. would be my choice. I like that I need nothing but a GOOD cable to get the code to it. (nRF52840’s BLE and Sense)

Espressif is F’n ing the whole thing up with all the dissimilar chips and pinouts, features and NO Standards, their latest move with the New IDF, while better for them throws anything before under the bus. They are trying hard to unlevel the playing field and making their CHEAP chips and platforms more proprietary than OPEN. So throw the stones at them. I think there stuff is just ok, speed is meh’ BLE and WiFi are not usable concurrently without a lot of hoop jumping, Flash is all over the place with sizes and capabilities. there low power claims and actual are not consistent.

Arduino is great for beginners,“main group” Xiao got integrated well in the framework, despite the 2 (BSP groups) YUC :stuck_out_tongue_closed_eyes: However NO Debugging natively which is BAD, Very bad it’s like a half a loaf when we want and need the whole thing… make a debugger software or plug-in that works with Arduino would be the best solution, as it’s only needed when your flying too close to the sun code development wise… :smile: I love being able to single step my code in PLIO and update var and reg in real time. This makes coding and learning FLY.

read all the threads where most of the issue’s are/is related to above.

I would shift some of Seeed’s engineering to software development to better support the product line to a complete end to end solution, Great hardware backed by solid tools to develop with, weather or not it’s in a new full featured Xiao Expansion board that has functional debugger which is sorely missing. New coder’s would be better served.
for instance, The Nordic PPKII and Dev boards knock it out of the park. the SDK not so much a beginners platform. With PLIO and Xiao along with a JLink and PPKII One can’t beat it for Speed and
thoroughness of testing your designs Hardware and Firmware. Nothing else comes close. The learning curve is less severe if you can read. :nerd_face:

In summary, Don’t change the Xiao change what is missing to fully support it properly.

HTH
GL :slight_smile: PJ :v:

Idea for a live stream, would be an actual “HOW TO” solder the Xiao to PCB’s with attention to the Proper board layout to accommodate the soldering of the bottom pads. Mya tech never fails see the threads. 44 PCB’s and counting not one failure all hand soldered. FYI (OVAL holes)

4 Likes

Seeed may list the potential use cases of the Xiao line.

  1. Arduino makers looking for a modern MCU at an affordable price
  2. Advanced users for MCU on a very compact board easy to solder onto a final design

Then, for each case, evaluate the corresponding scenarios.

For case 1, USB would be fine if the success rate of flashing the board was close to 100%.

For case 2, USB is not used in final design (except when the project relies specifically on USB), hence the option for a SWD or similar connector.

It happens the Raspberry Pi Pico and Pico W provide better value for both examples.

But once Seeed has selected the use case and the scenario, it could consider another form-factor close to the Xiao for the other ones.

1 Like

raspberry pi is not the same as XIAO because it has a whole operating system as overhead and some do not need or want that… just my addition to the discussion

Hi there,
I could agree for Case 2 for sure. If you don’t use USB its then absolutely.
I like the battery charging capability and SWD doesn’t do anything for that nice ability. just too bad it’s not implemented well IMO,
Wider appeal for beginners is hands down USB-C, one cable and no extra tools.
and there is ZERO empirical data showing the flashing isn’t close enough to 100%
too many variables is more than likely why. (OS systems Linux or WIN, IDE’s Arduino, PLIO, SDK’s for nordic and ESP, Serial cables) that’s allot to corral.
RPi is a no go IMO. to big of a turn to take as a better value proposition it is subjective at best.
They have a good foundation and should build on that with better back end support.
Good discussion though for sure. I hope others will chime in too.
TY
GL :slight_smile: PJ
:v:

I want seeed to blaze a trail, not follow another trend, I’m thinking chip shortages RPi has faced and hurt some companies who went all in. one concern I have. :+1:

Also Microsoft is going to take over Linux… Opps… Did I Say That?

To clarify,

The Raspberry Pi Pico runs on the RP2040, a dual-core Cortex-M0+. It has no operating system.

The Xiao I am facing most uploading issues with is the nRF52840. This very forum has many threads about how to unbrick Xiaos, how to use Adafruit bootloader, etc.

I stand corrected… sorry i was mixing up threads

Use when the size of the code is large and you want to fix bugs efficiently.

USB print debugging is convenient because it can be used without the need for additional hardware. However, the code needs to be modified and compiled. Also, it cannot be used in performance-sensitive applications.

In such cases, I debug with J-Link/J-Trace and Ozone. Ozone is a powerful debugger and I use it a lot. And, I also use RTT for print debug. RTT has little effect on performance and pausing the code in the debugger has no side effects.

4 Likes