It is illegal to charge any patient less than you charge medicare for the same service. Thus, if you accept medicare patients, which most doctors do, you cannot give free care in your office. Even free screenings can get you in trouble.
The only solution is to drop medicare form your existing practice--which defeats the purpose of providing care to underserved people--or to establish a separate practice that does not take medicare. However, that separate practice will have its own overhead costs, and if you don't charge for your services you can't cover your out-of-pocket expenses.
For the record, I do volunteer my services at a university hospital, but that only saves the money for the hospital--they still have to charge the patients or they would violate the law. And also for the record, though such donations of time are worth a great deal of money, pro bono services are not tax-deductable.