↓ Archives ↓

Constant Current Dummy Load Revised

I revised my EEVblog inspired constant current dummy load.  I was able to improve the performance under higher currents by shortening up some of the traces on the pcb and adding a couple of components.

ccdl rev2

Revsied Dummy Load

Here is the complete documentation:

Constant Current Dummy Load rev2 Schematic

Constant Current Dummy Load rev2 BOM

Constant Current Dummy Load rev2 Gerbers

As before, I have about ten extra boards which I put together with a complete set of parts for $25.00 if anyone wants to build up their own.


EEVBlog Inspired Constant Current Dummy Load

Many months ago, I watched the EEVBlog posting on building a constant current dummy load.  It seemed like a very useful device to have around, and I planned on building my own, but only got around to it recently.

My version is pretty faithful to the original.  I made a few changes, mainly to decrease cost. For instance, in place of the panel meter, I just put a couple holes where you can insert the leads from a cheap multimeter. I also replaced the pricy multiturn potentiometer with a couple cheap single turn versions which provide a coarse and fine adjustment. (I know Dave hates those!) I think the only performance related change I made was to replace the LM324 op amp with a MCP6004, which has better rail to rail performance.

Here’s a little video of the board, and the schematic and BOM. I have a few PCBs and kit of parts available if you want to build your own. The kit includes PCB and all parts except the 9V battery. Shipping is a flat $5.20 using USPS small priority mail box. I can only ship to customers in the USA with this method.

Constant Current Dummy Load Schematic (PDF)
Constant Current Dummy Load Bill of Materials (PDF)

 

Alternative to udev in openembedded/Angstrom

I use Angstrom on a Gumstix Overo platform, and one of the things that bothers me is the seemingly long boot times.  One of the items that takes awhile is udev startup.  To try to speed things up, I though I would replace udev with busybox’s mdev.

The first thing I did was create a new image recipe based on the omap3-console-image, but with everything stripped out that I didn’t need.  Then I added the line below to my image file. This will override the IMAGE_DEV_MANAGER default value which is defined in the image.bbclass file.

IMAGE_DEV_MANAGER = "busybox-mdev"

What you’ll soon find though is that many packages (R)DEPEND on udev, it’s very hard to build anything these days
without dragging in udev. To satisfy them, I followed an example from the OE mailing list, and changed the busybox recipe to also provide udev and udev-utils.  Edit the busybox.inc file to add:

PROVIDES += "udev"
PROVIDES += "udev-utils"
RPROVIDES_${PN}-mdev += "udev"
RPROVIDES_${PN}-mdev += "udev-utils"

Now if we go to build the image, bitbake will see more than one possible provider for the “udev” package.  To tell it which one I preferred, I edited my local.conf file to add these lines:

PREFERRED_PROVIDER_udev = "busybox"
PREFERRED_PROVIDER_udev-utils = "busybox"

Now if I build my image, everyone will use busybox-mdev instead of udev.

TVP5150 Patch for RidgeRun SDK (BT656)

I finally had a little time to put together the patch for the RR SDK which allows you to use the TVP5150 board in BT.656 mode.  This requires the 1.5 version of the Leopard Board, and the DM355SDK840402 SDK from RidgeRun.

The image quality looks very good.  If you’ve been using the board in generic mode, you may have noticed the DM355 sometimes gets the fields backwards.  With BT.656 mode, embedded sync is used and it clears up any issue with that.  I think the image could still be improved with a real de-interlacing algorithm, but I think that would require resizer support in the RR SDK.

tvp5150-bt656.patch

  • To install the patch, first make sure you RR SDK is configured and builds ok.
  • Then download the patch and place in your kernel/linux-2.6.29/patches directory
  • Then, in the patches directory, edit the “series” file, and place tvp5150-bt656.patch at the end of the series.
  • Next, you can do a “quilt push” command to apply the patch. It should apply cleanly, and you should get a “Now at patch tvp5150-bt656.patch” message at the end.
  • Change to your linux 2.6.29 directory, do a “make menuconfig”, then go
    device drivers -> multimedia devices -> video capture adapters ->
    encoders/decoders and other helper chips -> and select tvp5150 for
    leopard. Unselect the Aptina MT9V113.
  • Go back to the SDK root directory, DM355SDK840402 and rebuild the kernel with a “make kernel”
  • Once that is done, do a “make install” to download the kernel to your Leopard board. You really shouldn’t need to rebuild the filesystem.
  • Power down your Leopard, attach the TVP5150 card, and apply power.
  • To test your install, see the Gstreamer test pipelines in another posting.

TVP5150 Board Schematic

If you’re interested, I’m posting the schematic of the TVP5150 board, as it ships.  Remember that connector J2 is not populated, but you can get the connector from digikey and install it yourself if you’re looking for an easy way to access the UART which appears there.  Resistors R4 and R2 are zero ohm resistors which you can remove if you don’t have a revision 1.5 leopard board.

