Sectors: Embedded
Development Model: Scrum Agile
Project Team: Project Manager (part time), Project Lead (30-40 hrs/wk), Junior Engineer
Languages: C


Local microwave company manufactures industrial grade cooking equipment for restaurants globally. Company Is on-shoring production of these ovens and needed to have its own version of the software.

Genova Technologies was tasked to create the control program for their microwave ovens. There are two versions of the ovens. One had a 4 digit seven-segment LED display and keypad input. The other version has a quadrature encoded dial input with surrounding LEDs to indicate cook time.


The supplied schematic was not accurate in terms of some I/O lines.
Some of the user requirements were incomplete and unclear.
User acceptance was not clearly defined.
The prototype production boards were delayed.
The prototype boards we received to integrate with were not fully hardware debugged. We reported several issues to the client that we tracked down.
The client’s zero-crossing detection circuit was louder than expected.

Lessons Learned

Allow time to work with client to clearly define requirements. Use a notation that is easily understood by all. (A UML state machine notation would have eased this process.)
Encourage the client to maintain schedule on needed hardware.
Set commitments and goals with the client on which prototype boards will be fully tested.
Stay flexible. The cook timer time base was changed to use the on-chip timer. It was sufficiently accurate for the 10 to 30-minute max cook times.
We had to develop our own test process and gave the client a copy.


Genova was able to deliver software on spec on time and on budget.

Team Composition

One Sr Software Engineer/PM for major development plus one Junior Software Engineer. One Sr. Architect for the Discover Phase.
See Project Team above.


Genova was responsible for performing the following tasks:
• Creating the control program software to operate the two varieties of microwave oven such that it met the client’s requirements and schedule.


• Software scanned seven-segment display.
• Software scanned keypad.
• Software read quadrature encoded dial.
• I2C interface to EEPROM.
• Magnetron control based on AC zero-crossing interrupt.