They are seems to be similar in meaning, however in a specific context Googling vote for the first.
... teaching users for free.
I think free of charge(s) is more appropriate choice but I couldn't find convincing support for the idea.
Are those really equivalent and what is the best for the context? Is there another alternative?