I have a peculiar question.
The case is that I have a TV that can use as source a USB flash drive for playing movies.
Do you think it would be possible to directly connect a PC and the TV USB to USB and using some software interface to determine the PC to act like a flash drive.
I think it can be done with a hardware driver, but I'm wondering if it can be done without that.
No, you can't, not even by writing a new driver.
A flash drive is a USB device, but your computer has only USB host ports. There's different circuitry needed in a device vs. a host (there are circuits that can do both, called USB on-the-go, but those are only found in peripherals).
Actually, you can - kind of.
http://www.eye.fi
This is a special adapter with a Wi-Fi adapter built in that allows you to connect to a computer (or the Internet).
Not quite what you asked but the effect is similar.
Related
Is it possible to send an ASCII code on an external device through USB port using IOS API? I assume that it is possible through bluetooth connection, but I'm not sure through USB connector. Any thoughts?
I would appreciate if someone could put me in the right direction.
Thanking you in advance
That largely depends on the level of sophistication of this "external device". If this external device is just a bare metal embedded device without some sort of operating system you definitely need MFI.
Otherwise, you can run a usbmuxd server (e.g. on Raspberry PI with Linux) to establish a connection via USB. Usbmuxd is basically the technology that Apple uses to communicate between iOS devices and Desktop apps such as iTunes or Xcode. And yes, it is App Store compliant, e.g., Duet Display uses this approach to make an iPad a secondary display for your Desktop via USB.
There are several open source libraries that provide a high level API, e.g., PeerTalk or DarkLightning.
This app promises to turn your iOS device into a second monitor and uses the standard USB cable to connect to the computer, as opposed to the network which all other similar apps use.
Back when I heard about it, it wasn't yet available so I thought it was a scam. To my surprise, they released the app and it actually works as described.
How does it work ? As far as I know there are no APIs to drive the USB port in iOS, and the computer connected via USB through the standard charging/syncing cable doesn't count as an MFI accessory.
Note that they provide the server software (the one that installs on the Mac and streams the desktop to the device) on their download page for free, reverse-engineering it could shed some light on this but I unfortunately don't have the skills for that.
Dean told about it on his blog.
Duet uses Peertalk, an open source library allowing to pass TCP connections through the USB connection without being part of the MFI program.
The information, code and tools to accomplish generic USB port communication is available to those who join the Apple MFi program. You have to do the paperwork and get licensed by Apple.
http://developer.apple.com/programs/mfi/
The libraries necessary are included in the app and then the usual streaming libraries and code do the rest.
I want to interface my printer with my stm32F407VGT6 board, and I don't know which usb driver library to choose (OTG/DEVICE/HOST).
I want to send / receive microcontroller commands to the printer.
thank you in advance :).
You can either use the USB host library, or the OTG (On The Go) library which allows you to be host or device. You should also take care that you are using the right library for your chip.
I am currently running a robotic's project using an Hokuyo (URG-04LX-UG01 - http://www.hokuyo-aut.jp/02sensor/07scanner/urg_04lx_ug01.html). This one is plugged to my computer using USB. Although it creates the port "/dev/ttyACM0" when I plug it, I can't connect to it using the associated library (serial connection error). Until here, nothing's strange, bugs or misprogramming happens but here is my problem :
When I plug the hokuyo to an USB HUB, which is also plugged to my computer, I can connect to it and everything works perfectly.
My laptop is a samsung 900x3c running Linux Mint 15.
Do you know what an USB HUB changes in the USB communication ?
Is there a link with my laptop ? (I used to face the same problem using an ARM-Based embedded computer)
Is it possible to fix the issue without using any hardware solution ?
If it's not, is there anything more compact than an USB HUB which could fix it ?
Thanks !
Is your USB-HUB powered from external power adapter? URG-04LX-UG01 seems to consume 2,5W/5V=0,5A. This is limit for USB. Laptop USB ports are not so powerful and if device consumes a little bit more than max, then they just cut the power.
Update
The device is USB 2.0 Full Speed. I've seen USB controller, that had problems with USB 1.0 or USB 2.0 devices. Hub presents itself as USB 2.0 High Speed and handles USB 2.0 Full Speed transparently for the Laptops USB controller. Do you have another Laptop/PC to check this?
I'm kind of late on my feedback for that issue, but better late then never so :
I've been able to determine that the whole issue came from my USB cable. Somehow there was an electrical issue in that cable and the computer-or the hokuyo- was not able to properly communicate through it. I think that the USB HUB was somehow able to correct theses electrical issues.
Anyway, problem solved !
I'm looking into the iOS sdk for examples of the ExternalAccessory framework to use the iphone/ipad as an USB device that can be plugged into a PC or Mac and present as external device (like a midi controller or something else)
The App i want to create requires connecting to a host (PC or Mac) the iphone via USB or bluetooth and present to the host a functionality. How can i implement this?
You'll probably have an easier time connecting via WiFi. You need to be part of the Apple Made for iPhone program, which is not easy to get into, to use Bluetooth or the dock connector to talk to peripherals. There's no such restriction on the use of WiFi. Also, you'll find a lot more helpful examples of connecting via WiFi on the web.
CoreMIDI is the appropriate API for emulating a MIDI device, which may be possible over USB using Apples Camera Connection kit.