As before, you can order a tvp5150 board by clicking here.

TVP5150 board schematic

TVP5150 Patch Update

While testing the TVP5150 boards this weekend, I found that I sometimes got video which seemed to be shifting colors. It didn’t seem to be hardware related, so I started investigating the tvp5150 register settings. I’m using the defaults for everything, but I did seem to isolate it down to the color subcarrier PLL. By setting the “Color subcarrier PLL frozen” bit, the problem seemed to go away. So, I’m attaching v2 of the patch for the RR SDK. If you’re interested in the particular change, it’s the tvp5150_init_reg_seq structure in tvp5150_davinci.c file. Here is the new version:

static const struct tvp5150_reg tvp5150_init_reg_seq[] = {
{TOK_WRITE, REG_OPERATION_MODE, 0×01},
{TOK_WRITE, REG_OPERATION_MODE, 0×04},
};

And here is the new patch…
tvp5150_v2.patch

Buy the TVP5150 Board

For those that want to connect an NTSC (or PAL) camera to the Leopard Board, I have a few TVP5150 daughterboards available.  They plug right into the J5 connector, and work with the RidgeRun Leopard Board SDK.  NTSC input is via an RCA connector, and the re is an unpopulated location for a header to mate with the J4 connector on the Leopard which brings the UART connections and 3.3v/GND out to a .1″ header if you need another UART.

TVP5150 PCB

The price is $25, plus $5 flat rate shipping in the USA.  I’m not sure about shipping elsewhere.  So, if you are in the USA and want one (or two or three), just use the button below.  If you’re outside the country, drop me an email and we’ll try to figure out the details.

sorry: sold out right now

TVP5150 Patch for RidgeRun SDK (Generic YCbCr mode)

This patch is for the 840402 release of the Leopard board SDK from RidgeRun.  It configures the DM355 for “generic YCbCr mode”, because there are a couple of signals missing from the 1.4 version Leopard’s J5 connector which would have allowed for a true BT.656 interface.

If you have a Version 1.5 Leopard Board, the extra J5 signals are present, and you should use the BT.656 version of the patch.  This will give you better overall image quality.

tvp5150.patch

  • To install the patch, first make sure you RR SDK is configured and builds ok.
  • Then download the patch and place in your kernel/linux-2.6.29/patches directory
  • Then, in the patches directory, edit the “series” file, and place tvp5150.patch at the end of the series.
  • Next, you can do a “quilt push” command to apply the patch.  It should apply cleanly, and you should get a “Now at patch tvp5150.patch” message at the end.
  • Change to your linux 2.6.29 directory, do a “make menuconfig”, then go
    device drivers -> multimedia devices -> video capture adapters ->
    encoders/decoders and other helper chips -> and select tvp5150 for
    leopard. Unselect the Aptina MT9V113.
  • Go back to the SDK root directory, DM355SDK840402 and rebuild the kernel with a “make kernel”
  • Once that is done, do a “make install” to download the kernel to your Leopard board.  You really shouldn’t need to rebuild the filesystem.
  • Power down your Leopard, attach the TVP5150 card, and apply power.
  • After booting completes, use the command “dmesg | grep tvp5150″ to verify the TVP5150 was identified.  You should see something like:
/ # dmesg | grep tvp5150
[42949374.070000] vpfe-capture vpfe-capture: register slave tvp5150_leopard
[42949374.080000] tvp5150_leopard 1-005c: tvp5150_leopard found at 0xb8 (DaVinciI2C adapter)
[42949374.090000] tvp5150_leopard 1-005c: chip version 0×04 detected
[42949374.090000] vpfe-capture: Current decoder is set to tvp5150_leopard
[42949374.100000] tvp5150_leopard 1-005c: Registered to v4l2 master vpfe-capture!!

To test the board, see the other post with sample Gstreamer pipelines.

Example GStreamer Pipelines

To try out the TVP5150 board, the first thing you need to do is run the /bin/loadmodules.sh script.

Then connect a monitor to the NTSC output of the Leopard, and connect your video source to the RCA input connector of the TVP5150 board.

For a simple loopback, which displays the video source on the Leopards video output, try this pipeline:

fbset -disable; gst-launch -e v4l2src always-copy=false ! dmaiaccel ! TIDmaiVideoSink sync=false displayStd=v4l2 displayDevice=/dev/video2

If you have Darwin Streaming Server running on your Leopard, you can stream pretty decent live video with a pipeline like:

gst-launch v4l2src always-copy=false queue-size=6 ! videorate ! video/x-raw-yuv, format=(fourcc)UYVY, width=720, height=480, framerate=(fraction)15/1 ! dmaiaccel ! priority nice=-15 ! queue ! dmaienc_mpeg4 maxbitrate=3000000 targetbitrate=2000000 ! priority nice=-10 ! queue ! dmaiperf ! priority nice=-16 ! rtpmp4vpay ! udpsink port=5434 &