Pimp your Manncorp FVX – Part 2


In part 1 I covered how we were very limited by the stock FVX with mechanical and cut sheet feeders and how we added parts from other manufacturers to maximize the functionality. In this part I will cover how we took a giant leap forward in adding functionality to the FVX in order to adapt to quick turnarounds for new boards.

Identifying the problem

At the end of part one it was obvious that we had a solution which allowed us to produce all our boards and only use cut sheet trays for the components that did not have slots in the cut sheet feeder or that would not work in the cut sheet feeder or the mechanical feeders.

The cut sheet trays worked great but they had to be monitored and new sheets of components inserted when they ran out.

What we needed was an ability to add and remove feeders at will especially for larger parts. The smaller parts, 8mm feeders, do not get switched out much and are common on most of our boards but larger parts like USB connectors, JST SH connectors, etc. are not used on every board and do not need to be in the machine all the time.

The ideal feeder would be one that is electrically controlled and that could rewind when not in use to prevent components from getting lost.

The Hover Davis QP or MPF  feeder seemed ideal, it is easily controlled by an electrical pulse and could rewind if needed. This would be ideal for the large format components i.e. 12mm and larger tape. For the 8mm tape I found the Fuji KG 0804 feeder which seemed up to the task.

The next step was seeing how these feeders can be integrated into the FVX. As the MPF was shaped strangely it would not be suitable in the left of the FVX as the head would hit it every time it wanted to pick a component. The QP would be a better bet, but as I bought a ton of MPF that ship had sailed.


The image above shows a QP feeder in a prototype holder with some Actobotics parts  to hold the feeder in position.


This image shows the Fuji feeder and what would be required to hold that in position.

The feeder holders were modeled in Fusion. One of our customers, Thrive Aquatics, could machine a holder for us out of any material that we wanted, as this was a prototype we opted for 3/4″ thick Acrylic. This is the same material that large fish tanks are constructed from. We can always machine it our of aluminum when were are happy with the result.

Feeder Holders

The image below is the holder that we machined for the Hover Davis feeders.


The metal plate in front was bent to the perfect angle to keep the feeders in position when they are inserted.




This image is the holder for the Fuji feeder, the aluminum plate was inserted a little lower than the clip on the feeder, the mounting screws were also set forward on the plate. This gave some downward force to hold the feeder in position.


We machined both holders to hold the feeders at the correct position to give us a component height of 120mm so that the camera would be able to focus perfectly on the components. This can be seen below in the 2 images captured from the FVX software.


L6470 – 28-HTSSOP


Resistor – 0402

The feeders in action

The Fuji feeder is perfect for 0402 as the FVX software can have multiple components per pulse in this case 2 per 4mm pulse.

The 0603 components are set to a higher speed so they go a lot faster.

And finally the Hover Davis.

As can be seen above, everything is working very well. We have knocked out a couple of hundred boards from 5 different designs since we got the new setup.

It is easiest to set up the most common feeders i.e. USB micro connector in the last slot and have it as a global feeder and then set up the board feeders for each board and insert/remove them when needed.

This concludes the mechanical part of the project. In part 3 I will cover the software and hardware parts required, and what roadblocks needed to be overcome in order to get everything working.


Pimp your Manncorp FVX – Part 1


A couple of years ago we got a FVX Pick and Place for our in house assembly. It came a 5 feeders,  3 x 8mm x 4mm pitch for 0603 components and 2 x 8mm x 2mm pitch for 0402 and 0201 components. It also had a cut-strip feeder installed. There were probably other items that we were supposed to get, like a reel holder for the cut sheet feeders, we just gave up waiting and chalked it up to a bad customer service.

After a few months of back and forth, and an on-site visit from a very knowledgeable tech, we eventually got the system set up correctly to place most of our items ranging from 0402 to tqfp 100.

It is a nice system for standard components but we have not been able to get a high degree of accuracy for QFN devices. We believe that the vision system probably has a hard time aligning the QFN as it is probably tuned for brighter pins, as you get on most devices with exposed/protruding pins. So we just decided to not to use any QFN footprints and opt for TQFP or TSSOP. Fine pitch SSOP i.e 0.4mm is not an issue though we occasionally have to nudge a device to get it into the correct position.

