Merging modern software development with electrons and metal

Random header image... Refresh for more!

New: FactorySwBlog on Instagram

I’ve setup a factoryswblog account on Instagram.

My primary goal is still to provide unique, longer form content; I’m still not interested in participating in real time online arguments (been there, done that, too old for that now).

However, creating new posts typically takes a lot of time, so my plan is for the Instagram account to provide more frequent updates.  It’ll probably be more biased towards my personal interests such as pens, but I will try to include a mix of topics.

Companion Site Summary

I now have four companion sites.  I am still figuring out what works best in what format.  Also, by the summer I hope to revise this blog’s look a bit – I think it’s a little too busy, and I want to add an Instagram widget.  The sites are:

  • The trac wiki and repository viewer.  I’m using it for directories, reference information, and repository viewer.  Sometime not very soon, I will look at moving it to Redmine, since trac’s development has been pretty slow (and in my experience, it’s a pain to upgrade).
  • The subversion repository.  It holds my PCB design files and source code.  I may eventually move it to git.
  • My Youtube channel for videos.  It currently only has 1 video, but I have a few more planned.  Note that if your workplace has blocked Youtube, let me know.  If blocking Youtube is a significant problem, I’ll look for alternatives.
  • Finally, of course, my brand new Instagram account for more frequent updates with photos and a bit of text.

January 30, 2016   No Comments

Best Fieldbus For Conveyors

In the Beginning: Cleanroom Conveyors

In the past few years, I’ve only worked on small systems.  But in the early days of my automation career, over 15 years ago, I was involved in a clean room conveyor system that read, labelled, and sorted disk cassettes.  Since I was a young pup in those days, I had absolutely no input on electrical or mechanical component selection.

The system featured a conveyor with various gates, pushers, barcode readers, labelers, photo sensors, an Omron PLC, and a PC to control everything.  All the I/O was hardwired to the PLC.  Since it was in a cleanroom, I got used to bunny suits – and quickly learned that if you want to type in a cleanroom, you need to put on the tightest gloves that won’t break.

We did get the system working reliably after various adventures such as blowing a PLC I/O module (that wasn’t me!) and reconfiguring the conveyor.

Reconfiguring the conveyor meant moving gates and sensors around. I still remember how much work it took: since all the sensors were hardwired, we had basically had to re-do the wiring when everything was changed.

So how could I wire the conveyor electronics so change isn’t painful?

Two Example Situations

Let’s make up a couple of likely examples, and look at s0me possible solutions:

Scenario 1

  • We have a conveyor gate and bypass that has four photo-electric sensors and four outputs (say, to 3 pneumatic solenoids and 1 barcode reader trigger) that have to be moved.
  • It is currently 20 feet from the PLC, and needs to be moved 10 feet down the conveyor (so it will be 30 feet away).

In all cases, the sensors and pneumatics will have to be moved; normally these are mounted on rails or slots on the conveyor and should be easy to move.  But the cables can’t be moved as quickly.

Scenario 2

  • Oops, we forget we needed to add 2 extra photo-electric (PE) sensors, 15 feet from the PLC.

Use Hardwired Cables

If we stay with hard wired cables, there are a couple ways we could solve Scenario 1:

  1. Remove all the 8 20 foot cables and replace them with 8 30 foot cables (that’s a lot of waste and wasted work, ugh!)
  2. Splice 10 extra feet onto all 8 cables to make them longer (yuck!)
  3. Add connectors and add another 10 foot extension cable to all 8 cables, or if the cables already have connectors, add another 10 foot extension to all 8 cables.  This solution isn’t so horrible, except we have to do it 8 times, and connectors, while often necessary, aren’t all goodness:  they add another potential failure point (corrosion, operator error, etc).

My memory is hazy at this point, but I’m sure we didn’t use standard cables (such as M12 or M8) and thus used solution 1 or 2…

For Scenario 2, we simply run two more cables from the PLC to the input sensors.

Use Multi-Port Junction Boxes

One possibility would be to use multi-port junction boxes, available from  Automation Direct, ifm, Balluff, Lumberg, Turk, and many others.  These boxes have standard M8 or M12 circular connectors for sensors and actuators, and then run all the signals back, over one cable, to the controller.  The big advantage is fewer cables: a 8-input box will need only one cable, instead of eight.

I’ll assume I can get an eight port junction box that will work with 4 input and 4 outputs.  So for Scenario 1, moving the wiring requires moving the junction box, and adding one 10 foot extension cable – a lot easier than dealing with 8 cables!

