Merging modern software development with electrons and metal
Random header image... Refresh for more!

Posts from — February 2011

Mouse Alternatives For MCAD

Matt Lombard has a post on his search for a mouse replacement.  I recommend reading it; the post has lots of pictures and good commentary.

I primarily use my computer for software development, browsing, blogging, and such, so my needs are a little different.  I’ve talked about my Kensington Orbit trackball before.

I’m still satisfied with my current desktop setup: IBM Ultranav Thinkpad keyboard and Kensington Orbit trackball; my hand and arm strain is still much reduced, and both input devices work well.

The Ultranav has both a Trackpoint (pointer stick) and trackpad.  I still tend to use the trackball for most pointer moves.  I like the shorter width (less arm movement to get to the trackball), and overall, the feel is good.  However, even though I bought a PS/2 IBM branded Ultranav made by Lenovo, which is supposed to be better than the newer Lenovo USB models, I still find the Thinkpad keyboards to be much better on a Lenovo laptop.  Maybe it’s the extra mass below them; the laptops are >4 lbs, but the standalone keyboard is pretty light.

Sometimes the trackball is awkward, but overall, I’ve adapted pretty well.  I still might get a Kensington Ultimate trackball, since they’re somewhat affordable on eBay, but I’d have to check into the driver situation again (I’ve seen many complaints about their Vista/Win7 drivers), and I’d have to find uses for the extra buttons; in the past, I’ve never used extra buttons.

Although many of Matt’s readers like the Logitech trackballs, I still like the Kensington models better.  Quite a few readers also love the 3D Connexion controllers; sometime I do plan on picking up a Navigator and/or SpacePilot.  Used SpacePilots are available on eBay for reasonable prices, but they’re kind of big; I’d have to be sure I’d use all those extra buttons before I’d buy one.

I still use other setups quite often; I use and like the Lenovo Trackpoints, I often use a Microsoft Bluetooth Notebook Mouse 5000 with my laptop, and I still use mice and trackpads on other computers.

February 25, 2011   No Comments

Thoughts on Automation PCBs

I’ve been very satisfied with using custom Printed Circuit Boards to replace DIN rail break out boards and terminal blocks at work.  However, they aren’t always the best choice.

The advantages include:

  • Much reduced wiring time (especially when used with off the shelf cables).
  • Competitive BOM cost (possibly even less expensive; I haven’t run the numbers).
  • Reduced clutter.
  • Enormous component choice, including all kinds of connectors not available in DIN rail terminal blocks, along with semiconductors, resistors, jumper blocks, etc.
  • Affordable even for small volumes (I’d say starting at 3 boards)

The disadvantages include:

  • Not very flexible — once a PCB is made, it’s hard to change, unlike discrete wiring.  You can add a bit of flexibility by using a number of common PCBs instead of one big, custom PCB (e.g. for 3 axis system, use 1 PCB per axis instead of 1 PCB for 3; then if you need a fourth axis, it’s easy to add another PCB).
  • So PCBs are not a good match for unique machines, or ones that might radically change in unpredictable ways.
  • Using PCB design software takes some expertise and learning.  It’s not that hard (heck, I’ve done quite well using Eagle PCB, and I’m a software guy), but there’s definitely a somewhat scary learning curve both when designing the PCB and getting it manufactured.
    • Other software might be easier than Eagle PCB, especially software integrated with a specific board house.  But any general purpose PCB design software will have a learning curve, because it has to be able to handle so many design possibilities.
  • High voltage and high current take even more expertise.  You can do high current and high voltage on a PCB, but you’ll have to know even more about topics such as creep distances, trace widths, PCB copper amounts, board materials, and thermal dissipation to do it right.
    • So I wouldn’t be making a PCB for a 35kW 480V motor (although it could be done…)
  • Your favorite components might not play well.  One reason I use Panasonic PLCs instead of, say, Siemens’ intriguing S7-1200 is that I can easily make ribbon cables to go from the Panasonic PLC to a custom PCB, but I can’t for the S7-1200 (since it uses terminal blocks).

