Through this report, the re-design process of a self-balancing robot is described. Different factors affecting the performance of the self-balancing task such as weight and mass centre location are analysed to follow with the design of a new prototype based on lightness and decoupling of components concepts. Furthermore, different control algorithms (PID, LQR and PID + P) are analysed, simulated, and compared between them to recognize the most optimal control system. This theoretical analysis is used as a guideline for the implementation of the control system in the prototype. The instability of an inverted pendulum system is a big issue in terms of controllability. So, simulations are carried out approaching to a more realistic scenario with the development of a non-linear dynamic model of the system via Simulink. Following the path for a more realistic simulation of the control system, controller’s performance is analysed and problems regarding execution time and time variability are identified. Moreover, the lack of information according the use of Raspberry Pi with MATLAB for the control of a self-balancing robot has motivated the definition of a strategy for enabling code programming through MATLAB and consequent code execution in Raspberry Pi microcontroller, clarifying the challenges that this environment drags with and giving solutions to this problem. Finally, with the idea this work could be used as a start-point for future works and use in educational area, conclusions are defined and explained, and future tasks are suggested to enhance the knowledge on this matter.