IF2C User Guide

Documentation-style user guide with navigation pulling the articles together for the IF2C.

HDL-0108-IF2C R01 A1 (“IF2C”) #

8-Channel breakout accessory for the (H)DLITE Family of host electronics hardware for ultrasonic non-destructive testing (UT, NDT) in embedded systems.

This particular revision (Ro1 A1) is called out specifically in the title because it’s a first demo-worthy prototype and so several things are likely (and ought) to change in the next revision(s).

Help Articles

CAUTION: This prototype hardware, like many, contains or may carry high voltages. High voltages can be dangerous and lethal, not to mention damaging to electronics and other things when not properly treated. Know what you are doing. Ask questions.

Overview of the Hardware

What is it?: 8-Channel UT breakout accessory board (backward-) compatible with the (H)DLITE family of boards. It includes single-cell Lithium-ion (polymer) chemistry power management. BTW, whether this battery chemistry and capacity are right for your application is up to you. These things depend heavily on use case. Easy to rev for a new use-case.

The IF2C is designed to allow a combo of right-angle and edge-connected-straight connections so that everything fits into something like a cylinder if you wanted to make it so.

BTW, the flagship hardware in this application series, the DL0100A1, was also solar- and battery-ready out of the box for compact stand alone installations. Here, in the IF2C however, the battery chemistry and cell count is pre-defined simply, as a hands-on test and R&D platform. The solar charging capability has been removed from this model, and is easy to re-implement in a next revision.

As with all the (H)DLITE (DL) family members, this board is highly configurable. Really. By modifying various build options (DNPs, or change component values) you can play with all sorts of things. And by varying the firmware and HOST platform config, settings, comms choices, comms configuration, and firmware, you can also play with a bunch of other use-cases.

It is a conversation.

For signal integrity purposes, it’s probably a good match for being hosted by the DL012GXN (the “HOST”). The GXN is quieter and optimized for cross-channel (bulk wave, RMS, etc.) detection and monitoring scenarios. With the IF2C mounted on this HOST, things get a bit noiser than the GXN alone, but probably a better bet than than the “G” or the DL0100A1 (try them!), just in terms of signal quality.

For exploring firmware development to optimize power envelopes, including more control over the pulsing (Tx) voltage, the DL0102G (“G”) model and/or the DL0100A1 model are perhaps better HOSTS for R&D.

How-To: Stuff you’ll want to know and do

This prototype, the IF2C, came about to test a form factor, to demo a few proofs of concept and start gathering info to drive true testing of “sit-in-the-field-and-wait” battery (without solar) options as well as move several key functional blocks to next gen components and integration.

This prototype also applies to the hardware world a bit of the combo of software development and hacker-maker-space mottos such as (1) test early and often, (2) increment, and (3) favor action over [excessive] deliberation. Yet, it’s sufficiently capable and interesting enough to release as a play-time prototype.

IF2C: Quick Start #

The IF2C and GXN board-pair package has shipped with updated firmware on the GXN to handle the command set on the IF2C. Your UT software would need to be updated to speak these extra commands. In the meantime, you can use a serial port program to send those few extra commands first (as needed) and then switch over to your UT software.

Materials (Get Stuff Ready)

  1. Battery: Single-cell Lithium-ion polymer with JST-PH connector: See this Digikey search.
    1. “Wait, I don’t like those JST-PHs…” sure, yep, you can populate the screw terminal block component with this TE 282834-2 Part or the general purpose 1×2 0.100″ male header or of course solder wires to your favorite in-line etc.
    2. Watch for the little “+”s on the PCB in silkscreen (do they really use silk anymore?). The polarity of the JST-PH should match generally prototyping style JST implementations of battery polarity.
  2. Jumper wire to bring +5VDC from the IF2C to the HOST. Perhaps included in your shipment. Perhaps you want to rework this and wire it to your liking.
  3. USB cable ending in a Mini-B for charging only (not data at this point).
  4. HOST board with comms module of choice, configured to your taste and needs.
  5. SMA-SMA cables, at least 2, short ones – these are just board-to-board jumpers. Shorter cable = less inductance etc.
  6. Transducers with SMA cable terminations, at least one.
  7. Maybe an SMA-MMCX cable so you can test the MMCX connector(s) on the IF2C.
  8. Maybe your favorite serial port terminal program (CoolTerm, HyperTerm, whatever it is) so you can issue commands directly, if the UT software has not yet been updated to handle the IF2C commands.

