Mini-PCIe - PIC18LF2550 - DevBoard

Use your PIC-Projects on Mini-PCIe (USB/SMBus)

Similar projects worth following
DEVBoard for Mini-PCIe and PIC18LF2550.

Control over USB and SMBus(i²C), Flash over USB

Build your own Hardware for your PC


  • Flash the PIC18LF2550 over USB
  • Transfer Data over USB and SMBUS(i²C / Slave)
  • Controll the Status LEDs from Host (WPAN/WLAN/WWAN-LED)
  • Proto-Area on the Top Side
  • All Free GPIOs on the Top Side (3 x I/O, 9 x Analog or I/O, 1 x SMBUS(I²C), 1 x UART or 2 x I/O)


New Linker script for gputils. - Programm space after 0x000800 - High Interupt Vector on 0x000808 - Low Interupt Vector on 0x000818 - Protected Areas

lkr - 1.74 kB - 12/01/2016 at 18:02



Bootloder V5 from whit EEPROM FIX

x-hex - 88.83 kB - 12/01/2016 at 09:48



Eagle Board V1.3

- 98.40 kB - 12/01/2016 at 23:27



Eagle Schematic V1.3

- 362.49 kB - 12/01/2016 at 23:27



Fsusb with the changes for the bootloader USB ID: 04d8: ff0b

gzip - 30.70 kB - 11/22/2016 at 09:36


  • 1 × PIC18LF2550 - SOIC Microcontroller
  • 1 × 8Mhz Resistor
  • 4 × 10k - 0603 Resistance
  • 1 × 220p - 0603 Capacitor
  • 1 × 100n - 0603 Capacitor