For Scenario 2, if there’s a junction box nearby with 2 spare inputs, then we can connect the PE sensors to it; otherwise we have to add a junction box at 15 feet, connect both sensors to it, and run the box’s cable back to the PLC.

Overall, using junction boxes is a big win: although it has added a some extra cost, it’s already saved us a lot in labor.  Another plus: because the junction box just collects wires together, our PLC’s setup doesn’t have to change at all.

Use A Fieldbus (CANOpen)

Another approach is to use a fieldbus or industrial Ethernet.  I’ll use CANOpen here, because that’s what I know best, something like these IP6x products available from Schneider, Phoenix, Beckhoff, etc.  I will assume that the CAN network uses M12 daisy-chained cables, covering the whole length of the conveyor, while each fieldbus box will have a separate M12 power cable.

So for Scenario 1, the move will require moving the CANOpen box, adding an adapter to connect the existing cables together (replace the box’s connection between cables), and adding an extra cable at the box’s new location to connect to the next CANOpen box.  The power cable to the CANOpen box will have to be extended by 10 feet (e.g. add an extension cable).

For Scenario 2, if there is a CANOpen box nearby with 2 spare inputs, then we can connect the PE sensors to it; otherwise, we have to add a CANopen box at 15 feet, add another CANOpen cable to get to the next CANOpen box, and run a power cable to the new box.

We will also have to make sure the PLC can talk to CANOpen, by using a PLC with CANOpen built-in or adding a gateway.

Compared to hard wiring, the cost is significantly more (due to the cost of the CANOpen gateway and I/O boxes), our PLC has to change (to talk to CANOpen) but changes are much easier.

Compared to using Junction Boxes, the cost is more, the PLC has to change more, but there is more flexibility (easier to add I/O, and support for more types of I/O).

Use The AS-i Fieldbus

AS-i gets its own section because of its unique cabling.  AS-i components are available from a wide variety of companies including Siemens, ifm, IDEC, and Festo.

I will assume an 4-in/4-out AS-i fieldbus box, with two flat AS-i cables (one for the network + power, the other for output power) running the length of the conveyor.

For Scenario 1, the move will require disconnecting the AS-I box from the cables, moving it to the new location, and reconnecting it.  That’s it.  Nothing needs to be done at the old location, because the AS-i cables are self healing, and nothing needs to be done to the AS-i cables at the new location, because the AS-i connectors are insulation piercing and can tap into the flat AS-i signal and power cable at any location.

For Scenario 2, if there is a AS-i box nearby with 2 spare inputs, then we can connect the PE sensors to it; otherwise, we simply add a new AS-i input box at the new location, attach it to the AS-i cable, and connect the PE sensors to it.

Of course, the control system will change a bit: our PLC will either need an AS-I interface module or gateway.

Overall, the cost should be roughly comparable to other fieldbuses, but significantly more than hardwiring or using junction boxes.  However, initial installation time should be the shortest, and it’s definitely the quickest to re-configure.  AS-i doesn’t have the flexibility to add exotic equipment such as encoders and servo motors, but it’s hard to beat for this conveyor system.

I Learned About AS-i Early On, But Too Late

I first learned about AS-i a year or two after we installed that conveyor system, but I have always thought that the initial added expense and complications (e.g. finding a PLC that would work with AS-i) of AS-i would have been worth it in time saved, especially when making changes after installation.  But I didn’t know about it before we started, and I didn’t get involved in specifying control systems until much later.

For our current systems, AS-i does not make sense: they are compact, do not use sensors with M8/M12 connectors, and the I/O requirements are well defined but varied.  So I have still never used AS-i, but if I ever do a conveyor or similar system again AS-i will definitely be one of the leading options.

Disclaimer: as noted, I haven’t used AS-I, junction boxes or such, but I believe my descriptions give a reasonable idea of how the different approaches would work out in practice.

January 22, 2016   No Comments

A Big 2015 Thank You

For all my few readers – and a special thank you for all the insightful comments I received this past year.

Happy New Year!

January 1, 2016   No Comments

New Year Resolutions

My New Year’s resolution for blogging is obvious: catch up on blogging this year.

I was fully occupied in December by trying to get some new machines shipped at work and by all the Christmas activities at home, plus some computer issues, added to all the normal stuff.