We soon discovered that we would need to get a ton more feeders so we purchased a 12mm and a couple more 8mm feeders, of course you can never have too many feeders.


We obviously ran out of space on the left side of the machine. The right side had the few cut sheet feeders that came with the system. These are OK if you want to grab a cut sheet and insert it but the ‘badge holders’ that are used to retract the tape are just a bad idea as they can easily get entangled in the head when components are being advanced. this happened a few times with us. In addition to that you need to get the tension exactly right else they will creep along and be out of alignment. And don’t even mention the constant baby sitting, and occasional fail that will cause your head to lock up and of course you need to re-home it.

So we were happy with our initial investment but adding additional feeders was beginning to become a major capital expenditure. Sure you can get them from MDC at half the price that Manncorp was selling them for but who wants to wait 4 weeks when you need it tomorrow.

Initial Modifications

We found a great cut sheet holder from Count on Tools that we could put in the waffle tray spot and that really helped with small run production, you can see 2 of them in the video above between the boards and the cut sheet feeders. However we needed to have more feeders and not have to worry about running out of components mid way through the assembly.


We then got a feeder system from smtmax to replace the hopeless cut sheet feeder that came with the machine.  We also decided to get a new re-flow oven and a stencil printer from smtmax so the relationship worked out well. The great advantage of this feeder assembly was it had a ton of slots for 8mm then a couple for 12mm, 16mm, 24mm, and a 32mm. There is also a motorized take up for the tape that is peeled back. We installed a small photo interrupt to trigger the motor when the gantry containing the head moved past a certain position.

We removed the whole right assembly for the cut sheet feeders and installed the new cut sheet feeder system to be at approximately the same height as before.


We could not get the height exactly right so we had to re-calibrate the arm-tape feeder in order to get the feeder arm to be in the correct position relative to the height of the head (think trigonometry/triangulation).

This turned out pretty well and functional for us as can be seen in one of our early videos.

This all worked very well for a few months. In May 2015 we moved to new offices and got a whole lot of new space. With demand for our boards growing we needed to find a quicker way to turn the pick and place setup, currently a couple of hours we needed to get it down to a few minutes.

We had two options, either get a new pick and place or retrofit the FVX to use auto-feeders.

I will cover the transformation of our FVX in Part 2.


We recently had  customer inquiring about connecting one of our Photo Interrupt Boards directly to a computer.

Photo Interrupter board

We though about this for a few minutes and decided the best way to do this would be to use a FTDI to Serial breakout board. The FTDI presents itself as a serial port when connected to a computer.

Using an FTDI would be the perfect solution as the FTDI can supply power to the board and it can monitor at least 1 signal line – CTS (Clear To Send). CTS is a signal line used by a device connected to the FTDI, the device uses the line to signal the computer that it can send data to it (this is known as hardware flow control). For our purposes we use it to signal an interrupt.

The FTDI Breakout comes in 5V and 3.3V – either of which would be suitable to the task.

FTDI and Photo Interrupt


We wired up the system, using this connection wire, as follows: GND of the FTDI to GND of the photo interrupt , +3.3V/+5V of the FTDI to +5V of the photo interrupt and finally we connected the signal line of the photo interrupt to the CTS pin of the FTDI.

In order to monitor this from a computer you connect the FTDI to a USB cable in this case a mini USB cable you might need to install a driver for the FTDI device which can be obtained at ftdichip.com. When the device is installed it will show up as a serial port (COMxx). For the purpose of keeping this tutorial short we will not go into determining which COM port you need to use.

Now for the code, We threw together this quick sample in C# as it requires the least number of lines of code to achieve our purpose.

As you can see the code is pretty self-explanatory – our FTDI in on COM port 22 so we initialize the serial port for ‘COM22’. We don’t really care about the port speed as we are not going to be transferring any data, we just want to know the state of CTS.

We then set up a function to be called whenever CTS changes state i.e. when the interrupt controller gets interrupted.

And finally we open the com port and wait, we do however print out the count continuously.