View all 6 components

  • New PCBs

    Sandfrog01/12/2017 at 10:14 1 comment

    After the last error I now have the new boards these are the final version.

    I can now start testing all the functions.

  • LED Blink Test

    Sandfrog12/23/2016 at 13:43 0 comments

    A little Blink WWAN LED - Test on the V1.1 Board (Comments will be translated later), Write the Little Code with mpasm.


    	;list p=18f2550
    	include ""
    	org	0x000800		; Starte Programm
    	goto	init
    	org     0x000808		; Interuptvector High
    	; call or goto blablub
    	org	0x000818		; Interuptvector Low
    	; call or goto blablub
    	org	0x000828		; Erste Rotine auf Adr. 0x820
    	cblock	0x00			; Variabeln ab 0x00
    	t1				; Delay
    	t2				; Delay
    	t3				; Delay
    	#define WPAN	PORTC,0		; WPAN LED
    	#define WLAN	PORTC,1		; WLAN LED
    	#define WWAN	PORTC,2		; WWAN LED
    	include	""		; Ports einstellen (portreg)
    	include ""		; Software Delays (delay)
    	;include	""		; I2C Routinen
    	call	portreg			; Ports einstellen
    main    				; Mainschleife
    	bsf	WWAN
    	call	delay_1s
    	bcf	WWAN
    	call	delay_1s
    	goto	main

    	movlw 0x6d
    	movwf t1
    	movlw 0x5e
    	movwf t2
    	movlw 0x1a
    	movwf t3
    	decfsz	t1, 1
    	goto	loop_1s
    	decfsz	t2, 1
    	goto	loop_1s
    	decfsz	t3, 1
    	goto	loop_1s
    portreg	; PORTA
    	movlw	B'00000000'		; PortA I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...)
    	movwf	TRISA			; PortA I/O setzen
    	clrf	PORTA
    	; PORTB
    	clrf	PORTB			; PortB auf 0 setzen
    	clrf    LATB			; Data Latch löschen
    	movlw	B'00000011'		; PortB I/O setzen (1=In, 0=Out) (Reinfolge RB7,RB6...) (I2C Slave RB7/RB6 = input)
    	movwf	TRISB			; PortB I/O setzen
    	movlw   B'00001111'		; Alle I/0 Digital
    	movwf	ADCON1
    	; PORTC
    	movlw	B'00000000'		; PortC I/O setzen (1=In, 0=Out) (Reinfolge RC7,RC6...)
    	movwf	TRISC			; PortC I/O setzen
    	clrf	PORTC			; PortC auf 0 setzen

  • Find the Fail;-(

    Sandfrog12/21/2016 at 11:40 7 comments

    Wait long Time for the new PCB, Error from me and OSHPark, OSHPark forgets the VIAs and I order in the wrong thickness, i Order new and wait for the New One.

    Lock very nice its better as the First Version and not usable.

    Can you see whats is not ok ?

  • Order Version 1.3 / Bootloaderfix

    Sandfrog12/01/2016 at 10:05 2 comments

    - New version V1.3 ordered at OSHPark, some minor improvements, Quartz changed.

    - Fix for the Bootloader, the EEPROM is now nullified by default, otherwise the first Programm will not start.

  • Wiring diagram

    Sandfrog11/24/2016 at 22:05 0 comments

  • Work on the next Version

    Sandfrog11/24/2016 at 11:10 0 comments

    Work on the next version, the first version is usable but not good enough for me.


    - Other Crystal

    - Fix placement pressure

    - Fix overlaps on the connector

    - Remove Bootloder Jumper (JP1)

    - Other Protopads

    - Fix minor things in the libs

    - More Bling Bling;)

  • Bootloader Works

    Sandfrog11/22/2016 at 00:58 0 comments

    I use the Bootloader V5 from

    Http:// (German Page)

    Https:// (Translated Page)

    This starts after the reset when RE3 is at GND, or when the EEPROM cell with the address 0xFE has the value 0xFF.

    Drivers / Tools for Windows are included in the USBoot package (Not Tested),

    For Linux I use a customized version of fsUSB (, or Piklab.

    The device has its own USB ID:

    Bus 004 Device 002: ID 04d8: ff0b Microchip Technology, Inc.

  • PCBs V1.1

    Sandfrog11/21/2016 at 18:24 0 comments

    PCBs from OSH Park with some layout errors.

    - Quartz footprint with too much soldering resist

    - Smaller errors in the placement pressure

    For initial tests the PCB is usable.

  • Test Tool

    Sandfrog11/19/2016 at 12:52 0 comments

    Order a Test Tool for USB, to Test Power consumption, the connection and other things.

  • PCB-Order PCB V1.0

    Sandfrog10/27/2016 at 16:17 0 comments

    Long time ago ;(

    Order a Proof of Concept PCB, wait for it, ETA ~3-4 Weeks ordert by OSH-Park

View all 11 project logs

Enjoy this project?



profecie wrote 03/30/2017 at 17:15 point

Very useful project

Thank you
Is it possible to have reference for quartz/resonator on mouser or farnell ? I didn't find quartz with right footprint?

  Are you sure? yes | no

Sandfrog wrote 03/31/2017 at 21:33 point

I've found at no with 8MHz but one of the fit.


The footprint is a little different because it is otherwise difficult to solder the parts.

  Are you sure? yes | no

bobricius wrote 03/11/2017 at 23:52 point

Great project, I am very inspired and I creating Samd21 variant ;-)

  Are you sure? yes | no

Sandfrog wrote 03/12/2017 at 09:56 point

I think it is very good that my small circuit board, as a template for other projects serves, am already excited.

  Are you sure? yes | no

bobricius wrote 04/21/2017 at 12:37 point

Boards assembled and I thik all working :) Thanks for inspiration ...

  Are you sure? yes | no

davedarko wrote 11/22/2016 at 19:23 point

much gold. such wow.

  Are you sure? yes | no

danjovic wrote 10/28/2016 at 17:25 point

Amazing project. Didn't knew it was possible to connect a microcontroller directly to a mini-PCI slot!

  Are you sure? yes | no

Sandfrog wrote 10/29/2016 at 07:57 point

Mini PCIe has USB and SMBUS (i²C) on the connector, i use the Status LEDs from Host, Planing for the Future use the SIM-Card Socket from my Nettbook it´s can Controlled over the PCie Bus.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates