views:

361

answers:

3

I want to build up an ANT network (e.g. see wikipedia article ) and develop sport accessories using the iPhone 3Gs with integrated ANT Controller (used by Apple for Nike+iPod devices) to communicate with them. I need to know which ANT version the controller is (ANT or ANT+), what it's able to do (receiver/transeiver) and how I can acces the controller with software on iPhone. Until know I was able to access the serial interface and open a socket over WLAN but the only information for this topic was this one. It's one year old before the 3Gs with integrated ANT and External Accessory Framework was released. Changed that something? Are there new efforts of other groups? Every information would be helpful. Thanks.

+1  A: 

the apple / nike footpod is not an ANT compatible device. It works with a nordic transceiver nRF2402 but with a different protocol. I reverse engineered it:

The Apple foot pod works with a nRF2402 transmitter and a PIC16F688 microcontroller.

Repetition rate: 1000ms Number of configuration bytes: 2 Number of address bytes: 2 Number of raw data bytes: 28

Remark: the configuring is sent just before power down, i.e. 2 bytes are transmitted at that time, first 0xe7 then 0x99. The device remains active for approximately 5 seconds after a step has been detected. The device works with a simple piezo sensor to detect footsteps. A fully transaction is made by sending 3 blocks of 9 bytes, then 11bytes then 10 bytes (almost no gap between each byte within a block, bit clock is below 2us) with a gap of 1.5ms between each block. A crosscheck with the configuration frame of the receiver shows the following: 0x00 0xe0 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xc2 0xbd 0x43 0x4f 0x33

This means (see datasheet of nRF2401; configuration): - channel 0x19 -> 2425MHz - RF power max; 16MHz clk; shock burst; 250kbps; 1 RX channel active - CRC enabled; CRC 16bit; address length 16bit - Address for channel 1: 0xc2bd (high byte first) - Address for channel 2: all 0x00 - 0xe0 -> 224 data bits for channel 1 - 0x00 -> 0 data bits for channel 2

The address length is 16 bit, and 224 bits of raw data are transmitted. The standard device address is 0xc2 0xbd anyway the data sent via link starts with the following pattern:

Address: 0xC2 1. byte of block 1 0xBD 2. byte of block 1 Data: 0x0D 3. byte of block 1 0x01 4. byte of block 1 0x47 5. byte of block 1 0xA0 6. byte of block 1 0x54 7. byte of block 1 0x22 8. byte of block 1 0xA0 9. byte of block 1 . 10.byte of block 2 . 11.byte of block 2 .

hope this helps a little

Thomas
A: 

by the way, the ANT and ANT+ protocol works with full speed 1MBit/sec instead of the lower footpod speed of 250kBit/sec. The length of a frame in the nike footpod is also different compared to the ANT protocol. From a HW point of view, it is possible to run an ANT or even ANT+ protocol on an i-phone without any external HW! The transceiver is already integrated. If one had access to the nRF2401 transceiver within the i-phone writing an ANT protocol handler is a piece of cake, the ANT protocol is a pretty stupid thing and easy to implement! The ANT+ is encrypted with an 8 byte key. I guess they use the safer algorithm but I'm not sure. See also: SAFER (Secure And Fast Encryption Routine) is the name of a family of block ciphers designed primarily by James Massey on wikipedia (source code downloadable at ETH in zürich or just ask me... good luck

Thomas
A: 

What makes you sure the iPhone (3GS) uses a nordic transceiver? It seems not visible to me on the tear down at ifixit. We assumed the BCM4325 is used for the "ANT" communication as well.

Daniel