PIC24 library collection

Welcome to the PIC24 library collection! These downloadable libraries are available in two versions:

    • The latest version that uses MPLAB X and to support the second edition of the textbook. The base device for projects in this library is the dsPIC33EP128GP502 (which is pin and function compatible with the PIC24EP128GP202).
    • A frozen version consisting of the last library snapshot before the move to MPLAB X; this version uses MPLAB 8 and matches what is in the first edition of the textbook (the base device is the PIC24HJ64GP202).

The libraries are compatible with most devices in the PIC24E/H/F and dsPIC33E/F families. These libraries are accompanied by detailed explanations in the textbook, supplemented with numerous real-world examples, and accompanied by extensive on-line documentation given below, enable developers to take advantage of the wide range of peripherals offered by the PIC24. The collection consists of the getting started guide; the PIC24 support library; and ESOS, the Embedded Systems Operating System.

Getting started

The getting started page walks newcomers through the first step in developing for the PIC24: installing software and obtaining necessary hardware. Next, examples introduce use of the libraries below. Finally, documentation below provides a detailed reference to each of the library's operation.

PIC24 support library

The PIC24 support library supports all the major subsystems of the PIC24: clock configuration, configuration bits, delays, interrupts, digital I/O, timers, serial I/O, SPI, I2C, ECAN, comparators, A/D conversion, FLASH reads/writes, and DMA. An extensive set of examples accompanying the library provide working sample code to guide newcomers to using the library.


ESOS, the Embedded Systems Operating System, is a cooperative multitasking operating system with very low memory overhead. ESOS is a task-driven programming paradigm within an event-driven framework. ESOS gives the user timer, interrupt, and communication services commonly needed in embedded systems programs.


To report bugs, request features, or made contributions, use the Bitbucket repository.

License and history

These libraries are released under terms given in the license. The history document records changes made to the library collection.