My wish list for the coming year including:

  • Writing about embedded and maker topics.  I’ve been interested in embedded systems for a long time, and I have a couple Arduino projects ready to be written up.
  • Write some more pen and paper posts, with an emphasis on affordable products.  Although I still enjoy the, I’ve noticed that the average cost of the items mentioned has gone up substantially.  So I will try to highlight affordable, yet high quality, products that I’ve found.
  • Include more stories about my automation experiences.
  • And, of course, I plan on continuing my automation posts, which remain the core of this blog.  I have a number of partially finished posts, including some on AS-i and I haven’t forgotten about robots.

January 1, 2016   No Comments

Sensitive Circuit Breakers

A couple years back we had to add a UL489 circuit breaker to one of our machines.  I ended up choosing the Weidmuller 9926 series because it was DIN rail mount, compact (only 26mm wide for double pole), affordable, and readily available.  The 9926 worked fine in the original machine, which had a fixed panel for the electrical components.

Then another customer required a UL489 circuit breaker in our smaller machine, where the electrical equipment is mounted in a slide-out drawer.  I made the easy decision, and specified the 9926 series again.   When the first new machine was assembled, the technician noticed that if he hit the side of the electrical drawer, the circuit breaker would trip.

So we did some more testing and verified a bit of mechanical shock would cause the 9926 to trip to the OFF position.  However, when the electrical drawer was retracted, it was hard to get the circuit breaker to trip, so we didn’t change the circuit breaker.  But I still wasn’t comfortable with the possibility of shock-induced trips, so I looked at other circuit breakers.

I choose because the ABL Sursum UL series from Altech because the price was within reason, I was able to get a sample to test, and they were impervious to shock.  The Altech L series were better than the Weidmuller 9926, but I could still get them to trip via hitting them.  Then I had the challenge of finding space, because the DIN Rail was full, and the ABL UL series was 10mm wider than the 9926, which I solved by finding a narrower power supply.

On my last trip to Excess Solutions, they had a large selection of DIN rail circuit breakers; I couldn’t resist testing them to see how shock sensitive they were; all the ones I tested passed, including models from ABB, Eaton, and Merlin Gerin.

As a side note, I enjoy seeing the where the circuit breakers were made.  Here, the 9926 takes the prize, because it is made in Lesotho, a country inside of South Africa, by CBi (Circuit Breakers Incorporated).  The Eaton model was made in Spain.  I believe (but am not 100% sure) the Altech L series in made in India.  The ABL Sursum and ABB breakers were made in Germany.CC

Final note: the 9926 series has several pluses, including compact size and competitive price, and we haven’t heard of any problems with them in our machines in the field, but they aren’t a good choice for high vibration environments or other places where they might receive mechanical shock.



November 15, 2015   No Comments

KickStarter Pens

KickStarter pens don’t get me excited.  Well, that’s not quite fair, since I like do the Tactile Turn pens by Will Hodges, but everything else I’ve seen have left me uninterested.  I’m not saying there aren’t many good pens on KickStarter (and the other sites), but when I start paying more than $2 for a pen, I want a pen that really attracts me – and a higher price tag means the pen has to be that much more special to me.

So far I have a blue Mover (mentioned here), and am backing the Gist fountain pen.  What’s so special about these pens for me

  1. Will’s aesthetics really match mine.  I love the proportions on the Mover and the Gist.  I like their spiraling grip.  I like the clips.    They’re classy, and simple but not boring.  I don’t care for the appearances of pens with big bolts or nuts, for pens that are inspired by airplanes, for cylinders pens with sudden discontinuities, for the Pilot Vanishing Point, or the Lamy 2000 (somehow the Lamy 2000 looks all wrong but the Gist looks all right to me).
  2. Will puts in practical features.  Both pens feature his spiral grip.  The Mover has a nice Schmidt knock so it’s a classy retractable.  The Gist has acme threads for the cap – and the cap posts.  The Gist is customizable, with interchangeable nibs and grips.
  3. Tactile Turns are made with fun materials, such as anodized aluminum (Mover), brass, copper, titanium , zirconium (Gist) and Damascus steel (Gist).
  4. Will does his own work – and his work is good, which makes his pens extra-special for me (side note: we have a machine shop at work, and I love being seeing what comes out of there – machined metal is cool!) compared to buying a “designer” pen, where the designers are featured, but the pens are made by who knows…or buying a normal, non-hand-crafted pen.
  5. Will delivers on time and his prices are reasonable for what you get.

So, yes, I do highly recommend checking out the Tactile Turn Gist Kickstarter page – it has about a week to go (ends 11/5/2015), and prices will be substantially higher afterwards.  I’m sure these pens doesn’t appeal to everyone, but take a look, and if you like the Gist, now is the best time to get one.

