The Project

A general-purpose robotics and experimentation board for the McMaster IEEE Student Branch, the BotBoard was initially designed around the PIC16F877A microcontroller, a MAX232-bases serial port, and a 4-channel motor controller using two L293D H-bridge chips. The initial design ran at 5 MIPS / 20 MHz. The system was upgraded in 2007 to use a PIC18F4620 microcontroller, and ran at 10 MIPS with 10 MHz oscillator and 4x PLL.

The current design is the 5th revision of the original.

Design Constraints

  • Cost – the board had to be affordable for University students
  • Expandability – the board had to leave as much possibility for expansion as possible
  • Functionality – at minimum, the board had to provide 4 channels of motor control, a small power supply, and a serial port for code download

My Role

  • Circuit Board Design. Initial versions were designed alongside Tarun Grover. The final design was the first that allowed proper 2-layer assembly, as previous ones had been constructed exclusively using the McMaster IEEE Student Branch PCB mill.
  • Sample Code development. A number of sample programs demonstrating motor control and configuration of the compiler to use the bootloader were prepared.
  • Documentation and Training. An assembly manual was developed, with photographs demonstrating each stage of construction. Also, a 3-hour crash course was developed, covering the PIC18 architecture, using the MPLAB environment and developing simple programs using C18.

Lessons Learned

  • Selection of I/O ports – the I/O ports that were hard-wired to the motor controller were selected based on ease of layout, and not the features they carried. As a result, all motor speed control was done with inefficient software PWM, and some of the features of the PIC were inaccessible. More careful consideration of these facts would have made the board more useful to a wider group of students.
  • Device selection – At the time that the board was developed, the USB-based PIC18F4550 was available, and would have been a far more suitable device for most students, as few newer computers were equipped to use a serial bootloader out of the box. Further, the initial use of the PIC16F877A was ill-advised, as more powerful PIC18-based parts were actually easier to make work with a bootloader.