Skip to content

Commit

Permalink
lots of little tweaks, fixes ftp strip feeder setup page
Browse files Browse the repository at this point in the history
  • Loading branch information
sphawes committed Jan 9, 2025
1 parent afcaec7 commit 0d042b5
Show file tree
Hide file tree
Showing 20 changed files with 135 additions and 76 deletions.
7 changes: 6 additions & 1 deletion docs/feeders/5-openpnp-setup/feeder-openpnp-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,14 +33,19 @@ Now you'll scan for and configure your LumenPnP Feeders in OpenPnP.

5. Once the search has completed, each physically inserted feeder will be listed. The name will be the feeder's unique ID number, followed by the slot it's in. In this example, there are two feeders inserted.

!!! note "If None Appear"
If you don't see any feeders appear, try adding a `ReferenceTrayFeeder`, then selecting the `PhotonFeeder` again. Due to a bug in OpenPnP, switching views to a different feeder might be required to refresh the UI.

If you still do not see any feeders appear, double check that the cable running from your feeder rail to the motherboard is fully seated.

![auto populated feeders](img/identified-feeders.webp)

!!! danger "Before Saving"
Because of a [bug in OpenPnP](https://github.com/openpnp/openpnp/issues/1557), a part *must* be assigned to every feeder before saving your machine configuration. If you want to save your config before finishing setup, we recommend assigning the `FIDUCIAL-HOME` part to any feeders that do not yet have a part assigned.

## Configure

Now that your feeders have been discovered in OpenPnP, you'll need to configure each one.
Now that your feeders have been discovered in OpenPnP, you'll need to configure them.

1. Home your LumenPnP.

Expand Down
15 changes: 9 additions & 6 deletions docs/feeders/6-loading-tape/loading-tape.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
<!-- markdownlint-disable MD033-->
# Loading Tape

This video shows how tape is loaded into the feeder, and the functionality of the buttons.
<!-- This video shows how tape is loaded into the feeder, and the functionality of the buttons.
!!! Note "Keep In Mind"
Don't worry if something in the video doesn't look exactly like what you have in the box. We’re constantly tuning and tweaking things to make them better and easier to use, so you might find things look slightly different.
<div class="video-wrapper">
<iframe width="560" height="315" margin="auto" src="https://www.youtube.com/embed/rVsv2GUO0Tg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>
</div> -->

!!! Note
See also the [Feeder Buttons](../1-overview/feeder-overview.md#feeder-buttons) documentation for manually driving your feeders.
Expand Down Expand Up @@ -44,11 +44,14 @@ This video shows how tape is loaded into the feeder, and the functionality of th

![Film tucked into its guide slot](img/film-guide-1.webp)

8. Press and hold both buttons until the status light turns blue to switch into Peel mode.
8. Press and hold both buttons until the status light turns yellow to switch into Peel mode.

![GIF pressing both buttons on the feeder](img/change-modes.webp)
![GIF pressing both buttons on the feeder](img/change-modes.webp)

9. Press and hold the forward button to spin the peel motor, and feed film in between the two straight gears. Stop when the film is taught.
!!! note "Toggling Modes"
Pressing and holding both buttons toggles between Drive and Peel modes. A blue status light indicates you've switched to Drive mode, and a yellow status light indicates you've switched to Peel mode.

9. Press and hold the forward button to spin the peel motor, and feed film in between the two straight gears. Stop when the film is taut.

![GIF loading film into the peel gears](img/loading-film.webp)

Expand All @@ -63,7 +66,7 @@ This video shows how tape is loaded into the feeder, and the functionality of th

![Film tucked behind guide peg angle 2](img/film-in-gears-modified.webp)

11. Tap the forward button to feed a part and ensure that the tape is loaded correctly. You need to feed the feeder at least once to ensure consistent feeding in the future.
11. Tap the forward button to feed a part and ensure that the tape is loaded correctly. **You need to feed the feeder at least twice to ensure consistent feeding in the future.**

![GIF successful feeding](img/feed-forward.webp)

Expand Down
11 changes: 8 additions & 3 deletions docs/guides/update-firmware/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,16 @@ Update your LumenPnP's motherboard using the [STM32CubeProgrammer](https://www.s
!!! danger "Important"
It is important that you pick the correct firmware file for your machine.

- If you have a v2, choose `v2-lumenpnp-firmware-feeder-support.bin`.
- If you have a v3.0, choose `v3.0-lumenpnp-firmware-feeder-support.bin`.
- If you have a v3.1 or higher, choose `v3.1+-lumenpnp-firmware-feeder-support.bin`.
- If you have a v2, choose `v2-lumenpnp-firmware-XX.bin`.
- If you have a v3.0, choose `v3.0-lumenpnp-firmware-XX.bin`.
- If you have a v3.1 or higher, choose `v3.1+-lumenpnp-firmware-XX.bin`.
- If you have a v4 or higher, choose `v4-lumenpnp-firmware-XX.bin`.

2. Download and install [STM32CubeProgrammer](https://www.st.com/en/development-tools/stm32cubeprog.html).

!!! note "Linux Users"
If you're using Linux, you'll need to [do a couple steps](https://wiki.somlabs.com/index.php/Installing_STM32CubeProgrammer_on_Ubuntu_18.04) before programming.

3. Open STM32CubeProgrammer.
4. Select `USB` from the connection type dropdown on the right.
![USB Connection drop down](images/usb-connection.webp)
Expand Down
2 changes: 1 addition & 1 deletion docs/openpnp/calibration/5-mm-per-pixel/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ This next step calibrates the relationship between pixels and millimeters to mak
![Drag the box to the center of the outline square on the datum board.](images/Screen Shot 2022-05-19 at 12.30.48 PM.webp)

!!! Note "Squareness"
Don't worry if the square fo the box doesn't perfectly align with the camera image. Any slight skew will be adjusted for duing jobs with fiducial calibration.
Don't worry if the square of the box doesn't perfectly align with the camera image. Any slight skew will be adjusted for duing jobs with fiducial calibration.

1. Once you have it perfectly outlined, click the `Measure` button again. The new calibration numbers will populate the Units per Pixel fields. They should be relatively close to the default values.

Expand Down
Binary file added docs/openpnp/calibration/img/save.webp
Binary file not shown.
6 changes: 6 additions & 0 deletions docs/openpnp/calibration/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,12 @@ This video walks you through the process of calibrating your LumenPnP in OpenPnP
<iframe width="560" height="315" src="https://www.youtube.com/embed/h3mtEQfGMlM" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

## Save Your Settings

After each step in calibration, save your settings. OpenPnP may not remember your settings if you close the application without saving, so be sure to save every time you adjust your calibration.

![](img/save.png)

## Different calibration methods

OpenPnP has a feature called `Issues and Solutions` that tries to identify calibration tasks that need performing. Some users have reported success using this tool, but is incongruent with the rest of these calibration steps and provided configuration files. This documentation is aimed specifically at using the provided configuration files. **We highly recommend using the provided configuration files and following this documentation.** If you choose to use the `Issues and Solutions` tool instead, we recommend using the [OpenPnP Wiki](https://github.com/openpnp/openpnp/wiki) for reference.
Expand Down
2 changes: 2 additions & 0 deletions docs/openpnp/ftp/1-board-setup/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,8 @@ Next, you'll set the physical location of the FTP board in OpenPnP.

![Set the Z coordinates of your board](images/Set-board-location-z.webp)

1. Jog the Nozzle back up and out of the way to prevent a crash.

6. Click on the "Fiducial Scan" button. The machine will move to the fiducial locations and use the camera to identify the center of the fiducial.

![Automatically set board location](images/Auto-check-board-fiducials.webp)
Expand Down
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
103 changes: 63 additions & 40 deletions docs/openpnp/ftp/2-feeder-setup/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,50 +8,69 @@ description: >
---
# Feeder Setup ([Video Guide](https://youtu.be/W0kdrxkkXUw?si=4_92zIogzx7Cs2Lq&t=512))

The FTP PCB has two different types of components: resistors and LEDs. We'll just be populating up the resistors to demonstrate disabling placements.
The FTP PCB has two different types of components: resistors and LEDs. We'll only be populating the resistors to demonstrate disabling placements.

!!! Note "Powered Feeders"
If you purchased any [8mm Photon Feeders](https://opulo.io/products/8mm-feeder), we highly recommend using them for populating the FTP board. Follow the instructions for **[setting them up](../../../feeders/1-overview/feeder-overview.md)** now, and then proceed to the [test run](../3-test-run/index.md) once complete.

## Mount a Strip Feeder

1. Use two M3x10 button head screws and two M3 wingnuts to secure the printed tray feeder through onto the staging plate using holes: C15 and E15.
![Install the feeder to the staging plate](images/Feeder-installed-with-screws.webp)
1. Get the 8mm strip feeder and mounting hardware from your Getting Started Kit.

1. For each component, cut a strip of component tape off the reel about 125mm long.
![](images/8mm-strip-feeder.webp)

2. Slide the Resistors into the left-most tray feeder with the tape feed holes on the left. Slide the LEDs into the adjacent tray. Don't peel back the clear covering tape yet.
1. Place the strip feeder onto your staging plate in the columns labeled 14, 15, and 16.

![Install the feeder to the staging plate](images/strip-placement-location.webp)

3. In OpenPnP, connect to your LumenPnP and home it.
![Connect to your LumenPnP and home it](images/Connect-and-home.webp)
1. Use the 2x M3 x 10mm super flat-head screws and M3 wingnuts to mount the strip feeder to your staging plate in holes `A15` and `G15`.

![](images/strip-mounting-location.webp)
![](images/wingnut.webp)

1. Load the provided resistors into the left-most track in the strip feeder, making sure that the tape holes are on the left. Don't peel back the clear covering tape yet.

![](images/loading-tape.webp)
![](images/tape-mounted.webp)

1. In OpenPnP, connect to your LumenPnP and home it.

![Connect to your LumenPnP and home it](images/Connect-and-home.webp)

## Add Feeders

1. Navigate to the `Feeders` tab in the top-right pane.
![Switch to the feeders list](images/Feeders-tab.webp)

![Switch to the feeders list](images/Feeders-tab.webp)

2. Click on the "Add Feeder" icon button.
![Start adding a new feeder](images/Add-feeder-button.webp)

![Start adding a new feeder](images/Add-feeder-button.webp)

3. Select `ReferenceTrayFeeder` and click `Accept`.
![Select and add a new reference tray feeder](images/Select-referenceTrayFeeder.webp)

![Select and add a new reference tray feeder](images/Select-referenceTrayFeeder.webp)

4. In the lower-right panel, you'll be in the `Configuration` tab. Change the `Part` to be `R_0603_1608Metric-R_Small`.
![Assign the resistor to the tray feeder](images/Change-feeder-part.webp)

![Assign the resistor to the tray feeder](images/Change-feeder-part.webp)

5. Set the `Y` `Offset` to `-4`. This is the space between components on the tape.
![Set feeder offset](images/Set-feeder-offset.webp)

![Set feeder offset](images/Set-feeder-offset.webp)

6. Set the `Y` `Tray Count` to `30`. This is the number of components available on the feeder before it needs to be manually moved forward.
![Set the feeder tray count](images/Set-tray-count.webp)

![Set the feeder tray count](images/Set-tray-count.webp)

7. Set the Pick location to: `X=45`, `Y=175`, `Z=20` as a starting point.
![Set the starting location for the left feeder](images/Set-left-pick-location.webp)
7. Set the Pick location to: `X=130`, `Y=205`, `Z=20` as a starting point.

![Set the starting location for the left feeder](images/Set-left-pick-location.webp)

!!! danger "Feeder rotation value"
The `Rotation` field in feeder configuration sets the orientation that OpenPnP thinks the **component starts at in the tape**. If you find that your parts are placing with a consistent rotation offset, try adjusting this value (start with increments of 90 degrees) until your parts are placing with the correct orientation.

1. Click on the "Position Camera" icon button to move the top camera roughly over the left feeder.
8. Click on the "Position Camera" icon button to move the top camera roughly over the left feeder.
![Move the top camera over the left feeder's approximate location](images/Position-camera-over-feeder.webp)

1. Position the center of the top camera feed over the center of the top-most slot holding a resistor in the tray. You can drag the reticle in the camera feed, or use the jog buttons.
Expand All @@ -69,30 +88,38 @@ The FTP PCB has two different types of components: resistors and LEDs. We'll jus
1. Click the `Enable` checkbox in the feeder list.
![Enable the feeder so that it is used](images/Enable-feeder.webp)

1. Do the same procedure again for the LED feeder. You'll assign the part `LED_0603_1608Metric-LED_Small` to the new feeder.
## Fine-Tuning Feeder Height

## Fine-tuning feeder height
1. Select N1 with the N045 nozzle tip using the drop down.

![](../../calibration/6-nozzle-offset/images/select-n1-machine-control.webp)

1. Navigate to the `Feeders` tab in the top-right pane.
![Switch to the feeders list](images/Feeders-tab.webp)

2. Select the feeder you want to start with and click on the "Position Nozzle" icon button to bring the nozzle over the feeder.
![Position the nozzle over the feeder](images/Position-nozzle-over-feeder.webp)
![Switch to the feeders list](images/Feeders-tab.webp)

1. Select the feeder you want to start with and click on the "Position Nozzle" icon button to bring the nozzle over the feeder.

![Position the nozzle over the feeder](images/Position-nozzle-over-feeder.webp)

3. Use the Jog controls to lower the Z axis until the nozzle is touching the surface of the plastic tape cover.
![Use the jog controls to position the nozzle over the feeder](images/Z-jog-controls.webp)
![Position the nozzle over the feeder](images/Nozzle-position-far.webp)
![Position the nozzle over the feeder](images/Nozzle-position-close.webp)
1. Use the Jog controls to lower the Z axis until the nozzle is touching the surface of the plastic tape cover.

![Use the jog controls to position the nozzle over the feeder](images/Z-jog-controls.webp)
![Position the nozzle over the feeder](images/set-height.webp)

4. Click on the "Capture Nozzle" icon button to save the new Z height of the feeder.
![Save the nozzle position](images/Capture-nozzle-position-feeder.webp)
1. Click on the "Capture Nozzle" icon button to save the new Z height of the feeder.

![Save the nozzle position](images/Capture-nozzle-position-feeder.webp)

5. Jog the Z axis safely upwards, and then jog XY gantry away from the feeder.
![Move the Tool Head away from the feeder](images/XY-jog-controls.webp)
1. Jog the Z axis safely upwards, and then jog XY gantry away from the feeder.

![Move the Tool Head away from the feeder](images/XY-jog-controls.webp)

6. Remove the tape cover from the feeder.
7. Click the "Pick" icon button to pick a component from the feeder. If the component is picked up properly, your Z-height is correct. If not, you should:
![Pick from the feeder](images/Pick-from-feeder.webp)
1. Remove the cover film from the feeder.

1. Click the "Pick" icon button to pick a component from the feeder. If the component is picked up properly, your Z-height is correct. If not, you should:

![Pick from the feeder](images/Pick-from-feeder.webp)

1. Lower the Z height of the feeder by `0.1mm`
2. Press Apply to save the change
Expand All @@ -105,16 +132,12 @@ The FTP PCB has two different types of components: resistors and LEDs. We'll jus
![](images/effectivesafezerror.webp)

1. After you've successfully picked a component, in the machine `Machine Controls` pane, switch to the `Special` Tab.
![Switch to the special tab](images/Special-tab.webp)

1. Recycle the component you've successfully picked up
![Recycle the component you've picked up](images/Recycle-component.webp)

![Switch to the special tab](images/Special-tab.webp)

1. Copy the final Z height, select the other feeder, paste it for the other feeder, and press `Apply`
![Apply the z height from the first feeder to the second one](images/Copy-and-paste-z-height.webp)
1. Recycle the component you've successfully picked up.

1. Test picking a component from the other feeder
![Pick from the feeder](images/Pick-from-feeder.webp)
![Recycle the component you've picked up](images/Recycle-component.webp)

## Next Steps

Expand Down
2 changes: 1 addition & 1 deletion docs/openpnp/ftp/3-test-run/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Before running the job, you'll test the bottom vision pipeline that is used to a

It is crucial that you home your machine before each job. The stepper motors in the LumenPnP de-power after being idle for a while, so rehoming ensures that the machine is aligned and positioned correctly for placement.

1. It's time to place your first component. Press the "Single job step" icon button to proceed through the job step by step. The LumenPnP will go to pick a component, align it using the bottom camera, and place it on the board. Step through until a few parts are populated.
1. It's time to place your first component. First, press the green "Play" button in the Job tab to start the job. This will initiate fiducial calibration. Once this is complete, click the "Pause" button. You can now use the "Single job step" button to proceed through the job step by step. The LumenPnP will go to pick a component, align it using the bottom camera, and place it on the board. Step through until a few parts are populated.

![Start placing components](images/One-step-placement.webp)

Expand Down
2 changes: 1 addition & 1 deletion docs/openpnp/ftp/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## What you'll learn

This guide walks you through setting up and completing your first placement job using the [Getting Started Kit](https://opulo.io/products/getting-started-kit), included with the LumenPnP v3. Before going through this guide, make sure you've completed the [Calibration](../calibration/index.md) guide to get your machine up and running.
This guide walks you through setting up and completing your first placement job using the [Getting Started Kit](https://opulo.io/products/getting-started-kit), included with the LumenPnP. Before going through this guide, make sure you've completed the [Calibration](../calibration/index.md) guide to get your machine up and running.

It will be useful to refer to this guide again after you finish it the first time, since many of these steps will need to be performed for every new board and job you start. Take your time going through this the first time around and keep in mind that this process gets faster with experience.

Expand Down
Loading

0 comments on commit 0d042b5

Please sign in to comment.