Note 11/5/2015: the Gist had a very successful Kickstarter campaign, ending up with $129,796 from 997 backers.  I will talk more about the Gist when I get mine in January 2016.

October 26, 2015   No Comments

DSL Internet Speeds Vary A Lot

I’ve recently moved back to DSL since WiMax is going away.  I’ll have some more notes about my DSL service in the future, but today it’s all about how much my apparent DSL speed can vary, based on running a variety of speed tests.

So what makes my “rated” DSL speed (as rated by a speed test site) vary?  Factors include:

  • The speed test site used; I saw definite differences (in Mbits/sec) between DSL Reports, SpeedOf.Me, and Ookla’s  I decided to standardize on DSL Reports’s speed test (partly because of this)
  • All upload speeds were roughly the same, around 1.25Mb/sec
  • The fastest download speed was direct Ethernet connection to SmartRG SR510N modem: ~18Mbps down (Asus T100TA, USB 3.0 1G Ethernet adapter)
  • Using the SR510N’s WiFi connection, the T100TA speeds varied between 10-15Mb/sec
  • However, when I tried an old but still usable Acer A500 Android 4.0 tablet with the modem’s WiFi, speeds dropped to ~3.0 Mb/sec with a weak wireless signal, and ~8 Mb/sec with a good signal.
  • The A500’s speed with my longer range but slower Netgear WNR1000 via a set of Netgear 85Mb/sec Netgear powerline modems is pretty consistent at ~6 Mb/sec; the T100TA clocks in at 7Mb/sec.  I suspect the bottleneck is the powerline modem.
  • Speeds seem pretty consistent over time when I hold the other variables (test used, PC used, connection used) constant.

BTW, my T-Mobile 4G LTE MiFi can get similar or better speeds.  Its results vary dramatically with the signal type (LTE is much better than HSPDA, and EDGE is painful); typical download range seems to be around 8-18 Mb/sec, and upload around 1-6 MBb/sec.  However, despite the good raw numbers for LTE, VoIP quality is typically much better over DSL (partly because DSL still has much better ping times).  And, of course, there are no affordable LTE options for large amounts of data, while my DSL is unlimited.

September 29, 2015   No Comments

Crimping Adventures

Crimp Pins (L->R: Picoblade, Sherlock, Micro-Fit, Mini-Fit, HD Dsub, Dsub, UMNL)

Crimp Pins (L->R: Picoblade, Sherlock, Micro-Fit, Mini-Fit, HD Dsub, Dsub, UMNL)

Making cables from connectors is often an adventure; today’s tale is about crimp connectors.  I prefer crimp connectors over solder, especially trying to solder high density connectors like HD D-Sub or MDR.  Crimp connectors are typically very affordable, and are often less fussy than IDC connectors.

Avoiding Expensive Crimpers

However, you have to have a crimper to make a good crimp connection (duh!), and crimpers from the manufacturers can be very pricey.  For example, a while ago we used some IMS MDrives with JST crimp connectors; the official JST hand crimper was ~$1000, so we decided to use an existing crimper (which worked OK but occasionally wasn’t good enough), and just planned on redoing a significant number of crimp pins.

Sometimes crimping is impossible without the correct tool.  I have a few cute Haydon Kerk NEMA 8 stepper motors with US Digital E4P encoders – and no encoder cables.  The E4P uses a Molex Picoblade connector; since 100 Picoblade pins costs less than one pre-wired cable from US Digital, I decided to make my own: I bought the connector shells and 100 pins, and expected a high failure rate.

I didn’t expect a 100% failure rate – even with our smallest crimper and the help of our assembly technician, I could not get an acceptable crimp using those tiny Picoblades.  I was defeated, but I still wasn’t going to spend my hard earned cash on a crimper that I was only going to use a couple times.

Instead, I went Excess Solutions, and looked for prewired cables with Picoblades.  I was in luck – I found some short cables.  Then I cut open the housing with a knife, and inserted the crimped wires into my E4P Picoblade housings.  Success!

But since then I’ve found an even better solution: pre-crimped wires from Molex, such as the 06-66-0015 (red wire) or 79758-0006 (black wire). One disadvantage: the wires are all the same color.


