Member Since: September 26, 2009

Country: United States



I was an Electrical Engineering student at Purdue University. Now I’m a software engineer at Dwyer Instruments, Inc.


Software Engineer


Dwyer Instruments, Inc.; American Scientific Affiliation

Spoken Languages


Programming Languages

ANSI C, Assembly, C#


Purdue University

  • Cool use of a PID controller! If anyone is interested, there is an Arduino PID library, as well as an open-source PID controller that uses it. The controller doesn’t have many of the advanced features of a commercial controller, but it’s got all the basics, including auto-tuning.

    (I work for a company that manufactures PID controllers, so this post grabbed my attention.)

  • So I ran an experiment with a Breakout Board for FT232RL USB to Serial:

    I used FTDI’s FT_Prog utility to reprogram the PID to 0x0000. After unplugging and replugging it in, Windows could not find a driver for it. Bricked.

    Then I fired up the Windows Device Manager. After right-clicking on the bricked device, I chose “Update Driver Software” and then “Browse my computer for driver software” and then “Let me pick from a list of device drivers on my computer.” I then get a list of device types, and chose “Universal Serial Bus controllers.” Choosing “FTDI” as the manufacturer, I saw different FTDI drivers (and possibly driver versions?) to choose from. I chose “USB Serial Converter Version: [1/27/2014].” Then I agreed to a scary-sounding Windows warning.

    My computer froze after that (because of the driver install???), but after a restart, the driver was installed, and I used FT_Prog to reset the PID to 0x6001.

    Not sure if that would work with a counterfeit chip, and I also don’t appear to have the latest FTDI driver installed. But maybe this is an option for unbricking?

  • I love the “Toddler Proxy Object.” Very cool project!

  • Amazing! Good to see two companies work together. Also, I love the idea of an open-source multimeter!

  • Fifthed. A 16-bit ADC would be a nice addition to Sparkfun’s catalog.

  • It is very dangerous to touch any high-voltage wire. Never use the back, or front, of your hand to test for a live wire. Instead of your body, use a multimeter (and make sure it’s rated for the type of voltages you’re working with).

    Rules (1), (2), and (3) are really good though.

  • Kudos to you for replying to a two-year old comment! I meant my remarks as sort of a clarification to others who read comments (and didn’t realize there was a customer involved who would dictate communication methods). Perhaps you’re right about the jumper.

  • Most commercial USB-to-RS-485 adapters are built with the /RE and DE connected, since RS-485 is half-duplex (you can either send or receive, but never both at the same time). This allows a single pin of a microcontroller (or the TXDEN pin of an FTDI chip) to control both receive and transmit enables at the same time. Wiring the adapter so both the transmitter and receiver are enabled at the same time will cause any characters transmitted to be “echoed” back, which is only desirable for custom applications where software can distinguish between an echo and a response from another device.

    If bus contention is an issue, try using a protocol where each device has a unique address, a “master” device transmits to the other “slave” devices, and then each slave transmits after a fixed time interval multiplied by their address…so no one talks at the same time. If you truly need full duplex communication, consider using two RS-485 transceivers (and four wires).

  • You can power this pump (or any motor) with an arduino and a transistor or relay. Sparkfun’s tutorials should cover that.

    If you hook this pump to a sealed container, it will produce varying pressure by varying the time that it is on. If you hook this pump to a leaky container, it will produce varying pressure by varying the speed of the pump’s motor. Use pulse-width modulation to change the pump’s speed. Do not use pulse-width modulation with a mechanical relay, or the relay will break.

    To regulate the pressure, use a pressure sensor to tell the arduino when to turn the pump on or off. If you want to be accurate, try to find a sealed container, and pressurize it using the “leaky” method. Use the “sealed” method to fill a balloon or in cases where the actual pressure really doesn’t matter.

  • If you hook this pump to a sealed container, it will produce varying pressure by varying the time that voltage is applied to it. Placing too low (or too high) of a voltage on any motor, including a pump, may damage it.

    However, you can also hook this pump to a leaky container, and it will produce varying pressure by varying the speed of the pump’s motor. You can use PWM (pulse-width modulation) of the voltage to change the pump’s speed (an arduino has PWM libraries).

Temperature Chamber

adamj537 7 items

Parts to build a really small temperature chamber for experiment…