Skip to content
Code from our 2005 Season
C C++ Objective-C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


This directory contains the default code for the Innovation First 2005 Full-size Robot Controller.

To compile this code you must have Microchip's MPLAB IDE with their C18 compiler installed on your system.

If you wish to restore your Full-size Robot Controller to the default functionality as shipped from the factory, use the IFI Loader application 
to download the FRC_default.hex file to your Robot Controller.

CAUTION:  Do not relocate this FrcCode directory very deep in your directory tree.  This is because the Microchip compiler has a 64 character 
path/filename limit.  We suggest placing it in a directory named C:\mcc18\Projects\

Use FRC_library.lib (default) if you plan to use the Generate_Pwms() function.  This uses Timer0 to synchronize any PWM outputs generated by the 
User processor to make sure they avoid any SPI interrupts.   If you want to use Timer0 yourself, then you can replace FRC_library.lib with 
FRC_alltimers.lib in the project.

-   Removed printf_lib.c and printf_lib.h - now using <stdio.h>, compiler needs -nw=2066 to suppress warnings
-   Added user_camera.c and user_camera.h - to remove code from build -> remove the _USE_CMU_CAMERA macro
-   Replaced file named PicSerialDrv with user_serialdrv
-   Note:  when using a 'printf' use a '\r' rather than a '\n' with the new compiler (v2.4) 

-   Added user_SerialDrv.c - device driver for the uart
-   Added code to handle packets from the breaker panel

- ifi_aliases.h
    Changed "competition_mode" alias to "disabled_mode" to be more accurate.
    Added comment explaining that this bit is 1 when the RC is disabled.
- ifi_default.h
    Corrected comment regarding "disabled" bit.  This bit is 1 when disabled.

- user_routines_fast.c
    Added interrupt enable check to interrupt service routine to ensure that disabled interrupts are not serviced.
    Also all PWM and Relay outputs are initialized to neutral when entering Autonomous.  
    This fixes a problem where the last PWM values are remembered and stuck throughout Autonomous mode when switching from Disabled to Autonomous.
- ifi_aliases.h
    Added aliases for the CCP pins (PWM OUTPUTS 13-16).
    These can be used as digital outputs (not inputs) when properly configured.
- README.txt (this file) 
    Added recommended directory for code placement.

- ifi_aliases.h
    Swapped relayX_fwd and relayX_rev aliases.
    Added a note that the REV/FWD labels on the Robot Controller are incorrect.
- FRC_default.hex
    Recompiled to reflect the correct relay behavior (swapped FWD/REV).

- user_routines_fast.c
    Added Generate_Pwms() function call to User_Autonomous_Code.
- 18f8520user.lkr
    Removed debug section of program memory.  Now User code can go all the way up to 0x7FFF.
- FRC_library.lib and FRC_alltimers.lib
    Now configure TTL Serial Port (USART2) RX2 pin as an input by default.

- user_routines.c
    Corrected Limit Switch section by removing NOT (!) from inputs.
- ifi_aliases.h
    Corrected User_Byte1 and User_Byte2 aliases.
    Added TTL Serial Port aliases.

- Initial Release
You can’t perform that action at this time.