I can flash the board with a PICKit, and flash using the bootloader jumper. When I remove the jumper the board hops over into "MemoryAccess" mode, which is good. But, when I put the jumper back, it doesnt go back into bootloader mode (and it doesnt let me use PDFUSB.exe to flash it)
I've done some testing on this (was just testing my newest hardware build so no biggie) and using the latest build from Cory(thanks for that!!) i can get the pic back in bootloader mode.(Picflash_v3b_plus2.zip)
The one thing that troubles me is that +- 100ohms as the total resistance from pin 17 to ground works and 200ohms doesn't, but thats not a weak 10k pullup i would personally expect.(with my little knowledge of PIC hardware)
The port configuration in the Pic sourcecode in GIT looks strange to me (Looks a bit like an alien language)
Hope the compiler has some more info on all of this if i ever have the time to install it.
Lets see:
//Check Bootload Mode Entry Condition
TRISCbits.TRISC6 = 0; // Set PortC bit 6 as output
LATCbits.LATC6 = 1; // Set PortC bit 6 to High (5v) (WTF?)
if((RV!=0xFFFF) && (PORTCbits.RC6 == 1)) //Portc part: Read PortC bit 6 and if 1 execute the command inbetween {})
{
_asm goto RM_RESET_VECTOR _endasm // Goto PIC Flasher
}
// After this the bootloader starts
(added comments for easy reading and am assuming that the version in GIT is the actual one)
Please correct me if i'm wrong but if i understand correctly the above is a hack to read if C6 is low without a pullup resistor(shorting pin C6(5V) to ground for a very small time if the C^- GND jumper is placed), and this is because a PIC doesn't have selectable pull-ups on all pins?
Would it not be better to connect C6 to a +-1Mohm to VCC or so and then toggle it with a 10k to ground without the TRISKCBit and LATCBit ?, this would also be safer if we want to use the serial lines.
Please dont bite my head off as i am still learning this stuff

No worries, Im new to PIC aswell (though Ive delt with the 8051 and atMEGA chips). Ive done a few tests, and Ive left myself more confused than when I started. Its getting pretty frustrating, as I dont want to ship my flashers out until this bug is fixed, so I can rule out any sort of hardware problems there may be. Today I downloaded a GIT client and cloned the GIT repo, to get the latest source. I also installed MPLAB, the C compiler, and the PicKit flash tool. With that being said, here's the results of my testing.
Custom USB Device = Boot
Lib-Win32 Device = Flash
-> = Plug in if unplugged, or unplug if plugged in
These =='s refer to this:
if((RV!=0xFFFF) && (
PORTCbits.RC6 == 1))
and the commented refers to me doing this, in an effort to add a physical resistor instead of a hardware trick:
// TRISCbits.TRISC7 = 0;
// LATCbits.LATC7 = 1;
== 1
Flashed BL -> Connected Jumper -> Flashed flash -> Removed Jumper -> Lib-Win32 Device
Flashed BL -> Connected Jumper -> Flashed flash -> Kept Jumper -> Lib-Win32 Device
== 0
Nothing shows up
Nothing shows up
== 0 commented with 10k pullup, switch to ground
Nothing shows up
Nothing shows up
== 1 commented with 10k pulldown, switch to vcc
Nothing shows up
Nothing shows up
---
Wierd! When I say nothing shows up, I mean the device manager doesnt flash and display the new hardware when I plug the flasher in. I get no sound or recognition that Windows sees the device, but VCC is at 5v (the power LED is on) and the Vusb output is at 3.3v and connected to ground with 100nF (also tried 220nF).
The odd thing is, when I first tried "== 0", I saw that I got no response, got scared, went back to "== 1" and I could connect again, so I was okay and proceeded on. After getting nothing showing up three times, I tried the original code, but the flasher still isnt recognized. All the vitals of the chip are fine, and I can reprogram with my PicKit 2 perfectly every time.
Is it possible Ive somehow damaged the pin? I have a couple flashers that test out perfectly and the chip is flashable with a PicKit, but the flasher isnt recognized with windows. It seems extremely sporadic.
EDIT It seems that with the code set to write a 1 and check for a 1 (the original git source), I only get 0.07v on pin C6. If its setting it to a 1, shouldnt I be seeing 5v? Could you measure yours?