Cheers guys. Yes have insurance, so hopefully things won't be too difficult. Unlikely to get anything back... TV and point-and-shoot camera are no big deal but my wife's laptop is really hard to bear, having a bunch of un-backed-up photos we took at our wedding and honeymoon etc. on it from the beginning of the year (they were "backed up" on the camera's SD card! D'oh!). Definitely working on a proper backup solution now
I feel like I should write a little update w.r.t. the work I'm doing on the firmware.
I've started a fairly major reorganisation, spurred on by the discovery Windows chokes on the media keys and that there might be some easy performance gains on the road to macros.
I've now split out the capsense scanning stuff so it runs on a very regular interrupt (hard coded at 100us for each column for now; this works out to 435Hz, 625Hz and 833Hz for the Beamspring, Model-F and 12-column Displaywriter respectively; I may make the scanrate tweakable if necessary, but I don't think it really is...). This is nice, because: a) the capsense stuff has a big sleep in the middle of it, which sucks up valuable time we could be assembling HID reports or fiddling with macros etc., and b) it keeps things very regular with no jitter, which the capsense stuff really likes (if the capacitors never drain fully sometimes normally—possible if the scan rate is a bit fast—then it's bad if you have a big delay. Possibly the cause of first-column trickiness I saw with the early beamspring stuff).
Splitting it out into a dedicated interrupt—kind of like old-school multitasking/threading—means I have the liberty to assemble a big unified scancode image (saving a previous copy of it for later macro goodies) and then generate the appropriate HID reports as I please. This makes adding the new "Extrakey" report (name pinched from Hasu
) for the media keys much easier. This is the new report that I now learn is required to make Windows use the media keys (no other OS has a problem with them the way they were). There will now be four USB reports; boot-mode keyboard, NKRO keyboard, diagnostic/util interface and extrakey/media keys report.
Oddly enough Windows always requests all the reports, even when it doesn't really need them. It doesn't ever do anything with the boot-mode report (as it's all nulled out, Soarer style), but it still wants it sent. This isn't really ideal as it wastes time within the controller, although much less than it used to with the new scanning style. One option is to do what the TMK firmware does, which leaves only the NKRO interface enabled, unless the BIOS sends SetProtocol to turn on the boot-mode interface. This has the drawback of if you have the keyboard plugged in when it boots, it will stay in boot-mode (non-NKRO), as OSes don't send SetProtocol. TMK has a magic key combination (LeftShift + RightShift + N) which enables NKRO but this seems a bit manual... Maybe I'll just let Windows waste trillions of cycles by needlessly asking for the boot-mode report (and diagnostic report even when the util isn't running).
This version is already going to be incompatible with 0.7 as it no longer keeps all scancodes in memory, instead loading the current layer from EEPROM when required. This obviates the need for "Store scancodes in EEPROM", because as soon as you change the scancode it writes it. This will be v0.8; I'll release it before the macro stuff (which will now be 0.9); macros isare partially completed but still need a fair amount of polishing (and a GUI written).