Steps to Assemble and Power Up

  1. Choose your HOST board (here, if referenced, the host is a DL0102GXN)
  2. Know what your HOST board configuration and firmware status is.
    1. See IF2C/Host comms options
    2. For example: are you using a socketed radio (XBee (TM?) style) that controls the HOST main power with a GPIO pin? Is the jumper set correctly?
    3. Are you using firmware that has been updated to work with the IF2C command set?
    4. Here, we assume you’re using the firmware that shipped on a demo GXN board that integrates the API for the IF2C. But that your UT software doesn’t yet supported the automated use of the same API.
  3. STACK! The IF2C can be stacked on top or underneath the HOST board. They both work. However, so far at the bench here, stacking with the IF2C on the bottom gives better noise performance when hosted by a DL0102G(XN) due to various switchers etc. on the HOST that create some (electro)magnetic storms under the IF2C.
    1. Use standoffs/spacers. The spacing is slightly greater with the HOST on top.
    2. The GPIO 2×12 header is what stacks. You’ll see the 3x screw mount holes line up too. One is Southwest (SW) and the other is Southeast (SE) and the 3rd is oddly placed in the Northish area under in the radio/multi-comms footprint.
    3. The flip side to the stacking order is that the GXN (R01 A1) as a HOST can only be programmed via its TAG-CONNECT interface when it is separate or stacked on the bottom. By design.
  4. Connect the IF2C power to the HOST:
    1. The +5VDC from the IF2C goes to the +VSYSIN terminal on the HOST. Ground is already connected at a single point via the GPIO stacking header.

Steps to Connect Signals and Transducers

  1. Connect the HOST channel for Tx to the XPULSE_IN connector which is on the NW corner of the board, a vertically-oriented surface mount SMA connector, left-most. If your host is the DL0102GXN, use Chan 1 as the Tx signal (this is your only option).
  2. Connect the HOST channel for Rx from the IF2C (Chan 2 on the GXN) to XRX_OUT_BUF (South-central) on the IF2C. You could alternately try connecting to the XFX_OUT (non-buffered output). These are the right-angle (R/A) through-hole (TH) SMAs on the board. Be careful not to zap components under the SMA barrel area.
  3. Connect your transducer(s) to whatever channel(s) you want to on the IF2C. Four channels, starting with Chan 1 at the top (North) centerish, are numbered in increasing channel number moving Westward. Chans 1 – 4 are the surface mount (SMD) SMA straight connectors. Chans 5-8 are numbered in increasing order going from North to South along the West edge of the board. These are the edge-launch SMAs.

Steps to Power Up and Talk to the Board(s)

  1. Power Up! Plug in the battery (to the board, not to an AC outlet or something like that). That just turned things on. Assuming the battery was reasonably charged.
  2. Have your USB-Mini-B cable handy for charging. Maybe plug that in. A standard USB port is fine. As shipped, the charge current is limited acceptably for use by a standard USB port.
  3. Use your UT software to check that you can talk to the HOST, and/or that your comms module is configured correctly, etc. Or use a serial terminal program (again, maybe CoolTerm? that’s what’s used here) to send some commands.
    1. WAIT! First command didn’t work? The default firmware that ships on the HOST GXN now contains a sleep command with a 1-minute timeout from active operation (comms) until sleep. So, just send the command twice. Your UT software probably needs to be updated to work with a sleeping HOST.
  4. With updated firmware, the HOST receives all commands and forwards IF2C commands as needed.

Example data acquisition sequence, step by step.

IF2C: Example Data Acquisition Sequence #

For IF2C as of this writing (Feb 2019), demo of sending commands while you’re waiting for the UT software package to be updated, so you can play now.

