Task: Testing production software on PC notebook without production unit attached via USB and without changing prodcution software.
Goal: Emulate production device with another PC. The test application runs on the second PC to emulate our device commands/responses.
Challenge: Using a USB bridge cable or other device requires that we can change the PID/VID to look like our device.
Suggestions?
You need a hardware device on the second PC to do this type of emulation.
USB ports on a normal PC are USB host ports. Two such ports cannot be connected with each other directly. USB device (or USB OTG - switchable) ports can be found on programmable smartphones (Android, maybe others) and some developer boards like these. I think you probably need to use a smartphone or developer board rather than ordinary PC as the your USB device emulator.
Related
I'm trying to connect a ToupTek XCAM4K8MPA camera to a Linux Ubuntu 20.04 64-bit computer to use with their provided ToupLite software for microscopy image capturing. The camera comes with a USB 3.0 cable, HDMI cable and USB WLAN adapter.
I have managed to set up the ToupTek ToupLite software (Link to manual, Link to download page) which, as far as I understand, comes with the SDK included. I have then connected the camera via USB 3.0 and HDMI cable to the computer, but ToupLite shows No device as in, the camera is not recognized or connected. I have tested the camera by simply connecting it to a computer monitor via HDMI cable and it works, but for capture I would like it to be connected to a computer and the WLAN or Wi-Fi connection solution is not really a good option.
Perhaps someone has some ideas of what I am missing.
Note: Relevant tags include touptek, touplite, microscopy
I ended up using the WLAN connection. Made a non-changing IP address for the camera and the ToupLite software recognizes that it is on the local network.
I'm playing with Raspberry Pi 3 Model B and Android Things. I was able to configure everything (connect Pi over Ethernet, then reconnect over Wi-Fi with Android.local) and debug the app. However it's not convenient sometimes to debug over Wi-Fi when I travel and I have to change Wi-Fi networks or don't have Wi-Fi connection at all.
I know there is serial debug console, but it seems to be for getting logs and shell commands, not for debugging.
Any chance to have direct debugging over USB cable just like any other Android device like smartphone/tablet?
How to debug Android Things device over USB?
Briefly: you can't do it with Raspberry Pi.
Why not?
Let's look at the pin specification of Raspberry Pi micro USB (J1):
where
1: power
2: D- (data out), not connected
3: D+ (data in), not connected
4: NC, not connected
5: GND (ground)
So summing up the above said: no data pin connection - no adb. You can only power your RPi over micro USB.
Any chance to have direct debugging over USB cable just like any other Android device like smartphone/tablet?
Use another board. In fact, any board that has USB OTG and is supported by Android Things would allow debugging over USB, just as a "regular" smartphone/tablet.
And ironically, by the time of this writing, all the supported hardware platforms would fit except for Raspberry Pi :)
The NXP i.MX7D development board has the same pins as the Raspberry Pi for development, however it uses USB-C for power and ADB.
Highly recommend it over the Raspberry Pi
https://developer.android.com/things/hardware/imx7d.html
(source: android.com)
Another option is to setup Wi-Fi access point on your laptop and allow the Pi to connect to it. I have not tested it but it should work.
This is technical question to check the possibilities of the scenario. Is it possible to use Nokia phone's (Lumia, N9, symbain phone, S40) 3G data connection with a Android tablet pc?
Or any way to use phone's 3G data connection with tablet pc?
I have a unlimited data connection for my phone. But I don't use it that much. So I'm planning to use it with the tablet pc.
yep its possible easily if :
1. your tab is rooted
2. your tab supports usb host mode or otg mode (you could either check it on net or download usb host diagnostics) (just click start diagnostic)
procedure
Downoad ppp widget
configure your apn according to pc suite settings
then plug in your phone via usb on nokia pc suite mode
now wait 10s and click connect
you are now done
(pls switch your wifi off as ppp widget creates virual wifi for your tab)
any inquiries contsct rld0989#gmail.com (don't be rest less I only check my gmail once a day)
Yes, it's possible to use your phone as a modem, connected to the tablet via a USB cable, as long as you have
(1) an APN from your network operator to make a data connection via their network, and
(2) suitable device drivers for the phone. On Windows, smartphones are plug and play, but I don't have any experience using them with Android.
On the tablet, you also need some software to control the modem - something like the Mobile Broadband Connect 3.0 application listed on here
You can write a simple connection app yourself using the Android Telephony Manager.
Alternatively, you could connect manually, using AT commands with a suitable AT command program (in Windows, it would be Hyperterminal). This thread describes a possible equivalent for Android.
Standard AT commands to make a data connection are described in the 3gpp TS27.007 specification.
There are a lot of variations for different manufacturers, but making a simple connect should be possible using the standard commands.
I have an Arduino-compatible board with USB Host Shield. It is connected to an Acer A100 Android tablet running "Ice Cream Sandwich" (Android 4.0.3) with Kernel 2.6.39.4. (The tablet has a USB micro connector and does not support USB HOST mode and therefore cannot connect directly to a USB accessory device.)
This picture shows what I have been able to do successfully (but with my tablet in place of the phone).
http://www.seeedstudio.com/wiki/File:SeeeduinoADK_Setup.jpg
I would like to find an example of using an Android tablet connected to a USB Accessory (such as a keyboard or flash drive) via Arduino.
Connecting the USB accessory to the Arduino's USB micro connector (using an external power supply) does not work.
Can anyone provide me with such an example?
Theoretically it should work, I haven't tried it yet though.
Arduino should act as the middle man and should relay signals both from your tablet and the accessory.
What code are you use?
This is: adk_release_20120606?
And what board are you use SeeeduinoADK?
I use board Seeeduino ADK, but unfortunately I could not make it work in USB accessory mode. My board work in only ADB (MicroBridge mode). See my work example
My tablet is Ainol Aurora with Android version 4.0.4 (CyanogenMod 9)
The rest of my team will make for my application a simple non-standard USB microphone, but until they finish it I will have to emulate it, for integration testing purposes.
Is there any risk in a physical loopback? Yes there is
Will a physical loopback work? Only with a USB bridge
There is any way to create a logical loopback? (MSDN has something about this)
There is any general purpose USB emulator software?
In case there is many options available I'd rather work it .NET/Matlab/Python solutions.
Edit: Proof of concept here
I strongly recommend this project, USB IP. It is a way of connecting USB devices over the network. There is a Windows client.
What this means is, you install the client on your Windows computer.
This device then expects to talk to a USB device connected to a Linux computer, the server:
What you now do, is either create a fake device driver for Linux, that looks like is connected to a physical USB device, but in reality is just logic pretending to be your USB device. There are tutorials for writing USB drivers for Linux. Or you create your own stub driver for the Device Control Manager (see picture above). This stub driver could run on Windows or Linux, it wouldn't matter. It could even run on the same Windows machine which is the USB client.
The DSF USB Loopback Device mentioned in the question itself, would be the same kind of solution as a stub driver for the Device Control Manager, but taking Linux out of the picture altogether.
You can write virtual USB device using QEMU.
You can duplicate already existing device, like the dev-serial.c found in this QEMU repository and change it for your needs.
After you write and compile your USB device you can simply attach it to your VM using the QEMU command line interface.