Whenever the beam of the interrupt controller is broken the ‘serialPort_PinChanged’ function will be called. All we do is increment the count variable which of course will be reflected in the console window.

Now that you can connect your photo interrupt to your computer you can count almost anything that interrupts the beam i.e. water drops, etc.

If you have any ideas for future tutorials please send your suggestions to support@karlssonrobotics.com.


You’ve probably come across the terms “physical computing,” “microcontroller” or even “Arduino” before. The purpose of this series of articles will be to give our users a general introduction to these concepts: what they are, and what they can be used for. In this first part, we’ll be exploring these concepts by taking a look at the hardware of the Arduino Uno, using the diagram below.  We won’t be getting into every chip and circuit on the Uno; this is a basic overview for the beginner. Our goal is to give you a basic understanding of what the Arduino is and what you can do with it.

Arduino Diagram

  1. The heart of the Arduino is the microcontroller. All the other components, bells and whistles are designed around interfacing with, feeding information into, and extracting information from the microcontroller. It is, in simplest terms, the “computer” in the device. By using various sensors to input data a user can produce a nearly infinite number of effects. A simple example is, by attaching a photosensor to the Arduino that measures light, the Arduino can be used to turn on a light when it senses that the ambient light around it has dropped below a certain level. A more complex light-based example would be using the Arduino to turn your living room lights off when you start your DVD player. It’s from examples like these that we get the term “physical computing;” the Arduino can measure phenomena in the real world and react to it in real, physical ways that you can see, hear, and experience through various output devices.

But how do we input data, and how do we transfer the data that the microcontroller processes into other devices?

  1. The digital pin headers, at the top right side of the diagram, are numbered from 0-13. These are what give you access to the microcontroller chip. They can read input from sensors or other devices, and can also act as outputs. The six digital pins marked with the tilde symbol (~) can apply pulse width modulation, which is just a fancy way of saying that they can adjust the amount of voltage they output from 0-5 volts. Resisters, LEDs or other components can be inserted into the pin headers, which allows them to interact with the chip.

The headers marked 0 and 1 are special cases that deserve attention. You’ll notice that, next to their numbers, they’re marked “RX” and “TX,” respectively. RX stands for “receive,” whereas TX stands for “transmit.” These are the pins that are used to communicate with your computer or with other devices.

  1. The TX and RX LED lights are what allow you to know when your Arduino is transmitting or receiving information. These are excellent tools for troubleshooting your programs. If the program your Uno is running should be sending information to another device, but the TX LED isn’t blinking, you know something is wrong. Similarly, if you’re trying to send information to your Uno but the RX LED isn’t blinking, something is wrong.
  2. Your analog header pins, marked A0 through A5, are analog to digital converters. That means that they can take an analog signal, for example a volume knob, and convert the input into a digital signal that the Arduino can understand. These analog headers can also be used exactly like the digital pins (2) we talked about earlier.
  3. The power pin headers can do a few different things, so let’s take a look at them one by one. The slots marked 3.3V and 5V are, when the Arduino is hooked up to a power supply (through the power jack on the left side of the diagram), able to transmit 3.3 and 5 volts, respectively. The slot marked “reset” will, when 0 volts is applied to the pin, reset the program. What that means is discussed below in section 6, the reset button, which works exactly the same way when pressed. The slots marked GND give you access to the lowest voltage that the Arduino is capable of putting out. The other slots will be used most often by more advanced users, so we’ll get into them in a subsequent article.
  4. The reset button, as the name implies, resets the program that your Arduino is running. When you press it, the program will instantly stop and start running from the very beginning. This can allow you to interrupt a program that may not be acting the way you want it to, and by replaying it a few times you can often figure out where the error lies.
  5. The power LED will let you know when your Arduino is powered on and running.
  6. The USB jack is what you’ll be using to hook your Arduino up to your computer via a USB cable.

There are obviously several other components to the Arduino, but what we just covered is what you need to know when you’re just starting out. This is a lot of information to take in, so don’t be put off if you feel a little confused at first. As we get into programming and actually using the Arduino, the function and importance of the different parts will become clearer.

