Electronic – Wireless SWD interface

microprocessorprogrammingstm32usbwireless

Is it possible to have a wireless SWD interface with a simple Data and clock line like the cheap STM32 ST-Link clones.

My initial, and flawed, idea was that I would have an ST-link plugged into the USB port of my computer and on the Data and clock lines that would normally go to the target MCU i would build something that just monitors the state of the data and clock pin and send its over wireless to a receiver which in turn is plugged into the MCU and changed the data and clock lines accordingly.

This idea may have many flaws but the main one I see is that if I am just relaying to the target the pin changes I have no idea if the Host is asking the target something and the target has to take over and relay information, at which point I need to check the state of target pins and relay that back to the host. So in other words i need to have in depth knowledge of the protocol and not simply relay pin changes back and forth??

Unless there is a simple way of figuring out which way the data should be going, like an extended clock signal or something… I do not know the protocol well enough.

This idea stemmed from wireless transmitting serial data which is easy, but anything else gets a bit more complex. Also stems from a product that I just saw that does the same but uses a Wifi connection to debug and program.

So the question boil down to is it possible the way I am describing of just checking pin states and transmitting that and having it mimicked on the other end or not?

Best Answer

There won't be an easy solution to your problem except for the obvious things like using a wireless USB hub (even these don't work too well for some things, I tried running a sensor suite for real time data collection and wireless usb has some failings and connection problems).

The SWD would be difficult to transmit over wireless, since it's a two wire bus and bi-directional, this means that a wireless "bridge" would have to have some micro controllers that could talk to each other at a much higher rate than the SWD bus. Wireless modules are available for SPI, but not for I2C.

The easiest thing to do would be to run a raspberri pi or some other computer with GDB or this module that uses a GDB server with wifi.