Tuesday, April 19, 2011

Direct Mode Support

The good news: I believe I have direct mode working. There are 3 new commands. Two of them are big 'O' integer commands: an ASCII 'O' followed by a command-number byte (like an ioctl()), an argument length byte, and then a single byte for the number being fed in to the command.
  • O[0x24]: DIRECT_WAIT_FOR_CONNECTION: Corresponds to "wait for XX seconds for a device to connect" slider in Eye-Fi center. The argument is a number of seconds. 0 means "direct mode off" and 0xff means "wait forever"
  • O[0x25]: DIRECT_WAIT_AFTER_TRANSFER: Corresponds to "will stay on YY seconds after the last item is received" slider. Set to 60 when direct mode is off. 0xff means "wait forever"
  • S: tells the card to "Start Direct Mode Network". This is useful for pairing, and corresponds to a button of the same name in the Eye-Fi Center GUI.
The bad news is that I bricked a card doing this. I think it happened just after I started direct mode, then asked the card to scan and then give me a list of configured networks. The card never responded to another command, despite a number of reformats. The odd part is that the official software does something in a very similar order. This is not the first time I've managed to break one of these cards, and I'm hoping the support will be as great as it was last time.

I'm going to hold off on actually releasing the software for a bit. I'm concerned about bricking other cards somehow.

1 comment:

8r13n said...

Should I try to do this with my EyeFi card? I don't mind bricking it if there's a chance this will work. Can you walk me through it? I am very technical, but I want to make sure I understand since bricking is a possibility.