In our next installment we’ll talk about downloading and installing the Arduino IDE, and then we’ll get working on our first project! If you want to get your hands dirty and start playing around with the Arduino Uno before then, you’ll find a link below to take you to the Karlsson Robotics page where you can buy your very own, as well as every component you could ever want or need (and tons of other cool stuff, too). See you next time!

Click here to get your very own Arduino Uno!



{ 1 comment }

In Part 1 of this tutorial I described the circuit and components of the project. In this part I will show how to assemble all the parts onto a breadboard and start having fun.

The layout


The image above shows how to place all the components on a breadboard – fritzing was used to prototype the connections and show the basic layout. Speakers are used to show the car horns and just a header to show the receiver. The actual pin-outs for the receiver are shown in the image below.

From the 2 figures above you can see that we connected D1 to one MOSFET and D2 to the other.


This is a photo of what we actually did. We only connected a single horn to keep it easy and simple.


Programming the Remote

The remote does not come programmed so you need to program it, or if you order it from us we can program it with default codes – if you leave us a note at checkout.

To program the remote just press and hold one of the buttons until the led starts blinking, then press the button of the remote you want to clone and the led should stop blinking when it copies the code.

You can repeat this for all the other 3 buttons if you need.

Pairing with the Receiver

As with the remote the receiver is not paired with any device, you will need to pair it with your remote if you want it to receive signals from it. In order to pair it take a jumper wire and place one side in the same row as ‘K1’ then for about 2 seconds place the other side into the ground/Black line of the breadboard. This will put the receiver into programming mode. After this press button 1 on your remote and you should see a blue LED flash on the board indicating that the receiver has been paired to your remote.

Wrapping Up

This should give you a couple of hours of fun and make you very popular with your co-workers…

Parts List

Clicker – $6.59

Receiver – $9.95

Car Horn – $5.95

Regulator – $1.25

Capacitor – $0.28

MOSFET – $0.95

Breadboard – $5.95

{ 1 comment }

When I was first hired on as Karlsson Robotics’ Director of Sales and Marketing, I was confident in my ability to sell products I knew nothing about initially. Coming from a background in medical sales, I was used to quickly learning the basics and highlights of a product, just enough that I could sound knowledgeable to a potential client. The products and people I dealt with were literally matters of life and death. I wasn’t particularly intimidated by the idea of selling what I initially thought of as computer parts. Robot parts. Whatever. What’s a servo? I’ll figure it out later.

The thing about medical sales is that the companies that make the products expect them to be sold by medical salesmen, i.e. guys like me, laymen with no background in anything besides fast talking and dealing (as an aside, I did go to college – I majored in English Literature. Yes, I have worked as a waiter. No, I’ve never been a barista). Dealing with the products that KR sells – the aforementioned servo, tiny computers called Arduinos, all manner of sensors and plugs and things whose functions I couldn’t even vaguely glean by looking at their names – is a bit different. Created by specialists to be sold to people who are in the know. Even the product descriptions required a vocabulary I simply didn’t possess. The point is, it’s difficult to market a product when you truly know nothing about it.

I did get the impression that these concepts were not wholly beyond my ability. I was curious. I wanted to know more. And I had resources. My boss (and the company’s owner) is an electrical engineer. My coworkers, for the most part, have backgrounds in engineering, computer science, some sort of hard science at least. If they didn’t know exactly what something did or how it worked, they at least possessed the tools to quickly find out. So, what do you do when you want to know something? Ask someone who knows.

Thus began a common, if decreasingly popular, refrain around the KR offices: “What’s that? What does it do? Can you use it for [insert some vague technical concept I read about on Wikipedia]? What are you doing? What are you making?” At first my colleagues were patient, helpful even. They slowly and carefully explained the purpose of components and engineering concepts, then re-explained them when I promptly forgot what they’d just told me. They directed me to literature they thought might be at my level – mostly stuff intended for kids, sometimes their own kids. But there are only so many hours in the day, and talking with people is really only my job; they had real work to do.

