Category — Series
Cool Components VIII: Make Your Own Metal Buttons
At the Design West 2012 / Embedded Systems Conference I had the opportunity to try out a unique technology: Microchip Technology’s mTouch metal over cap buttons. This technology provides the capability to fairly easily create affordable custom non-contact metal buttons.
Since this technology uses capacitive sensing, the buttons are non-contact and should have a long life. However, they’re still very short stroke and thus provide very little mechanical feedback. Microchip’s demo used LED point lights to provide feedback. Microchip’s demo kit currently isn’t available for sale, but they said it was coming sometime, probably for less than $100.
You could use this technology to make ESD-safe buttons. However, since the metal needs to bend a bit, it won’t be as rugged as the more expensive anti-vandal buttons.
I’ll probably buy the demo kit when it comes out, because it’s a cool gadget…
May 1, 2012 No Comments
CANOpen Monitoring and Power Board

CO-RJ45-PWR
I created the CO-RJ45-PWR so that I can easily monitor my RJ45 CANOpen network and, if needed, provide power to CAN_V+.
My Trac site has the details, and this post has the background information.
Since all of my other adapters provide CAN_V+ connections, I doubt I’ll use that capability often. I’ve already used the board several times to investigate CAN buses.
I used this board to try out Phoenix Contact’s PST/PT series of removable terminal blocks. The main reason I used them is the pin-strip header makes a great connecting post for grabber-type oscilloscope probes – but if you want to use discrete wires, just plug in the screw terminal socket.
The PT terminal block sockets are very affordable, and some models, including the one I choose, can be mounted in three different positions.
On the down side, the polarized pin-strip isn’t readily available (so be careful when plugging the socket into the header) and the socket is only available with screw terminals (I prefer spring clamp).
March 29, 2012 No Comments
CANOpen Terminal Block to 2xRJ45 Adapter Board

CO-TB-RJ45
The CO-TB-RJ45 connects a terminal block to 2 RJ45 jacks, with optional, flexible connection to CAN_V+.
My Trac site has the details, and this post has the background information.
I created this board so I could connect anything to my RJ45 CANOpen network. Since I’ve always liked the flexibility of removable terminal blocks, I used them for both the CAN and V+ terminals.
March 27, 2012 No Comments
CANOpen M12 To 2xRJ45 Adapter Board

