This paper presents the architecture of a small university satellite that we have developed. The main design criteria were low cost and fault tolerance, which have been achieved by using Commercial Off The Shelf components and by replicating all critical functions, while monitoring the state of the system for failures. The focus of the paper is on overall organization, design partitioning and details of the actual hardware. We show that the development of a low-cost satellite is feasible with a very limited budget.