Recently, I was pestering my boss – the eponymous Gustav Karlsson of Karlsson Robotics – and he asked me why I didn’t just figure it out myself. I answered that I had no background in this stuff. I couldn’t even begin to figure out how to begin. He pointed out that not everyone here had gone to school specifically for engineering or computers. A coworker of mine did indeed have a science degree, in biology. Not necessarily the best background for computer science, right? “She taught herself. Teach yourself. You can write about that.” I had been talking about starting up a blog for some time, but found myself at a loss as to what I could actually write about. Gustav had also been encouraging me to write some tutorials to put up on the website, like he was doing, which was a prospect that sounded so beyond my ken that I hadn’t actually put much credence into the idea that it might actually happen. To my surprise, the idea didn’t sound absolutely absurd anymore. After all, I had resources. Not just the people around me, but also literally thousands of components that I was told I was free to play around with. Instruction manuals. A workspace with all the tools I would need.

So I’m giving it a shot. That’s the purpose of this blog. I have a feeling this might evolve in ways I had not originally anticipated, but the idea is that I’ll be taught or learn something, and then chronicle it here for you, dear readers. I’ll also try to leave as asscessable a tutorial as I can that that you, too, can build your own Cylon. Sort of like those blogs where people learn to cook and display their results, except with robots (which sounds a lot cooler to me). I’ll be trying to update at least once a week, probably on Mondays, with sporadic updates sprinkled throughout the rest of the week as the spirit takes me. Eventually I’d like to move into video tutorials and vlogs. But let’s not get ahead of ourselves. So, where to begin? I haven’t the foggiest. I will continue to poll my coworkers throughout the next few days as to what a good starter project is, and will most likely announce that later this week. I’m also soliciting ideas from the community at large. If you have any ideas for projects (bearing in mind my relative level of skill), questions, or corrections, please feel free to contact me.



AKA John Reck

Director of Sales and Marketing






This tutorial was inspired by one of our customers that wanted to have some summer fun with his son. Basically he wanted to use a remote clicker to sound a car horn.

So basically:

+ + = Fun

The Idea

The receiver and the horns both work at different voltages, 12V for the horns and 5V for the receiver. As we are going to power the circuit with 12V the horns are covered so we will use a regulator to get 5V for the receiver. We will use the common 5V regulator along with some capacitors.

In order to sound the horn we will need to use a pair of MOSFETs, these will enable the small receiver to turn the horns on when a button is pressed.

The Circuit

The circuit is actually very simple, I will describe the components and their connections starting from the top left.


For the battery you could use any 12v lead acid battery, 11.1V LiPo, or a 12V power supply. Bear in mind that the horns can draw a lot of power so if you use a 12V power supply ensure that it can supply at least 4A.

The positive or red terminal is connected to the voltage regulator and the two positive terminals on the horns.

The negative or black terminal gets connected to all the points marked as GND or ground.

Voltage Regulator

5V Voltage Regulator

voltage regulator

For reference these are the pins of the LM7805 voltage regulator, that we sell, top view (body facing up, metal part at the back). The 12V supply gets connected to ‘INPUT’ the ‘COMMON’ terminal is connected to ground and the ‘OUTPUT’ terminal is connected to the capacitor and the ZW20-J  receiver.


Capacitor Ceramic 0.1uF

The capacitor that is used is a ceramic capacitor and as such it does not have a positive or negative side. It does not matter which lead is connected to ground or the output of the voltage regulator.


The ZW20-J receiver is very simple to connect – however out of the box it is not trained to any remote. The simplest way to connect it is as shown with power going to pin 4 and ground going to pins 2 and 6.


N-Channel MOSFET


A MOSFET allows you to control high powered devices from a low powered device like a micro-controller or in this case the receiver. We are using what is called a N-Channel MOSFET. The MOSFET acts like a switch and when voltage is applied to the ‘GATE’ pin current will flow through the horn to the ‘DRAIN’ pin and out to ground which is the ‘SOURCE’ pin.

As you can see in the circuit, we have connected 2 MOSFETS to the outputs of D1 and D2 on the receiver. These pins correspond to the first and second button on the remote control. If you want to control more items, like a light, you can wire up the D3 and D4 pins.


