MATLAB Answers


Hi/Low analog output to USB

Asked by Naz
on 20 Jan 2013
Latest activity Commented on by Walter Roberson
on 4 Sep 2015


I am trying to use MatLAB script as an on/off switch. In simple words, I wish to set a constant output of ~0V (low) or ~5V (high) at the USB port whenever I need to. How could I do this in a most simple and inexpensive way?

Thank you


3 Answers

Answer by Walter Roberson
on 20 Jan 2013
 Accepted answer

This cannot be done directly with USB. USB is a shared serial bus, and only digital signals can be carried on it. If you were to use USB you would need to have a USB-interfaced device on the other end that decoded the serial commands to turn a switch on or off.

One important question for this purpose is what kind of rate of change do you need for this purpose? Another question is what precision you need in the timing. A third question is how much control you need over the pulse widths.


The devices I'm using do not give pulsed outputs (rectangle waves or pulse trains) unless you tell them to - basically I think you'd have to manually tell it to go high, then go low, then go high, etc. Normally you just set a value and it stays there.

That would certainly be easier than breadboarding in a flip-flop.

on 21 Jan 2013

Walter, Image Analyst: Thank you very much for such an extensive discussion. I greatly appreciate your time. This discussion will be usefull for many people. Regards, Naz

Answer by Image Analyst
on 20 Jan 2013

For $89 or so you can get a USB device that you can read pins from. See


The particular device IA lists has digital I/O but no analog I/O. The device that Naz lists has digital I/O and analog input but no analog output.

MCC has numerous such devices, many of which support analog. I have one: - the USB-3100.

You can find other supported devices here:

I'm only familiar with some of the MCC devices, not the DLP Design or other brands. MCC has excellent free tech support.

It looks like their 1208LS might be suitable: USB, 2 analog outputs of 12 bit resolution, $129.

In terms of effort involved, possibly their device with built-in relays would be easier: USB, 8 SPDT relays, $329. I'm just thinking in terms of the time and effort to put together a relay, mount it on a small breadboard, test it, and so on. A relatively easy lab assignment for an EE student who was provided with parts and testing equipment, but a nuisance for people who do not have those things on-hand or have the relevant experience.

(I think I still remember how to solder, but it would probably take me at least 3/4 hour just to track down a local store that still bothered to stock the parts, now that the days are long gone where RadioShack carried parts like these...)

Answer by Matyas Varga
on 3 Sep 2015

  1 Comment

Price and availability of those appear to be questionable. It appears to me that they are no longer sold by NI, and auction sites list them between $US150 and $US300 plus about $US25 shipment from overseas.

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!