I had an unbelievably difficult time setting my HomeLink up until I figured out that my motors have rolling codes because I'm using Liftmaster.
If you have a Liftmaster or other rolling code remote and are pairing a garage opener that is newer (<10 years or so) and you are not having success, do this:
1. Clear HomeLink (push buttons 1 and 3 until you see fast blinking lights)
2. Hold the remote next to the visor and press & hold the button you want to program and the button on the remote at the same time. Leave them pressed until HomeLink blinks fast.
3. Run to your garage opener and press the colored button on the back (mine was yellow)
4. Run back to the truck and press the same button you were programming on HomeLink. This time short press the button 1-3 times.
DONE!
You have limited time to complete steps 3-4, so run or get someone else to press the button on the receiver.
Note that some openers/motors are using a Liftmaster receiver. Such is the case with one of my motors, which is conveniently branded as a RAMset 100. Inside the case, there is a receiver that looks like this:
You can see that this receiver has 3 channels and above each one is a yellow button and a yellow LED. These are the buttons you need to push in step 3 above. Look at where the wires are going and push the button above.
In motors that don't have this module, the button is typically in the back of the unit:
5th Gen Rams do not show anything in the dash, focus all your attention to the HomeLink's yellow LED.