The horns are pretty simple – one connection goes to the 12V battery and the other pin to the ‘DRAIN’ pin of a MOSFET.


Continued in Part 2


{ 1 comment }

Using the L6470 Dual Stepper Controller


This post assumes that the reader is familiar with programming and using SPI. This post will cover how to use the Dual L6470 Stepper Controller that we manufacture.

To program the  L6470 use the dSPIN Library which can be obtained here: dSPIN. It is derived from work done by Mike Hord over at Sparkfun and as such remains in the public domain.

Connecting to the Dual Stepper Controller

The Dual Stepper Controller has the following connectors:

  • 2 x 4 pin outputs for the stepper motors
  • 2 pin input which can be used for stepper voltage input Vs
  • 14 pin header for control –  Vs can also be supplied via this header.

Dual Stepper Control interface

It is important that a voltage is applied to VS in order for the L6470 to operate correctly.

The SDI pins are:


For Channel A and B:

  • CSx – Slave Select A/B
  • RSTx – Reset A/B
  • FLAGx – Flag A/B

These pins all have 10K pull ups.

Initializing L6470

Finally we come to code. In order to access the L6470 you need to have SPI initialized. The following code can be placed in your setup() function, it initializes SPI for communication with the L6470.

Once SPI is initialized it is possible to communicate with the L6470.

The easiest method of using dSPIN is to just derive a class from it – this will make it easier to keep track of variable for each controller. The code below initializes a linear stepper – this can be seen from the acceleration and deceleration speed – typically you would ramp up and down depending on the inertia of the system.

There is also a function to move the stepper N steps forward or in reverse depending on the value of the number of steps passed – negative will move the stepper in reverse.

As you can see the most complex portion of setting up your L6470 is selecting the parameters – these can be determined from the datasheet, or trial and error. often it is just a case of decreasing or increasing the acceleration/deceleration  profile to get a good response from your stepper motor.


The L6470 dSPIN is a very powerful stepper controller and has the ability to go from 1/128th of a step to full steps. It is also highly configurable to match almost any stepper profile that you need.


Are you an inventor or do you have a product idea that you want to see become a reality? If so consider having us design and build it for you.

We have the in-house abilities to design your circuit, lay out your PCB’s, build a prototype and if needed assemble your boards. Our equipment can handle components as small as 0201, whether on a reel, in a waffle tray, or a cut strip.

We can build your prototype:

Button Board Prototype


And when you sign off on it, go into production:




Whether you need a complex system with many sensor and other inputs and multiple control outputs:



Or something simple:



We have the experience to turn your product idea into a tangible design or product.

We offer reasonable hourly rates or a per project rate for your prototype. We can usually go straight into production withing two to three weeks after finalizing all components in the system.


How To wire up your Big Dome Button

The Problem

Many customers have emailed us on the proper way to wire up their Big Dome Buttons.

Wiring is pretty simple as illustrated by the image below.

Big Dome Button Circuit

The Explanation

Firstly to explain, there are 5 connections for this circuit. Two connectors (the brass colored tabs) are for the light. There are 3 connectors on the white switch, one at the bottom is the common (COM) and the other two are normally open (NO) and normally closed (NC).

Wiring up is dependent on how you want the switch to operate. Do you want it to do perform an action when depressed (this is called normally open or NO) or do you want it to stop perform an action when depressed (this is called normally closed or NC).

The Solution

If you want to light to illuminate when the switch is depressed you will wire it for NO operation as follows:

Take the negative wire from your power supply and connect it to one of the tabs of the light holder. Take the positive(hot) wire from you power supply and connect it to the COM tab of the switch. Then connect a wire from the NO tab on the right hand side of the switch to the other tab of the light holder (long red line on image).

If you want the light to be illuminated always and to switch off when the button is pressed wire it for NC operation as follows:

Take the negative wire from your power supply and connect it to one of the tabs of the light holder. Take the positive(hot)  wire from you power supply and connect it to the COM tab of the switch. Then connect a wire from the NC tab on the right hand side of the switch to the other tab of the light holder (green dotted line on image).

This should get you going with your project.