diff --git a/README.txt b/README.txt
index 2a34ae3..b1c9184 100644
--- a/README.txt
+++ b/README.txt
@@ -107,6 +107,7 @@ The following MCU's and configurations have been tested:
* PIC24FJ64GB002
* PIC24FJ256DA206
* PIC18F46J50 - PIC18F Starter Kit
+ * PIC18F25K50 - Pololu P-Star 25K50 Micro
* PIC16F1459
* PIC16F1454 - similar to PIC16F1459
diff --git a/apps/cdc_acm/MPLAB.X/nbproject/configurations.xml b/apps/cdc_acm/MPLAB.X/nbproject/configurations.xml
index ea51165..b3e0a19 100644
--- a/apps/cdc_acm/MPLAB.X/nbproject/configurations.xml
+++ b/apps/cdc_acm/MPLAB.X/nbproject/configurations.xml
@@ -1087,6 +1087,74 @@
+
+
+ localhost
+ PIC18F25K50
+
+
+
+ XC8
+ 2
+
+
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+ false
+
+ false
+ false
+ false
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
localhost
diff --git a/apps/cdc_acm/main.c b/apps/cdc_acm/main.c
index 5fab94b..c202a85 100644
--- a/apps/cdc_acm/main.c
+++ b/apps/cdc_acm/main.c
@@ -55,6 +55,17 @@ _CONFIG3(WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALPMPDIS & WPDIS_WPDI
#pragma config IOL1WAY = OFF
#pragma config WPDIS = OFF /* This pragma seems backwards */
+#elif defined(_18F25K50) || defined(_18F45K50)
+#pragma config PLLSEL = PLL3X /* 16 Mhz * 3 = 48 Mhz */
+#pragma config CFGPLLEN = ON
+#pragma config CPUDIV = NOCLKDIV
+#pragma config LS48MHZ = SYS48X8
+#pragma config FOSC = HSH
+#pragma config nPWRTEN = ON
+#pragma config WDTEN = OFF
+#pragma config STVREN = ON
+#pragma config XINST = OFF
+
#elif _16F1459
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
diff --git a/apps/hid_composite/MPLAB.X/nbproject/configurations.xml b/apps/hid_composite/MPLAB.X/nbproject/configurations.xml
index bb10b9b..eb43e11 100644
--- a/apps/hid_composite/MPLAB.X/nbproject/configurations.xml
+++ b/apps/hid_composite/MPLAB.X/nbproject/configurations.xml
@@ -1004,6 +1004,74 @@
+
+
+ localhost
+ PIC18F25K50
+
+
+
+ XC8
+ 2
+
+
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+ false
+
+ false
+ false
+ false
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
localhost
diff --git a/apps/hid_composite/main.c b/apps/hid_composite/main.c
index a85a9a0..c95315e 100644
--- a/apps/hid_composite/main.c
+++ b/apps/hid_composite/main.c
@@ -55,6 +55,17 @@ _CONFIG3(WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALPMPDIS & WPDIS_WPDI
#pragma config IOL1WAY = OFF
#pragma config WPDIS = OFF /* This pragma seems backwards */
+#elif defined(_18F25K50) || defined(_18F45K50)
+#pragma config PLLSEL = PLL3X /* 16 Mhz * 3 = 48 Mhz */
+#pragma config CFGPLLEN = ON
+#pragma config CPUDIV = NOCLKDIV
+#pragma config LS48MHZ = SYS48X8
+#pragma config FOSC = HSH
+#pragma config nPWRTEN = ON
+#pragma config WDTEN = OFF
+#pragma config STVREN = ON
+#pragma config XINST = OFF
+
#elif _16F1459
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
@@ -369,4 +380,4 @@ void interrupt high_priority isr()
#error need to make ISR
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/apps/hid_mouse/MPLAB.X/nbproject/configurations.xml b/apps/hid_mouse/MPLAB.X/nbproject/configurations.xml
index bf06841..7d3cd2c 100644
--- a/apps/hid_mouse/MPLAB.X/nbproject/configurations.xml
+++ b/apps/hid_mouse/MPLAB.X/nbproject/configurations.xml
@@ -527,6 +527,74 @@
+
+
+ localhost
+ PIC18F25K50
+
+
+
+ XC8
+ 2
+
+
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+ false
+
+ false
+ false
+ false
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
localhost
diff --git a/apps/hid_mouse/main.c b/apps/hid_mouse/main.c
index d23d3f6..7956a02 100644
--- a/apps/hid_mouse/main.c
+++ b/apps/hid_mouse/main.c
@@ -55,6 +55,17 @@ _CONFIG3(WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALPMPDIS & WPDIS_WPDI
#pragma config IOL1WAY = OFF
#pragma config WPDIS = OFF /* This pragma seems backwards */
+#elif defined(_18F25K50) || defined(_18F45K50)
+#pragma config PLLSEL = PLL3X /* 16 Mhz * 3 = 48 Mhz */
+#pragma config CFGPLLEN = ON
+#pragma config CPUDIV = NOCLKDIV
+#pragma config LS48MHZ = SYS48X8
+#pragma config FOSC = HSH
+#pragma config nPWRTEN = ON
+#pragma config WDTEN = OFF
+#pragma config STVREN = ON
+#pragma config XINST = OFF
+
#elif _16F1459
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
@@ -318,4 +329,4 @@ void interrupt high_priority isr()
#error need to make ISR
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/apps/unit_test/MPLAB.X/nbproject/configurations.xml b/apps/unit_test/MPLAB.X/nbproject/configurations.xml
index e213aac..3d1e3ec 100644
--- a/apps/unit_test/MPLAB.X/nbproject/configurations.xml
+++ b/apps/unit_test/MPLAB.X/nbproject/configurations.xml
@@ -526,6 +526,74 @@
+
+
+ localhost
+ PIC18F25K50
+
+
+
+ XC8
+ 2
+
+
+
+
+
+
+
+ false
+
+
+
+
+ false
+
+ false
+
+ false
+ false
+ false
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
localhost
diff --git a/apps/unit_test/main.c b/apps/unit_test/main.c
index 813351f..fc6ddeb 100644
--- a/apps/unit_test/main.c
+++ b/apps/unit_test/main.c
@@ -54,6 +54,17 @@ _CONFIG3(WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALPMPDIS & WPDIS_WPDI
#pragma config IOL1WAY = OFF
#pragma config WPDIS = OFF /* This pragma seems backwards */
+#elif defined(_18F25K50) || defined(_18F45K50)
+#pragma config PLLSEL = PLL3X /* 16 Mhz * 3 = 48 Mhz */
+#pragma config CFGPLLEN = ON
+#pragma config CPUDIV = NOCLKDIV
+#pragma config LS48MHZ = SYS48X8
+#pragma config FOSC = HSH
+#pragma config nPWRTEN = ON
+#pragma config WDTEN = OFF
+#pragma config STVREN = ON
+#pragma config XINST = OFF
+
#elif _16F1459
#pragma config FOSC = INTOSC
#pragma config WDTE = OFF
@@ -273,4 +284,4 @@ void interrupt high_priority isr()
#error need to make ISR
#endif
-#endif
\ No newline at end of file
+#endif
diff --git a/usb/src/usb_hal.h b/usb/src/usb_hal.h
index 153f832..a13e90c 100644
--- a/usb/src/usb_hal.h
+++ b/usb/src/usb_hal.h
@@ -186,14 +186,14 @@ struct buffer_descriptor {
#define SFR_USB_STALL_IF UIRbits.STALLIF
#define SFR_USB_TOKEN_IF UIRbits.TRNIF
#define SFR_USB_SOF_IF UIRbits.SOFIF
-#define SFR_USB_IF PIR2bits.USBIF
+#define SFR_USB_IF USBIF
#define SFR_USB_INTERRUPT_EN UIE
#define SFR_TRANSFER_IE UIEbits.TRNIE
#define SFR_STALL_IE UIEbits.STALLIE
#define SFR_RESET_IE UIEbits.URSTIE
#define SFR_SOF_IE UIEbits.SOFIE
-#define SFR_USB_IE PIE2bits.USBIE
+#define SFR_USB_IE USBIE
#define SFR_USB_EXTENDED_INTERRUPT_EN UEIE
@@ -287,7 +287,9 @@ struct buffer_descriptor {
#ifdef _18F46J50
#define BD_ADDR 0x400
-//#undef BUFFER_ADDR
+#elif defined(_18F25K50) || defined(_18F45K50)
+#define BD_ADDR 0x400
+#define BUFFER_ADDR 0x500
#else
#error "CPU not supported yet"
#endif