Posts

Designing DC-DC converters using TI TPS61200 controller

1.2V to 5V DC_DC converter based on TI TPS61200

1.2V to 5V DC_DC converter based on TI TPS61200

About a year ago, while researching low startup voltage DC-DC converters I ran into Texas Instruments’ TPS61200. This monolithic synchronous rectifier boost converter has several nice features. First, the input voltage range starts at 0.3V; therefore, it’s possible to run the converter from low-voltage source such as single solar cell or supercapacitor. Second, the converter is powerful – up to 1.8A for certain input/output voltage combination. (“Certain” is a key word here – see below for explanation). Another nice feature is the ability to down-regulate the output when Vin exceeds Vout; for example, you can configure the converter to run from single-cell Li-ion/Li-poly battery and output stable 3.3V over the whole 4.2V-2.7V Li-Poly range. In addition to all that, the controller has built-in undervoltage lockout feature – minimum input voltage, below which controller would shut itself off can be set with simple voltage divider. This feature comes handy when rechargeable battery is used as power source. TPS61200 also has pins for enabling/disabling and power-saving mode on/off. Device is manufactured in 2 fixed Vout configurations – 3.3V, 5V, plus adjustable variant. Maximum working input voltage is 5.5V, minimum output voltage for adjustable part is specified at 1.8V.

After much prototyping and testing I came out with a layout that works well. The result can be seen on title picture – Arduino Duemilanove board (running USB keyboard polling sketch ) , USB Host Shield, LCD display and USB keyboard all powered by single 1.2V NiMH AA cell. The circuit that makes it possible can be seen on the left side of the picture connected between the battery and USB B connector, which is used here as 5V power connector to the Arduino.