Another option is to have somebody else design and/or make a custom PCB for you (Wago is one possibility, and I’m sure there are others).  I doubt this approach makes sense for small volumes.  For example, I’ve done some research on getting our PCBs assembled, and prices I’ve seen at our volumes aren’t even close to reasonable.

February 17, 2011   No Comments

Win7-64 Thinks My Card Reader Is Infrared

I like my Emprex CS561 59-in-1 USB card reader; it’s compact, reads almost everything (including SIM cards), and has a built-in USB plug.

But when I plug it into a Windows 7 64-bit system (I’ve tried 2 so far), Win7-64 thinks it is an eHome Infrared Receiver (USBCIR).  The solution:

  1. Go to Device Manager and look under Universal Serial Bus Controllers for the “eHome Infrared Receiver”, right click on it, and select “Update Driver Software”.
  2. Select “Browse my computer for driver software”, press Next.
  3. Select “Let me pick from a list of device drivers on my computer”, press Next.
  4. Win7-64 then comes up with a choice of “eHome Infrared Receiver” or “USB Composite Device”.
  5. Pick “USB Composite Device”, let the drivers install, and you’re done.  It’s worked great for me twice.

Note that this only works for the standard memory slots; if you want to use the SIM card reader, you have to install the Emprex software.

February 15, 2011   1 Comment

The Reality of Serial Bus Speeds

Serial buses and networks such as Ethernet, CAN, USB, and Firewire are popular.   But you can’t just say “I need to transfer 1Mbps, therefore I can use CAN.”  You need to understand a bit about the physical layer and your chosen software layers before you can pick a bus that will work.

All serial buses have some protocol overhead, and software layers add even more.

I’ll take a quick look at CAN:

  • CAN messages can carry between 8 and 64 bits of data.
  • At 1Mbps, the maximum actual throughput is roughly 17543 messages/sec (1 byte data) to 8771 messages/sec (8 byte data) or 140,344 to 561344 bits per second of actual data.
  • CAN does have many good features, like extremely fast arbitration (much faster and more predictable than CMSA/CD Ethernet), and producer/consumer messaging.
  • So CAN is a good choice for a real time network that isn’t transferring a lot of data.  It’s even better if many nodes need to consumer data produced by one node (so the data is only sent once, unlike in a master/slave network where the master has to receive the data and then send it out again to each slave node).
  • On the other hand, it’s not a good fit for a 1M sample/sec 16-bit ADC; high speed USB 2.0 or 100Mbps/1000Mbps Ethernet would be better choices.
  • There’s also a cable length / speed trade off; as the bit rate increases, the maximum cable length (and branch length) decreases.
  • The maximum number of messages gives an idea of what kind of update rates you can realistically see.  For example, a 100 node CAN network could handle a maximum of roughly 175 1-bytes messages or 88 8-byte messages per node per second.  So a 1 msec update rate for all nodes is impossible, but a 10 msec rate might be achievable.

Ethernet has its own set of considerations.  Just a few:

  • Ethernet has significant protocol overhead, especially for small data sizes.  (Summation frame systems such as EtherCAT reduce this, but require non-standard hardware).
  • If you’re using hubs, you have to take collisions into account.
  • If you’re using switches, you have to consider the time the switches add.
  • Ethernet and its typical protocols require a lot of resources; if your product uses an underpowered controller, even if it’s physically on 100BaseT, it might only be able to manage 1Mbps or less.
  • For long distances, the time traveling between nodes can be significant.
  • Higher level protocols such as TCP, ftp, NTFS, etc can add substantial delays and additional overhead along with their added features.

I’m not a USB expert, but I know USB 2.0 can’t deliver actual data at its advertised speed.

February 2, 2011   No Comments