Supporting Heterogeneous Device Development And Communication