The run time of this setup from freshly charged 1800ma NiMH cell is 6 hours which makes it quite practical. It should be noted that when input voltage is much lower than output voltage, efficiency suffers ( see figure 8 in the datasheet. 3 NiMH cells in series or single-cell Li-Poly is much better for 5V output, even 4 NiMHs will work if load is light – in down conversion mode power losses in the converter increase and I found that the chip gets very warm with output current of 200ma or more while down converting.


Continue reading Designing DC-DC converters using TI TPS61200 controller

Arduino USB Host Mini – first prototype.

First prototype of USB Host Mini

First prototype of USB Host Mini

This is the status update on Arduino USB Host Mini development, announced 3 weeks ago. I received rev.0 PCBs last Saturday – BatchPCB is faster than ever! I made a test build (see title picture) and after fixing one major and several minor mistakes placed an order for what I’m hoping will be the final pre-production sample.

The prototype was built to sit on top of Arduino Pro Mini to make access to the parts easier during troubleshooting. On the final board USB connector is placed slightly further away from the pins; it will be possible to place Arduino on top of the shield so that the height of the “sandwich” will be less or equal to the height of USB connector.

In 2-3 weeks I’m hoping to finalize the design and start producing the USB Host Mini. Stay tuned!

Oleg.

Controlling robotic arm with Arduino and USB mouse

Many people asked me to post a video showing an arm from inverse kinematics article in action. While making a video, I realized that shots of the arm following a pattern of computer-generated coordinates is going to be less than exciting and decided to add manual control. The video below shows the result. In addition to the video, a HID introductory page has been written describing HID communication basics as well as some simple Arduino code. Enjoy! ( Youtube link, where HD quality video can be selected ).

Arduino sketch written for this video is on gitHub.

Arduino USB Host Mini – initial revision

USB Host mini rev.0

USB Host mini rev.0

This post announces starting of development of new Arduino USB Host Shield variant. There are several projects in the works (thanks, guys for letting me know!), where standard size Arduino board is too big. Since electronics of USB Host Shield is pretty simple, it was decided to shrink the board as much as possible. Here is the first iteration.

The initial revision of USB Host Shield in Mini form factor is shown on title picture, It is intended to be used with Sparkfun’s 3.3V Arduino Pro Mini. Intended applications include digital camera control devices, robots, as well as any other projects where size and weight has to be minimized. The Gerbers was sent to BatchPCB; I’m expecting boards back in couple of weeks. The main goals of this first prototype are manufacturability check as well as checking claims made below.

The Mini Host is simplified version of full-sized shield; only USB and GPIO are available. By default, VBUS is routed to VCC, therefore only self-powered USB devices are expected to function (even though I have at least one USB flash drive which works fine powered from 3.3V VBUS). I also provided extra pads to simplify signal re-routing, however, since there was no place left for jumpers a trace has to be cut instead. The same has been arranged for VBUS – if 5V power is necessary, Arduino Pro Mini/Shield combination can be powered with 5V on RAW pin, the VCC trace cut off VBUS and RAW and VBUS connected.

As soon as first prototype is tested, I will post CAD files and also make boards available at BatchPCB. Stay tuned!

Oleg.

Towards an FT232 Driver for the USB Host Shield- Part 0

FTDI232RL IC on a breakout board

FTDI232RL IC on a breakout board

Based on some discussion on the Arduino Forum, Richard has added this blog entry as work in progress on developing a library to support FTDI Serial port devices on the USB Host Shield. While cautious to publish at this early testing stage, the content here should help parallel developers.

My thoughts last year were that an FT232 driver for the Host Shield was not really useful. It seemed rather reverse to add a USB host plus a USB device to achieve something that can be done with a piece of wire. However USB is coming to be the baseline interface and is now the only interface offered on many serial devices.

USB Shield Hardware
Since my last blog update, Sparkfun have released their own version of the USB Host Shield. Great to have another source of the shield, with good stock at many International Sparkfun distributors. However they did add a couple of problems too:
Sparkfun swapped the RESET and the GPX pins from the original from Oleg. This means the shield will not work with the libraries from Oleg without a modification.
The current Max3421e_constants.h from Oleg has:

/* Arduino pin definitions for USB Host Shield signals. They can be changed here or while calling constructor */
#define MAX_SS 10
#define MAX_INT 9
//#define MAX_GPX 8
#define MAX_RESET 7

These work for the shield from Oleg, and existing published code and libraries without change.

However for the Sparkfun Shield they must be changed in Max3421e_constants.h, or optionally changed when the constructor is called to:


#define MAX_SS 10
#define MAX_INT 9
//#define MAX_GPX 7
#define MAX_RESET 8


Continue reading Towards an FT232 Driver for the USB Host Shield- Part 0

PTPDevinfo in 16K

Blue Arduino USB Host Shield tied to telephoto lens mount

Blue Arduino USB Host Shield tied to telephoto lens mount

Developer Si Li shared his version of PTPDevinfo.pde, which fits into older Aduinos. Si wanted to get PTP device information from Canon EOS 500D, but he only has 16K Seeduino at hand. So he stripped devinfoparser off all unnecessary strings leaving only ones essential for parsing Canon EOS camera device info.

The modified devinfoparser files are available from “Downloads” section.

A reel of ADuM4160 ICs has arrived

A reel of ADuM4160s

A reel of ADuM4160s


I’m pleased to announce that the long wait is finally over – I’m now in possession of a reel (this is 1000 pcs!) of ADuM4160 – the core chip of USB Isolator. I will be shipping back orders today and tomorrow – if you have ordered any of USB Isolator products from me in February, March, or April, and will not have gotten shipping notification by Monday, please contact me.

USB Isolators are back in stock. By popular demand, I also started selling ADuM4160 in single quantities – look in components section of the store.

On a side note, I received an e-mail from a company in Denmark offering ADuM4160-based USB Isolators in “complete” form – sporting a nice looking case and bus-powered supply for the peripheral side. I bought one yesterday to take a look. I’m going to write a review and, if I like it, start reselling it.

Oleg.

Robotic Arm Inverse Kinematics on Arduino

Lynxmotion AL5D robotic arm

Lynxmotion AL5D robotic arm


I’m proud owner of Lynxmotion AL5D robotic arm. The parts kit is of very high quality, and as a result, the arm is very strong and versatile. I wanted my arm to be portable and independent of big computers and all currently available controllers lack flexibility that I needed, therefore I started building my own controller around Arduino platform. This article shows first preliminary result of this work – inverse kinematics code which would be used to position the arm.

In robotics, inverse kinematics is a method to position a tip of some linked stricture in 3D space by calculating joint angles from tip X, Y, and Z coordinates. Much information about the subject exists on the web, for example, this introductory article explains the subject using simple trigonometry.

To move the arm, six servos need to be controlled ( five for the arm without wrist rotate ). Given that large amount of processing time would be spent calculating servo angles, I decided not to drive servos directly from Arduino pins and made simple servo shield using Renbotics schematic and library code. I built only half of the circuit using single 4017 counter – this gives me seven servo control channels, which is plenty.

In addition to the article linked above, I’d like to mention two other resources, which helped me tremendously during code development. First is Micromega Application Note 44, which shows inverse kinematics equations for similar arm. They also have nice video of working arm. It should be noted that gripper of AL5D arm has much simpler geometry, therefore second order polynomial calculations are not necessary. The second one is this Lynxmotion project page with Excel spreadsheet. Many formulas from the spreadsheet were used in my code; I also used the spreadsheet during debugging after modifying arm dimensions.

Below is first working draft of inverse kinematics code. It can be used as-is or transformed into a library. As presented, it shall be used with caution – no boundary check is performed so it is quite easy to inadvertently send the arm flying into your forehead or the control board. The code uses single-precision floating point math, which seems to be adequate for the task.


Continue reading Robotic Arm Inverse Kinematics on Arduino

Magnetic Probe Amplifier. Final board design.

Magnetic probe amplifier connected to external trigger input

Magnetic probe amplifier connected to external trigger input

I made (hopefully) last iteration of magnetic probe amplifier board. Schematic remains the same. Layout, however, is slightly different. First, I made it more narrow to better fit Tektronix 7000-series time base plugins external trigger input, as can be seen on the title picture. Second, the amplified probe output is made via SMx type connector – PCB-mounted SMA and SMB all have the same footprint. I used straight SMB since I have a surplus of Tektronix P6041 cables. The board layout permits soldering right-angle connector here as well. This arrangement is much handier than previous one.

Since publishing initial design I haven’t seen much interest in it, so instead of ordering a bunch of PCBs I made this board available on BatcPCB Marketplace. Schematic and board layout in Eagle 5.x format are also available. I built one board and haven’t found any errors on copper or silkscreen – if you find any, please let me know.

Oleg.

Digital camera control from Arduino-hosted webpage

I found this little video while looking for ideas for my digital camera controller. There is also project description and summary page. Device consists of Arduino board mated with Asynclabs WiShield controlling shutter release of SLR camera via cable release port. Arduino runs TCP/IP stack and Web server while access to pre-focus, time interval and other settings is done via web browser on an iPod. In addition, it is possible to release shutter using signal from proximity sensor or even set conditions based on states of different Arduino pins.

The web interface is well designed – watch this little movie and see it for yourself. There is also a demo page, where you can play with controller functions. The “Adm” page is my favourite. I’m looking forward to see the code, which author is going to publish soon.