Tools used here: DL0102GXN, IF2C, XBee DM 2.4GHz radio on the HOST (not sleeping for these tests), another of the same radio model in a USB dongle at the PC, CoolTerm and UT Software in some legacy version. This is on a Mac OS X. You could use a USB-Serial cable (3.3V TTL) to connect too of course.

Assumptions: HOST and IF2C are appropriately interconnected and basic communications and power scheme are set up and functional. You know how to set up your serial terminal software and connect and disconnect. Comms to the HOST are working. Including: UT software is set up to talk using the comms at hand.

Example use-case:

Same-channel case: Transmit (Tx) on Channel 1, Receive (Rx) on Channel 1, Rx Gain of 8

Default serial options

Assuming default firmware baud rate is intact

Connect to the serial port and set up the IF2C:

Use Connection => Send String… and select “Hex” mode. Send each command (5-byte packet) one at a time. “DB” means this is an IF2C command. The commands for this example are in the table below.

But first, NOTE: The default firmware on the GXN as shipped includes a SLEEP command with a 1-minute timeout from the last active comms until sleeping. If your first command doesn’t get a reply from the HOST GXN, send a second command. The first command woke it up, and the second will get processed correctly. If the second command doesn’t return a reply, something else is going on. There are ways to work gracefully and planfully with this in updated UT software. More about SLEEP is here.

1. Set all Tx channels to OFF 53 DB 05 00 50
2. Set Tx channel 1 to ON = transmit 53 DB 01 01 50
3. Set Rx channel to 1 53 DB 10 01 50
Sending the first command
Look for the response “IF2C COMMAND OK”. View in HEX mode is selected.

All commands sent:

Disconnect from serial port

IMPORTANT: With channels set up, now DISCONNECT from the serial port in the terminal program so that the UT software can use it.

Grayed out disconnect option means we are disconnected

Use Send Settings and PAC in your UT Software

When using the HOST/IF2C pair, the Tx and Rx Chans are always different. For the GXN, Ch 1 is the Tx channel, and Ch 2 is the Rx channel. Enter the remaining settings as needed (Rx gain, delay). Tx gain has no meaning for a GXN, but does have meaning on a “G” or the DL0100A1

Set the channels correctly and the PAC settings too

NOTE: The Rx channel and Tx channel in your UT software will probably always stay the same. They are separate and different from the IF2C channel settings.

Perhaps you will see something lovely:

Summary

  1. Serial program: Connect/Open serial port and send commands to set up your channels for Tx/Rx on the IF2C.
  2. Serial program: Disconnect/Close serial port.
  3. UT Software: Set Rx Chan 2 and Tx Chan 1 and keep them that way, regardless of the IF2C channels. Assuming that’s where you’ve connected your Tx/Rx signals on the HOST board.
  4. UT Software: Send Settings and PAC.

Cross-Channel/Bulk Wave/RMS Acquisition Example Modification Notes

Use the same procedure as above. Just modify the Rx channel command to listen on a different channel, presumably a channel on which you have your listening transducer connected! Command sequence becomes:

1. Set all Tx channels to OFF 53 DB 05 00 50
2. Set Tx channel 1 to ON = transmit 53 DB 01 01 50
3. Set Rx channel to 5 53 DB 10 05 50
Rx gain at 8, Rx delay 10. GXN/IF2C. Tx:1, Rx:5. 2 composite XDs mounted 2″ from each other on the same face, about 1.5″ from the plate edges on two side. 0.5″ steel. You can see some cross talk artifacts early, but then on the right half of the waveform you start to see the echoes propagating into the receiving XD’s domain. Regarding crosstalk: this is MUCH (-40dB) less than on the previous DLITE Family boards (whose primary design use case corresponded to its performance). Here you can actually see the propagating echoes this early in the waveform. They continue to increase in amplitude. Using the GXN board alone generated much better signal quality for this application (gain and signal to noise). The pair together (GXN/IF2C) here shows improved functionality in some regards as compared with previous gen boards, though as well, an early prototype stage of development.
Rx gain 15, Rx delay 40. The rest is the same as above. The sharp peaks are spaced 0.5″ in time-converted-to-space.