We investigate the emergence and enforcement of contribution norms to public goods in homogeneous and heterogeneous groups. With survey data we demonstrate that uninvolved individuals hold well defined yet conflicting normative views of fair contribution rules related to efficiency, equality, and equity. In the experiment, in the absence of punishment no positive contribution norm is observed and all groups converge towards free-riding. With punishment, strong and stable differences in contributions emerge across group types and individuals in different roles. In some cases these differences result from the emergence of an efficiency norm where all fully contribute. In the cases where full efficiency is not attained, these differences result from the enforcement of different relative contribution norms. Hence, our experimental data show that, even in heterogeneous groups, individuals can overcome the collective action problem inherent in public good games by agreeing on and enforcing a contribution norm.