I spent 20 minutes with the firmware sources on my commute home today. It will almost compile on MPLAB X IDE 4.01 and XC16 v1.24. There is a deprecated file dependency, generic.h, which is dropped in recent xc16 versions.
The last bit of the jigsaw is in the final build step where it is looking for bootloader.hex, but it’s not in the sources. I assume this is a USB HID bootloader generated separately. The GUI will not simply let me remove the file from the project, so I’ll have to work a bit more on that.
The bootloader might have been deliberately removed if it had, say, AES encryption keys or similar in it. However as far as I know the only way to update the device is through the programming header inside. Maybe the bootloader just doesn’t work... anyway from the code I’ve examined, I doubt that will be much of a hinderance.
Regrettably I am working all weekend at a customer implementation so I won’t have any opportunity to work on this, but then I wasn’t intending to ever start anyway! It would be good to fix the unreliable wifi at least.
As I mentioned earlier, the code is really quite well laid out and readable. I’m not clear yet why they chose the dspic device they did as I’ve yet to see any use of the DSP. It is one of the very few dspics with a USB phy, but I suspect one of the many pic24 devices with USB would’ve worked just fine too.