One of the things I’ve had to do a lot of recently is designing and building PCBs, I had been looking for a way to make my PCB assembly process more efficient, and it wasn’t until I saw unexpected maker’s video on the pick and place turntable that he uses to populate his prototype PCB’s that it all came together, the concept of his design provided the bases for which I used to build the Pick-N-Place Wheel, so I’ll like to give a huge shout out to Sean from unexpected maker for sharing his idea and for inspiring the Pick-N-Place Wheel. Watch his video here.
Project Video.
What is it?If you have ever hand-assembled a PCB, the setup shown in the picture will look familiar to you, to populate a PCB, I would normally have all the components on the table, along with the pre-pasted PCB and a spreadsheet for the board I want to populate, this spreadsheet will usually contain important information like component value, footprint, designator and any other information that’ll enable me to accurately place the components. I would often also have my laptop close by so I can confirm the position on the board where specific components should be placed. With this process, I usually avoid any placement errors, but the process can hardly be called efficient, especially if I have to assemble multiple PCBs…so, my goal for the Pick-N-Place Wheel project is to combine all the elements associated with manual PCB assembly to form a system that is as seamless and as efficient as possible.
The Pick-N-Place Wheel is not just a 3D printed device, it’s a combination of three main elements: The 3D printed wheel itself which is the hardware, the rotary encoding and slot indexing; the electronics, and the control software in the form of a desktop application. The Pick-N-Place Wheel will not function as intended without these three elements.
THE WHEELThe wheel’s function is primarily to hold your components in indexed slots for when you're populating a PCB, but it also doubles as the permanent storage for those components, thanks to the built-in twist locking mechanism.
The wheel’s transparent top cover has a few flexible 3d printed tabs glued to it, these tabs fit into matching slots on the wheel, so that when you turn the top cover in one direction it creates a 1mm separation from the wheel (opened state), allowing the wheels to rotate freely during board population, and when the wheel needs to be stored away, the cover can be turned in the other direction which lowers it back down unto the wheel (closed state), sealing the components in their slots and preventing them from falling out or falling into another component’s slot. So instead of keeping components in the anti-static bags that they came in, the Pick-N-Place Wheel can be used to index and store them.
The Wheel is designed to hold two separately encoded wheels, one large outer wheel identified as wheel 1, and one smaller inner wheel identified as wheel 2. The image above shows the typical capacity of the wheel’s slots, each wheel has two versions, wheel 1 has a 48 and a 16-slot version, and wheel 2 has a 24 and 8 slot version, these wheels can be combined in multiple ways to suit various types of PCB projects, the wheels with the higher slot counts are designed to hold a lot of small SMD components, while the wheels with the bigger slots are designed to hold bigger parts, like USB ports, LEDs, power inductors or connectors.
The placing surface where you’ll place the board you want to populate also has two versions to accommodate different board sizes. The image below shows all the possible configurations of the Pick-N-Place Wheel and their intended project types.
The Pick-N-Place Wheel is built around wheel encoding and indexing which is facilitated by the electronics.
Each slot on the wheel has an index, this index is used to identify and place the components that are stored in them, this is possible because the Pick-N-Place Wheel itself is one giant rotary encoder, or more accurately contains two rotary encoding wheels. The wheel uses the magnetic rotary encoding method that I developed a few years back, it’s the same rotary encoding that’s featured in the Ahmsville dial project, you can read about it here.
Each wheel features a number of magnets attached to its base which are configured with alternating poles, the magnets encode the slots on the wheels, so the number of magnets on each wheel is proportional to the number of slots on the wheels. The accompanying board has four hall effect sensors on it, which are used to read and interprets the analog values from the magnets as the wheels rotate, the resulting encoding data is how the slots get their indexes.
The board is a typical microcontroller board, it features four hall effect sensors for reading the analog values from the wheels, two analog comparators for ensuring accurate encoding of the wheel’s rotations, and two addressable leds that show the status of the wheels, the board is controlled by the SAMD21G chip, the same as the Arduino zero boards.
To keep with the modular theme of the Pick-N-Place Wheel, the board is also detachable, which means you can make as many wheels as you like, and you’ll really only need one board since you can easily swap the boards from one wheel to the other, the board also supports all the different physical configurations of the Wheel.
THE APPLICATIONThe Pick-N-Place Wheel application (Desktop and Web) is the most important part of this project, the Pick-N-Place Wheel is all about simplifying the manual pick and place process and the software is integral to achieving this goal.
Whenever you’re populating a PCB, there are two main things you need to know, the first is the specifications of the component you’re about to place, like its value and its footprint, the second thing you need to know is the location on the PCB where the component should be placed, this is where the software comes in, it uses the actual pick and place data generated for your specific board together with the image of the board to create pointers that tell you where and how to place parts on the board, this in conjunction with the position information from the wheel is what constitutes the complete manual pick and place solution.
For every PCB you design, you’ll usually have the option to generate a pick and place file, this file will contain information like component name, value and footprint but most importantly, it will contain the x and y position for all the components on the board. The second thing you can easily generate from your PCB design is a 2d image of the board, most PCB design software will allow you to preview your PCB in 3D, and from this realistic 3d view you can easily generate an image that accurately represents the board, the image doesn’t have to be the same size as the board, it just needs to be in the same aspect ratio as the actual board, when you load the pick and place csv and the board image into the app, it reads all the data from the CSV and it also displays the image of the board.
Whenever you load a new csv into the app, a new column is created inside of that csv, this column is titled PnPWheel Position, this column is where the slot indexes for the components are stored, the position information from this column is also what connects the physical Pick-N-Place Wheel to the app. so you’ll notice from the image that some of the rows say “unloaded” indicating that those components don’t have an index in the Pick-N-Place Wheel, the components that have been loaded into the wheel will have their index shown under the column, so row 21, for example, tells me I have 10kohms 0603 resistors in slot 19 of wheel 1 and row 36 tells me I have 2222A transistors in slot 15 of wheel 2. All the information used and displayed by the app comes from this one csv file, the app only makes it easy to visualize and manage all the data in relation to the specific board.
During the actual pick and place process, the Pick-N-Place Wheel connects to the app through the serial port and sends the slot indexes to the app as a string through serial communication, the app then uses that index to pull all the information about the component from the CSV, and then shows you everything you need in order to confidently populate your desired PCB.
Download the full Build and Setup instruction document.
Setting up and Using the WheelIn order to use the Pick-N-Place Wheel, you'll need to go through the first-time setup process, this process involves:
- 3D printing and Assembling the wheel to suit your desired PCB project.
- Generating the required Files for the App.
- Loading and Registering the components into the Wheel's slots.
Step 1: Choose your desired wheel configuration.
Step 2: 3d print the required wheels for your chosen configuration, as well as all the other required parts.
Step 3: Install the magnets on the wheels in an alternating pole configuration.
Step 4: Glue on the locking tabs to the transparent top cover for wheel 1 and wheel 2.
Step 5: Install the 16004 ball bearing, followed by wheel 1.
Step 6: Install the 6810 ball bearing to wheel 1, followed by wheel 2.
Step 7: Attach the placing surface bearing holder to the wheel, and secure it with 3 m2 screws.
Step 8: Attach the transparent top covers to the wheels, twist clockwise to lock them in the opened state or counterclockwise to lock them in the closed state.
Step 9: Install the 16001 ball bearing, followed by the placing surface.
You may also glue on a mat of some sorts to the placing surface, I use a 1mm silicone mat, this keeps the PCBs from sliding of the placing surface.
Step 10: Install the Pick-N-Place Wheel board to the base of the wheel, simply push it into its slot until it clicks into place.
Step 10: Attach the rubber base pads.
Congratulations!!!, its a Pick-N-Place Wheel.
The Pick-N-Place Wheel requires two files to operate:
1. The pick and place CSV file for your PCB.
2. A top-view Image of the PCB.
Generating the pick and place CSV file
For every PCB you design, there is an associated pick and place file that can be generated, this can be done from the PCB design software. This pick and place file must be a dot(.) separated.csv file and it should contain the following columns:
1. Component Name
2. Component Value
3. Component Footprint
4. Component Designator
5. Component Layer
6. X-position (board origin at the bottom left corner)
7. Y-position (board origin at the bottom left corner)
Generating the Board Image.
Like the pick and place file, most PCB design software will give you a 3d view of your board design, from which an image can be extracted, the image doesn’t have to come from the 3d view though, any image that gives you a good enough sense of where components are placed on the board will suffice.
Your PCB should have its origin at the bottom left corner of the board, and the generated image needs to be in the same aspect ratio as your board, for example, if your board size is 20mm by 40mm the image size can be 10px by 20px, 50px by 100px or 2000px by 4000px, all these sizes are acceptable because they have the same aspect ratio as the board size, so a 100px by 500px image will not work for the 20mm by 40mm board.
The image also needs to be cropped to the edges of the board as shown in the sample image below.
If your PCB has components on the bottom side, make sure to also generate an image for the bottom side of your board.
After generating the.csv file and the board image, you’ll need to copy both files into a new folder, this will be the working folder that will be used by the Pick-N-Place Wheel App for the specific PCB project, the folder should contain only one csv and one image, for a PCB that only has components on the top side, one csv and two images for a PCB with components on the top and bottom sides.
The folder containing the csv and image should then be copied into the “PickNPlace Wheel” folder which can be found inside the Documents folder, this folder is automatically created when you download and install the App from the github repository, the folder should hold all of your pick and place PCB projects, if you don’t see this folder in your documents folder, launch the App and then close it, the folder should show up.
Once all the required files have been copied to their appropriate folders, the next step is setting up the wheel and the app for your first board assembly.
First, you're going to want to launch the application.
Once the app opens up, click on the Load button, this will open up a dialog box, asking you to choose a project file.
Navigate to the folder containing the csv and image and select any of them.
After selecting the file, you will notice the image on the app change to the picture of your board, indicating that the required files have been successfully loaded.
You’ll also notice that the file names are listed in the top right corner of the app.
You can name the project (optional), by simply double-clicking on New Board, and then typing in your desired project name.
The next step is setting the columns from your csv file to their appropriate comboboxes in the app.
1. Component box should be set to the column that has the names of the components.
2. Value box should be set to the column that has the values of the components.
3. Footprint box should be set to the column that has the footprints of the components.
4. X-Center box should be set to the column that has the x position of the component.
5. Y-Center box should be set to the column that has the y position of the component.
6. The board width and height should be set to the width and height of the PCB (the PCB design software will tell you these values).
7. The unit should also be set accordingly
8. Designator box should be set to the column that has the designators of the components.
9. Layer box should be set to the column that has the layer of the components.
10. TopLayer image should be set to the location of your generated board Image.
11. BottomLayerimage should be set to the location of the generated Image for the bottom layer of your board (set to null if your board does not have components on the bottom layer).
Under PnP wheel info, you're going to want to set the slot count for your specific Pick-N-Place Wheel, so if you assembled your wheel with 48 slots for wheel1(bigger wheel) and 24 slots for wheel2(smaller wheel), you should set wheel 1 count to 48 and wheel 2 count to 24. All combinations are supported, so you could have wheel1 = 48 slots & wheel2 = 8 slots, wheel1 = 16 slots & wheel2 = 24 slots or wheel1 = 16 slots & wheel2 = 8 slots. Just make sure you set the slot counts in the app accordingly.
You should also set distinct color identifiers for the wheels, this makes it easy to tell which wheel the displayed information is coming from.
The last box named Wheel pos should be set to PnPWheel Position.
After completing the selections, click on Update/Save button, this will allow you to save all your selections into a text file, so that the next time you load the project, all your selections are remembered. You should also remember to always save after making any modifications to the selections.
After the initial setup process described above, the final step before you can start populating your PCB is Loading components into the wheel and updating the pick and place csv with the corresponding slot indexes, this is a very straightforward process, and it only needs to be done Once.
There are two ways to load the components and their slot indexes:
1. Physical Loading Process – if you are using the wheel for the very first time, you will need to go through the steps described below for the physical loading process, this process allows you to fill the wheel with the components required for your board while also allowing you to update the positions (slot indexes) that specific components are loaded into.
2. Import Loading Process – if you have already done the physical loading process once and you have already set up the Pick-N-Place Wheel for a different PCB and you’ll like to use the same wheel to populate a new PCB, probably because the boards use the same sets of components. In that case, you don’t have to make a different Pick-N-Place Wheel, you can simply import the “components position information” from the CSV for the previous PCB. What this essentially means is that if your PCB projects often use the same sets of components, you can use one Pick-N-Place Wheel to assemble them all.
Physical Loading ProcessFirst, you’re going to want to connect your Pick-N-Place Wheel to your computer via a USB cable, after which you can then click on the connect button on the app. On a successful connection, you’ll notice the status box for wheel 1 and wheel 2 blinking, indicating that your wheels “require position reset”.
Before resetting the wheel, make sure the top covers and their slot openings are in the opened state, resetting the wheel in the closed state will produce erroneous indexing. The images below show the wheels in their respective opened and closed states.
To reset the wheels to the start position (slot index 1), simply rotate both wheels until the slot with an arrowhead is exposed, once the wheels are in the start positions, click on the Reset button for both wheel 1 and wheel 2, this will set the wheel positions in the Pick-N-Place Wheel to “1” and the status box should also stop blinking.
After the reset process, you’ll notice that the wheel index updates on the app as you rotate the wheels.
It's also a good idea to double-check that the start positions on the wheel are set properly, by simply rotating the wheels around the slot with the arrowhead, the index of this slot on the app should always be “1”. The LEDs on the wheel will also shine blue whenever this slot comes around.
At this point, you may now begin loading components into the slots.
Under the Components dropdown, you’ll find the list of all components that need to be loaded for your PCB, the items in the list are highlighted in OrangeRed to indicate that the components don’t currently have a valid index in your wheel.
1. Select a component from the Components dropdown, on selection, you’ll notice pointers on the board image indicating the positions on the board where the component is supposed to be placed.
2. Rotate the wheel to any free slot (wheel 1 or 2), and make sure the slot number shown in the wheel slot selector matches the corresponding slot number shown in the status box.
3. Load the component into the appropriate slot with the help of the 3D-printed funnel. For the example shown above, 1k 0603 resistors will be loaded into slot 32 of wheel 1.
4. After loading the component into the wheel, click on “update component position” to register the position of the loaded component. If you then go under Components again, you’ll notice that every instance of the newly loaded component has changed to green, you’ll also notice that whenever you rotate the wheel to the slot where the component is loaded, the component details are shown in the appropriate wheel status box and the pointers on the board should also take on the color of the appropriate wheel.
5. Repeat steps 1 - 4 for all the other components required by your PCB.
Import Loading ProcessTo load component positions from an existing project’s pick and place file, simply click on the “import form existing project” button and then locate and select the CSV file that you’ll like to import the position information from.
After the import process, you’ll notice that the components with known slot indexes will be updated and those components will be highlighted in green under the components list.
After any of the two-loading process described above has been completed, you are now fully set up to populate your first PCB with the Pick-N-Place Wheel.
Organizing your Pick-N-Place Wheel ProjectsIf you assemble a lot of PCBs, you’ll most likely want to build more than one Pick-N-Place Wheel, so it’s really important to properly organize all the files used by the App.
The image above shows the recommended way to organize the generated files, at the top level you have the main working folder for the App, this is where the App will first direct you to when you click on the Load button, on the second level you have a folder for every Pick-N-Place Wheel that you build, its important to create a separate folder for every wheel since you’ll likely be loading the wheels with different sets of components. On the third level, you have the main PCB project folders, this is where you’ll put the generated CSV file and the board image, this folder should also hold the config.txt file for the specific PCB project, a new folder must be created for every board that you intend to populate using the Pick-N-Place Wheel.
Final Notes:- The Pick-N-Place Wheel requires a 3D printer with at least a 220 x 220mm Bed size.
- The Pick-N-Place Wheel App has two versions, a Desktop version for Windows PCs only, and a Web version for Windows, Mac, and Linux (incl Raspberry Pi).
For instructions on how to setup the app on a Raspberry Pi head to - https://www.hackster.io/ahmsville/pick-n-place-wheel-raspberry-pi-setup-088d0d
Links:
GitHub repository – https://github.com/ahmsville/Pick-N-Place_Wheel
Download Pick-N-Place Wheel App – https://github.com/ahmsville/Pick-N-Place_Wheel/releases/tag/installer
Download 3D Files – https://drive.google.com/drive/folders/1dn8mOUvX9aucmaDOKIlN9xt6MlaRHWTM
Buy the Pick-N-Place Wheel Board - https://www.tindie.com/products/24720/
Comments