Kevin's FIRST Robotics Competition Code Repository


2005 FRC Code and Documentation
Filename Description Size
navigation_frc2005_01_22.zip Same as below, but with updated gyro code, additional documentation and data sheets for compatible encoders and gyros.
1,028,228

navigation_frc2005_01_08.zip

Raw build directory of the scripted navigation demo shown at the kick-off. An updated version is in the works.
365,307


PIC Microcontroller Documentation
Filename Description Size

pic18f8520_ds.pdf
pic18f8520_ds.zip

Data sheet for the PIC18F8520 microcontroller found in the EDU-RC and FRC-RC (document #39609B).
6,878,202
3,509,529


FRC-RC Example Code
Filename Description Size

frc_serial_ports_0.3.zip

frc_serial_ports_0.2.zip

Software implementation of a fully buffered, full-duplex, interrupt-driven serial port driver that can be used with either or both on-board serial ports. Also included is a modified version of IFI's printf() software that supports the use of both serial ports. Unlike the IFI code, this driver is non-blocking, which means that you can send a byte of data without having to wait around to make sure it gets sent before sending another. This is the same way operating systems, like Linux and Windows, handle serial data reception and transmission in the background for application software. Version 0.3 and later is designed to be compatible with the new output stream functions built into the Microchip C18 2.4 compiler. Continue using version 0.2 if you're using C18 2.3 or earlier.

Because you can now easily receive data from another computer, you can interact with your nifty IFI robot controller in real-time to change operating parameters on-the-fly using common terminal emulation software, or send real telemetry to custom applications written with Visual Basic, Visual C++, MATLAB, etc... Don't want to drag a long serial cable behind your 'bot? Well, check-out the nifty SMiRF radio modem from SparkFun Electronics. Would the coolness factor of your 'bot be elevated if you had a LCD mounted on board to display diagnostics (yes, this is a rhetorical question)? How about using one of the serial LCDs that can be found on the 'net? I've been using Scott Edward's Electronics serial LCDs with success.

Disclaimer: Other than being a satisfied customer, I have no interest (financially, or otherwise) in the companies mentioned above.

92,927

76,989

frc_adc.zip

Example driver and supporting software to setup and run your robot controllers analog-to-digital converter in the background. A few advantages of using this software include parallel, non-blocking operation of the ADC hardware, precise control over the sampling period, which is important for signal processing and control applications and the ability to make more precise measurements using oversampling. Updated 12/15/05.

83,485
frc_gyro.zip

Example driver and supporting software that can be used to interface a variety of inexpensive gyros to the IFI FRC robot controller. Updated 12/15/05.

1,244,827
frc_encoder.zip Example driver and supporting software that can be used to interface two quadrature output optical encoders to the IFI FRC robot controller. Updated 1/2/05.
212,830
frc_accelerometer.zip Example driver and supporting software that can be used to interface a Texas Instruments accelerometer to the IFI FRC robot controller.
408,297
frc_eeprom.zip Example software that can be used to read from and write to your robot controller's Electrically Erasable Programmable Read-Only Memory (EEPROM). Updated 11/10/05.
161,769
frc_interrupts.zip Heavily annotated template interrupt and timer code for the IFI FRC robot controller.
54,269


EDU-RC Example Code
Filename Description Size

edu_serial_ports_0.3.zip

edu_serial_ports_0.2.zip

Software implementation of a fully buffered, full-duplex, interrupt-driven serial port driver that can be used with either or both on-board serial ports. Also included is a modified version of IFI's printf() software that supports the use of both serial ports. Unlike the IFI code, this driver is non-blocking, which means that you can send a byte of data without having to wait around to make sure it gets sent before sending another. This is the same way operating systems, like Linux and Windows, handle serial data reception and transmission in the background for application software. Version 0.3 and later is designed to be compatible with the new output stream functions built into the Microchip C18 2.4 compiler. Continue using version 0.2 if you're using C18 2.3 or earlier.

Because you can now easily receive data from another computer, you can interact with your nifty IFI robot controller in real-time to change operating parameters on-the-fly using common terminal emulation software, or send real telemetry to custom applications written with Visual Basic, Visual C++, MATLAB, etc.. Don't want to drag a long serial cable behind your 'bot? Well, check-out the nifty SMiRF radio modem from SparkFun Electronics. Would the coolness factor of your 'bot be elevated if you had a LCD mounted on board to display diagnostics (yes, this is a rhetorical question)? How about using one of the serial LCDs that can be found on the 'net? I've been using Scott Edward's Electronics serial LCDs with success.

Disclaimer: Other than being a satisfied customer, I have no interest (financially, or otherwise) in the companies mentioned above.

70,609

75,185

edu_adc.zip Example driver and supporting software to setup and run your robot controllers analog-to-digital converter in the background. A few advantages of using this software include parallel, non-blocking operation of the ADC hardware, precise control over the sampling period, which is important for signal processing and control applications and the ability to make more precise measurements using oversampling. Updated 12/15/05
67,233
edu_gyro.zip Example driver and supporting software that can be used to interface a variety of inexpensive gyros to the IFI EDU robot controller. Updated 12/15/05.
1,226,334
edu_encoder.zip Example driver and supporting software that can be used to interface two quadrature output optical encoders to the IFI EDU robot controller. Updated 1/2/05.
207,292
edu_accelerometer.zip Example driver and supporting software that can be used to interface a Texas Instruments accelerometer to the IFI EDU robot controller.
392,239
edu_eeprom.zip Example code that can be used to read from and write to your robot controller's Electrically Erasable Programmable Read-Only Memory (EEPROM). Updated 11/10/05.
125,092

edu_interrupts.zip

Heavily annotated template interrupt and timer code for the IFI EDU robot controller.
53,736
edu_clock.zip Example code that builds upon the code found in interrupts.zip to create a real-time clock that can be easily modified to create sophisticated sequencers and state machines.
46,252
edu_clock 2.zip Modified version of clock demo that extends the elapsed time output to include tenths of seconds.
46,339
edu_serial_tx.zip Demonstrates the use of a timer and associated interrupt to precisely clock a software-based serial transmitter state-machine, which can be used to send data to other common serial devices like serial LCDs. Pretty good example of a state-machine.
90,197
edu_led_pwm.zip LED "dimmer" code that demonstrates the use of the PIC18F8520's built-in support for Pulse Width Modulation. Using an array or string of LEDs, this example code can be used to generate lighting effects on your 'bot.
57,281

Last Update: 12/28/2005 at 8:20 PM PST
Copyright 2003-2006 R. Kevin Watson