CO-M12-RJ45 connected to a Festo CPV10-GE-CO-8
The CO-M12-RJ45 converts a standard CANOpen M12 device connector to 2 RJ45 jacks, with an optional, flexible connection to CAN_V+.
My Trac site has the details, and this post has the background information.
I created this board to make it easy to connect my Festo CPV10-GE-CO-8 and my Norgren VM10 pneumatic manifolds to my RJ45 CANOpen network. These manifolds use a 5-pin M12 circular plug connector with type-A polarization for the CANOpen connection. They do not require power on CAN_V+, but I included connections to CAN_V+ in my design in case I need it in the future.
So far I’ve discovered one big issue with the board: the connector is a bulkhead connector. It needs a panel with the proper sized cut-out to mount the socket’s threaded nut which fits on to M12 plug’s threads. The picture above shows the missing locking nut on the board while the power cable’s locking nut is clearly visible on the right.
As far as I can tell, all the right angle PCB M12 socket connectors have the same issue. Right now I’m just letting the M12 socket rest in the M12 plug, but that’s not very secure. If I need a secure setup, I’ll try to rig up some kind of a hack to hold the nut to the board.
March 22, 2012 No Comments
CANOpen Terminal Block Header to 2xRJ45 Adapter Board
The CO-HDR-RJ45 converts a standard CANOpen 5.08mm terminal block header to 2 RJ45 jacks, with optional, flexible connection to CAN_V+.
My Trac site has the details, and this post has the background information.
I created this board to make it easy to connect my Wago 750-337 and Beckhoff BK5150 CANOpen K-bus interfaces to my RJ45 CANOpen network. These interfaces use a 5-pin 5.08 mm terminal block header for the CANOpen connection. They do not require power on CAN_V+, but I included connections to CAN_V+ in my design in case I need it in the future.
So far I’ve discovered one minor issue with the board: the Phoenix Contact inverted header I used does not perfectly fit the Wago header used by the 750-337. I had to break off one tab; if you look at the picture above, you can see that the top Phoenix tab does not line up with the cut-out for the top tab.
I typically use Phoenix Contact terminal blocks over Wago because they are much more readily available from my favorite catalog distributors, Mouser and Digikey.
I also have a Wago 750-338 interface which uses a DB9M connector, but based on my eBay monitoring, I’d say the terminal block models, such as the 750-337, are substantially more popular. If I were buying new, I would use the 750-338 instead of the 750-337 (since I prefer cables over terminal blocks), or more likely the 750-838 (PLC version of the 750-338) since I’ve found that programmable logic + distributed I/O is a great combination.
March 20, 2012 No Comments
CANOpen DB9M to 2xRJ45 Adapter
The CO-DB9-RJ45-2 converts a standard CANOpen DB9M connector to 2 RJ45 jacks, with optional, flexible connection to CAN_V+.
My Trac site has the details, and this post has the background information.
The AMC drive pictured is the reason why this board exists: I have a bunch of DX15C08s and a couple DX60C08′s and wanted to get them running, but they require 9->13VDC on the CAN_V+ line. So I created this adapter to solve that problem with its CAN_V+ connection, and added the RJ45′s because it’s so much easier than trying to daisy-chain DB9s. (I did think about staying withDB9s).
The design is called the -2, because I have a CO-DB9-RJ45-1 mostly designed, which uses ultra low profile RJ45 jacks in a DB9/DB25 gender changer backshell with 2.5mm terminal blocks. The board shape is complicated, and I haven’t had the PCB made yet.
This board shows how it’s hard to get everything right the first time: I put the TB1 terminal block header on the wrong side for the DX15C08 servo drives. Look at the picture and you can see the HD44 cable is right next to the terminal block.
My solution was to replace the pluggable terminal block with a compatible fixed terminal block that doesn’t extend past the PCB board. That works, but it’s still a tight squeeze.
The board is shown with my RJ45 terminator, which is pretty slick and affordable (~$2). I’ll try to document the terminator sometime soon.
March 15, 2012 No Comments
My CANOpen Adapters
I’ve finally create Trac pages for my CANOpen adapters. I will be highlighting each adapter in a blog post, starting with the CO-DB9-RJ45-2.
I created these adapters for two reasons:
- I’ve standardized on RJ45 cables for my CANOpen networks, because daisy-chained RJ45 cables are cheap, simple, and work well. However, many of my CANOpen devices do not use RJ45′s, so I created adapter boards from their connectors to dual RJ45 jacks that are perfect for daisy chaining.
- Some devices require power on CAN_V+ to power their CAN line drivers. Unfortunately, most CAN interfaces do not provide any power, or any way to get power, to the CAN_V+ wire. Also, I need to provide incompatible voltages to different devices. So I added flexible connections for CAN_V+ to my boards.
After using the boards, I’ve found a couple things that could be improved; the details will be covered in the board’s blog post.
Most of the boards use a similar setup for CAN_V+:
- CAN_V+ from the power terminal block (TB1) is always connected to the device’s connector.
- CAN_V+ from TB1 can be connected to the right and/or left RJ45 jack using jumpers.
This setup gives a lot of flexibility: you can power each device that needs CAN_V+ individually, you can power part of the network (left or right), you can power the whole network (left and right), or you can have separate power domains (by not connecting one or both of the jumpers).
If you start doing fancy stuff (such as different CAN_V+ voltages on different network segments), be careful. For example, if you have an AMC DX15 segment (+12V) and a Baldor e100 segment (+24V), and accidentally move the AMC to the Baldor segment, you will fry the AMC’s CAN line drivers.
The CO_RJ45_PWR board is a little different, since it’s in-line. Basically, CAN_V+ from the incoming RJ45 jack (J1) is always connected to the 8-position terminal block (P1), and CAN_V+ from the power terminal block (TB1) can be connected to J1 or J2 (outgoing RJ45 jack) using jumpers.
I had the PCBs made at Gold Phoenix, which is a good choice if you need several boards each of different types. There are many other good PCB fabs. I am not providing my Gerber files, since different PCB manufacturers may require different formats (units, resolution etc); there are plenty of resources on how to create Gerbers from Eagle on the internet. If you can’t figure it out, you can always use a PCB fab house that takes Eagle PCB files directly.
Update 3/31/2012: Here are links to the different boards.
- The CO-DB9-RJ45-2 converts a DB9M CANOpen connector to dual RJ45 jacks.
- The CO-HDR-RJ45 converts a 5-pin, 5.08mm CANOpen terminal block header to dual RJ45 jacks.
- The CO-M12-RJ45 converts a M12 CANOpen connector to dual RJ45 jacks.
- The CO-TB-RJ45 converts a 5-pin terminal block to dual RJ45 jacks.
- The CO-RJ45-PWR provides inline monitoring and access to CAN_V+ for RJ45 networks.
March 13, 2012 No Comments
Programming CANOpen Motion
How do you make a CANOpen motion control system move? Your program creates the desired motions by sending the appropriate commands over the CAN bus using the vendor independent CiA 402 profile.
A CANOpen profile is a standard set of objects to interface to a particular device type, such as inputs, outputs, encoders, or motor drives. A profile that is still being evaluated is called a Draft Standard; eventually it will become a CiA (CAN-in-Automation) standard. So CiA 402 was originally called DS402, and is still often called DS 402.
Most CiA standards are available from the CAN in Automation web site for free by requesting the desired standards. However, CiA 402 is not available. I suspect the reason is that CiA 402 is now part of the IEC 61800-7-201 and IEC 61800-7-301 standards, and thus are only available from the IEC.
I was able to locate and download a copy of the older DS402 standard; there might be a few changes, but it should be good enough for my uses, and I also have the various manufacturers’ guides on how they implemented CiA 402.
Ease of use is one weakness of CANOpen. I’ve been looking through DS 402 and although it may be well designed, it’s not easy to learn. I think more vendors should do what Copley Controls does: provide a much easier to use interface that makes it much faster to get started with their drives.
Another approach is to have a motion controller that controls the CANOpen axes, such as the Schneider LMC (Lexium Motion Controller) series, the Elmo Maestro, and (for Ethernet PowerLink) the Balder NextMove E100. In this case, your program interacts directly with the motion controller instead of the CANOpen drives.
January 21, 2012 2 Comments
XY Table Part 6: Determining Stepper Configuration
Since I couldn’t find a datasheet on my Sanyo Denki stepper, I decided to figure out how the motor was wired myself. There are a variety of sources; PIClist has the best list of methods I found, and RepRap is also worth a look.
If you’re not familiar with stepper motors and their terminology (such as unipolar or bipolar), Wikipedia’s article is a good start. A 4 wire stepper can be used in bipolar mode only, a 5 wire stepper can be used in unipolar mode only, but 6 and 8 wire steppers can be used in either bipolar or unipolar mode.
The exact procedure to use will vary depending on the motor (and its number of leads) and the equipment you have. Since I have an 2 channel oscilloscope, I decided to use it and look at the phase differences between the leads of my Step-Syn 103-771-16.
My Step-Syn is a 5-wire stepper motor so it has one common wire connecting the center-taps of both coils, and four wires connected to the ends of the two coils. The wire colors are black, red, blue, yellow, and orange.
The first step is to find the common wire: the resistance between the common wire and any other wire will be half of the resistance between any other two wires. The resistance between the black wire and the other wires was 130 Ohms; between all the other wires, 260 Ohms. So the black wire is the common.
The next step is to set up the oscilloscope with the black (common) wire connected to the oscilloscope probes’ ground and the two channels connected to any two wires. You then spin the motor and adjust the oscilloscope settings (V/Div, timebase, triggering, etc) until you can capture a good set of data. If the waveforms are 180 degrees out of phase, the wires are from the same coil. If they are 90 degrees out of phase, the wires are from different coils.
If your oscilloscope can be used in XY mode (often used for showing Lissajous patterns), it’s even more obvious: wires from the same phase create a diagonal line while wires from different phases create a circular pattern. My Fluke 196 doesn’t have a real XY mode, but I used a Tek TDS210 to get the pictures below.
If the wires are connected to the same coil, then the other two wires are the other coil. If the wires are connected to different coils, then swap out one wire until you find two wires on the same coil.
Suppose I connect the Step-Syn’s orange and yellow wires to the scope. The scope trace would show they are connected to the same coil; therefore, the other two wires (red and blue) are the other coil. Or, suppose I connect the orange and blue wires to the scope; the trace would show they are connected to different coils, so I would swap out one wire (for example blue for yellow) and try again until I find two wires connected to the same coil.
The procedure would be similar for a 6-wire stepper motor, except you have to find two common wires, but the procedure would be considerably more complex for an 8-wire stepper.
The final part is determining the how to connect the wires to the driver. Basically, connect the coil wires up using your best guess. If you swap wires within a coil or swap the coils you will change the direction of rotation. I’ll give a real world example in a paragraph or two.
When I got ready to connect my Step-Syn motor to my Stepnet I discovered I had a problem: the motor is unipolar only while the Stepnet is bipolar only. The Stepnet manual doesn’t state that (there is no mention of bipolar or unipolar stepper motors), but it became obvious when I looked at the motor connection diagrams in the manual.
Sometimes you can convert a 5-wire motor to a 6-wire by taking the motor apart, cutting the connection between the two center-taps, and then bringing out the second center tap. I did take the case off the Step-Syn, but I didn’t see any obvious way to bring out the sixth wire.
Since I still wanted to test this motor, I decided connect it to a Allegro Microsystems UCN5804 unipolar stepper driver. I connected the black wire, Pin 2, and Pin 7 to +24VDC, orange to Pin 1, yellow to Pin 3, blue to Pin 6, red to Pin 8, and Pin 14 (Direction) is tied to ground. The motor rotated the direction I wanted: clockwise when viewed from the front. Using the UCN5804 datasheet, I determined that in 2-phase drive the wires were energized in the order yellow/red, red/orange, orange/blue, and blue/yellow. In wave mode (1 phase), the wires were energized in the order red, orange, blue, and yellow.
Swap two wires within a coil, for example, yellow and orange. yellow is now connected to Pin 1 and orange is connected to Pin 3. The motor now moves counter-clockwise.
November 30, 2011 No Comments
XY Table Part 5: Finding Information
I don’t have complete information about any of the motors I selected so this post is about how I search for data.
I normally start by googling around. In my experience Google returns better results than Bing for technical searches. I typically start with the manufacturer (Sanyo Denki) or type (“Step-Syn”) and part number, and modify my search approach depending on the results.
If the manufacturer has a good datasheet on their website, googling will typically find it faster than going to their website. Unfortunately, many manufacturers do not provide datasheets for their older, not in production, products.
I recommend reading up on advanced search techniques. Here are some I use frequently with Google:
- Add filetype:pdf to search only PDFs (since datasheets are often PDFs)
- Add site:url to search only within the given URL. For example, adding site:sanyo-denki.com returns results only from within the sanyo-denki.com domain.
- Use quotation marks to search for a complete phrase. Searching for Sanyo Denki will return results that have both words in the page (but not necessarily together), but searching for “Sanyo Denki” will only return pages that has the phrase Sanyo Denki.
- Use a dash to eliminate search results; for example, adding -eBay will skip results with the word eBay in them. -eBay is very handy if a whole bunch eBay sellers are cluttering up your results.
- There are many more, so try searching for posts about how to search…
I also look at the manufacturer’s web site; occasionally the web site’s search box returns results Google can’t find. Sometimes you can find data based on the product line, not the specific part number (which may not appear because there are so many variations; the datasheet just lists the possible options). For example, I received the best results for the Oriental Motor Vexta PH265L-04 by searching their catalog for PH265*.
Let’s look at some searches for the Sanyo Denki 103-771-16:
- Searching for Sanyo Denki 103-771-16 currently brings up 8 results, none of which look useful (and 3 refer back to here!).
- Searching for Sanyo Denki 103-771 brings up a lot more results, but I didn’t find any useful data.
- Now let’s get creative and add the wire colors: Sanyo Denki 103-771 blue red black orange yellow returns interesting looking results. Unfortunately all of the Sanyo Denki PDFs are for newer motors that are wired differently.
So sometimes even Google can’t find what you want; instead, in the next post, I’ll look at how I determined the Sanyo Denki stepper’s connections.
November 29, 2011 No Comments






