Energy storage systems have many applications including making the power grid more efficient, reliable, and economical and assisting in efficiently integrating renewable energy. Wind and solar energy are intermittent and therefore provide varying unpredictable power to the grid. Energy storage systems can be used to store energy while it is available for later use, thereby playing a significant role in the increased implementation of renewable energy. A battery management system is necessary to monitor and maintain safe, optimal operation of each battery stack in the energy storage system. The purpose of this research is to create and implement an advanced graphical user interface for a battery management system (BMS). The BMS will allow each battery into the stack to be individually monitored and managed while allowing different charging profiles to be applied. The graphical user interface will be created on the Linux QT platform and displayed on a BeagleBone board. This embedded board will then be implemented into the physical circuitry of the battery management system, a STMicroelectronics microcontroller. The battery management system being designed for is unique in the fact that individual batteries can be isolated. This means that while some batteries are charging, others can be supplying the load. As a result, the system is more reliable which can help it economically and quickly meet peak loads or eliminate short term power outages, for example. Currently peak loads are met by operating power plants at a higher capacity than what is needed to meet unexpected surges. To manage measurements and control commands between the graphical user interface and the microcontroller, a custom communication scheme will be implemented using Matlab Simulink to pass query, command, and configuration messages.