Since the buck converter increases the PWM to increase the output voltage, when the converter sees that the voltage is above 12V in the output (most of the times that will be the case) the PWM will be small and will go down to the minimum setting because the battery voltage will never go down unless you load the batteries and let them discharge until that point.
On the other hand if the batteries are super discharged or loaded a lot what I said before will happen as the buck converter will fail to take the voltage up to 12V thus increasing the PWM to its maximum setting and worsening the matching again.
If you want to go cheap I would suggest trying to modify an existing buck converter you might have at hand. If not making a converter I am afraid it will be almost as expensive as buying a specialized tool.
For the past few months I have been developing my own MPPT you can see some of my work here: http://www.fieldlines.com/story/2008/10/20/2936/8065
I have not updated because I have had little time but I made a second version that I can make it behave as an open loop buck converter controlled with a jumper or as an MPPT. Everything is working great but I still need to thermally test my design. There is no need for a heatsink all the way to 15Amps. But I would like to rate it for 25A. This current level is yet to be tested.
As Flux said though it might not be the best option when we consider that you are dealing with only 30W thus not cost effective. Below are some pictures:
This is a picture of my MPPT working from 12V solar panel to 12V battery. This is not recommended as MPP might be below battery voltage. (92.2% efficiency)
Picture of the unit not completely soldered:
Picture of voltage across bottom side MOSFET:
Voltage across top side MOSFET:
Zoom in of leading edge of above picture:
I only made 5 of them, one for me, one for a friend, one for kill-it-dead test and the other two I can spare when completely tested. The test one I will most likely give it just for the shipping because of the abuse I have given to it.
Well, hope I made my explanation clear.