Picoblades (from top: #1 cable from Excess, #2 E4P cable made from #1, #3 cable with pre-crimped black, #4 cable with pre-crimped red)

I have an Elmo servo drive with Molex Sherlock connectors, which look just slightly less devilish than Picoblades, and I’d like to use the same solution, but unfortunately I can’t find any distributors that stock the appropriate Molex parts (68801-4044 or 68801-4045).

Molex Micro-Fits and Mini-Fits


Crimpers (L->R: Molex 64016-0201, 63819-0000, 63819-0900, Hansen Hobbies)

For Molex Micro-Fit and Mini-Fit Jr, we started with the Molex 64016-0201 crimper which can affordably crimp a variety of pins including Micro-Fit, Mini-Fit, KK, and CGrid.  However, we had a noticeable failure rate, and it was a little awkward,  so we bought the dedicated crimpers for Micro-Fit (63819-0000) and Mini-Fit Jr (63819-0900).  These crimpers are truly wonderful; it’s easy to make a good crimp with them (especially since the crimp pin is held in the correct position and orientation), and the price is reasonable considering they are made in Sweden.

My New Crimper- Hansen Hobbies Deluxe Crimper

I decided I wanted my own crimper that could handle Mini-Fits and such, and settled on the Hansen Hobbies Deluxe Crimper.  Some of the RC guys use the one from Servo City, which is substantially cheaper, but I felt more comfortable that the Hansen model would meet my needs.  Later, I noticed a cheaper but similar looking model on Amazon.

I’m pretty happy with Hansen crimper; it was definitely worth the money.  So far my results are:

  • It works well for Mini-Fit Jr crimp pins.
  • It works well for standard DSub crimp pins.
  • It can do Mini-Fit Jr pins, with some failures and extra checking
  • It can do High Density DSub with some failures and extra checking
  • It can do Universal Mate N Lok (UMNL) pins, but they’re a little large

I don’t have any plans for more crimpers now, but I have to say since I do a lot of HD DSubs, the Paladin 8029 looks sweet.  I also might get a ratcheting ferrule crimper some day.

Inserting the Crimped Pins

Some crimp pins can be inserted any way, for example, round pins such as Dsub, HD DSub, and UMNL.  However, many pins such as Molex Mini-Fit Jr and Micro-Fit must be inserted in the correct orientation (top towards the tab I believe) — but when everything is done right, they go in with an easy but satisfying click!  Sometimes all of the pins need a little push – for that I typically use a very small flat screwdriver.

Removing Unwanted Pins

HD Dsub, Dsub, and Mini-Fit pin removers

HD Dsub, Dsub, and Mini-Fit pin removers

Sometimes you screw up, and often you screw up worse trying to remove that pin you put in the wrong spot.

UMNL pins are easy to remove if you have the correct TE/AMP pin remover.

However, I consider DSub pin removers to be disposable items — it’s hard to use them more than a few times.  Sometimes they work great, often they’re a challenge.  Micro-Fit and Mini-Fit pin removers are similar, and if the wire breaks, it’s even harder.  Plus the Micro-Fit/Mini-Fit pin removers are only slightly more robust than DSubs, but a lot more expensive (>$15 versus ~$5).


August 24, 2015   No Comments

Free Programming e-Books from Packt

Packt Publishing is currently running a free e-books offer, with each book available for one day.  So if you’re a developer or thinking about becoming one, it’s worth checking out every day until they discontinue it.  (Last year, they did the same thing, but ran it for a much shorter period of time).

I’m pretty sure that the free offers will not include their latest or best selling titles – duh! – but it’s still a very good offer.  Packt does tend to concentrate on open source and open standards.

Packt does not offer books for hard-core industrial automation programmers (for example, no PLC books), but some of the books that were already offered for free could be useful for factory software projects that use mobiles (June 17, Creating Dynamic UI with Android Fragments), web standards (June 22, HTML5 Data and Services Cookbook), databases (June 18, Raven DB2.x Beginner’s Guide), or development tools (June 19, Learning Gerrit Code Review).

Thanks to Packt, I’ve discovered some potentially useful projects (such as Learning Gerrit Code Review)  and have been able to snag free books on topics I’ve been interested in but haven’t used yet (such as Instant R Starter).  I’ve also bought some books from Packt, such as Learning BeagleBone.

June 22, 2015   1 Comment

Blog Schedule

First off, my apologies for not posting at all for a couple months.  I have been very busy with a combination of work (new project with a tight schedule), family activities, taxes, and such.

I will not make any specific promises, but my life has calmed down a bit, and I will do my best to get more posts out – I have way too many partially written posts.

May 31, 2015   3 Comments