USB programming

A quickie on USB Endpoints

Endpoints are essentially the USB addresses that USB data is sent to or from. Now, here is the trick. The transfer direction naming convention is a bit unintuitive. Contrary to — at least — what I imagined, an IN Endpoint will transfer USB data from the USB device to the host PC, while an OUT Endpoint […]

IOUserClient and IOExternalMethod

While developing the OS X driver for my Agilent DSO-X 2002A oscilloscope, I ran into a topic that I found to be poorly documented. It is about interaction with a device driver. There are several ways to communicate with a device driver from client space (the application). One is by modifying driver properties. This method requires […]

FTDI Chip Utilities

I was struggling for some time to make my Mac communicate via bulk endpoints with an Arduino. It is part of a larger project of an USB-controlled Lab PSU that I am currently in prototype stage. Part of these problems solved when I finally realized that you cannot use Arduino serial ports to mimic USB […]

Changing FTDI descriptors

I was struggling for some time to make my Mac communicate by USB with Arduino. It is part of a larger project of an USB-controlled Lab PSU that I am currently in prototype stage. Part of these problems solved when I finally realized that you cannot use an Arduino as an USB controller simply because […]