Abstract
Research and development environment in embedded systems has many difficulties bringing IoT products to market. Different software and hardware development methodologies are in place to run hardware and software components of a specific project; agile methodology for software and waterfall methodology for hardware are generally implemented in projects. These two methodologies are very opposed and causes many projects to fail or miss deadlines. Agile has proven it value in product development in software and has almost imposed itself as a standard [78]. Agile can be summarized as: Customer satisfaction with small batches of software; software are delivered in small batches that are testable by the customer, feedback is given to the team by the customer in real time. Requirement changes of the software are accommodated throughout the software development process, agile has higher collaboration between stake holders and the development team [80]. The development team in a research and development environment can be very motivated by the agile environment, get better support and the trust of customers. Face to face interaction with customers and stake holders is highly promoted, this allows the production of a much better product. Attention to technical details is very high in agile than other methodologies, as the work is broken in small batches; so creating a much simpler approach to project delivery, the team is self-organizing to increase their efficiency.
Hardware process in waterfall methodology mostly does not allow requirement changes during the project, hardware are mostly manufactured once without chances of improvement, in case there is a hardware problem, a new hardware is commissioned with the new changes. Hardware development in small research team with very constrained budget, has very small budget to allow many hardware redesign as it takes time and cost are heavy on the budget. An Attempt is made in this thesis to move hardware design processes into an agile environment, giving hardware development the same benefit of the agile software development.
IoT hardware development using a field programmable logic array (FPGA) for digital hardware design and field programmable analog array (FPAA) for analog circuit design approach; will bring embedded components in high definition language (HDL), and FPAA format inside the project as software. This will allow the hardware to be fully integrated in agile and treated as software. Many microcontrollers and integrated circuit can be built inside an FPGA or FPAA. This thesis purpose is to bring an IoT project fully into the software environment, the IoT project will involve the design of a power meter on a FPGA and FPAA board and the IoT Server in IBM Watson, at the end of the project, the FPGA and FPAA circuit will be converted into a microcontroller board.