Wima2011 sony tt3_nfcpy_dynamic_tag
Upcoming SlideShare
Loading in...5
×
 

Wima2011 sony tt3_nfcpy_dynamic_tag

on

  • 3,801 views

http://blog.felicalauncher.com/en/

http://blog.felicalauncher.com/en/

Statistics

Views

Total Views
3,801
Views on SlideShare
3,798
Embed Views
3

Actions

Likes
1
Downloads
11
Comments
0

3 Embeds 3

http://paper.li 1
https://si0.twimg.com 1
http://a0.twimg.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Wima2011 sony tt3_nfcpy_dynamic_tag Wima2011 sony tt3_nfcpy_dynamic_tag Presentation Transcript

    • Beyond Tags: Type 3 Platform for Developers Tips and Tricks, Open Source and the Dynamic Tag Stephen Tiedemann and Frank Dawidowsky, SONYⒸ 2011 Sony Corporation
    • Overview • The Type 3 Tag Platform • NFC and T3T • System Codes • Polling for T3T • Reading further • The ‘nfcpy’ open source project • Introduction • Example and Demo • Invitation • NFC Dynamic Tag • Concepts and Features • Demo • Open Hardware Evaluation Platform ‚Arduino‘ 2Ⓒ 2011 Sony Corporation
    • Type 3 Tag PlatformⒸ 2011 Sony Corporation
    • Relationship between NFC & FeliCa • NFC includes the FeliCa FeliCa FeliCa P2P Card R/W mode physical layer (212/424kbps modes of NFCIP1) NFC Device communication modes • NFC devices can potentially P2P R/W Card communicate with • FeliCa cards 212/424 NFC Forum Tag Type 3 kbps • FeliCa R/Ws • Type 3 Tag (T3T) is one of the 4 tag types that are supported R/W Card P2P by all NFC Forum certified devices NFC Device communication modesⒸ 2011 Sony Corporation
    • Relevant NFC Forum specs NFC Forum Device in the role of a Reader / Writer Card Emulator Type 3 Tag FeliCa OS (not part of NFC Forum specs) Operation Specification Defines basic command set: check, update, poll Memory structure NDEF mapping Digital Protocol Specification Defines the ‚Type 3 Tag Platform‘ based on NFC-F: Sequence Format, Bit-level coding, Frame Format, Data and Payload Format, Timing RequirementsⒸ 2011 Sony Corporation
    • NFC Forum specs NFC Forum Device as Reader / Writer FeliCa Cards / Tags/ Phones Full FeliCa Command Set* Type 3 Tag read Operation Specification write Basic Command Set (non-secure) Digital Protocol Specification Type 3 Tag Platform *Defined in the ‚Card Users Manual‘ available at http://www.sony.net/Products/felica/business/tech-supportⒸ 2011 Sony Corporation
    • Different API levels Specification Example of a corresponding API Full FeliCa API of the FeliCa SDK Command Set* JSR257 NDEFTagConnection NDEF mapping readNDEF(), writeNDEF() Type 3 Tag JSR257 Nokia Extension Operation Specification for Type 3 Tag Basic Command Set check(), update() Digital Protocol Android API for NFC-F Specification Type 3 Tag Platform byte[] transceive(byte[])Ⓒ 2011 Sony Corporation
    • Types of FeliCa products FeliCa lite Dynamic Tag FeliCa Cards Mobile FeliCa Full FeliCa Command Set* Type 3 Tag Operation Specification Basic Command Set Simple File No non-volatile Full FeliCa File System System memory on chip Multiple ‚Systems‘ on a card/phone Single ‚System‘ Data formats are on a tag device-dependantⒸ 2011 Sony Corporation
    • FeliCa ‚System‘ on a card/tag System System Code (system type) = 12FCh for NDEF Manufacture ID (identifier used to address the system) Manufacture Parameter (IC information, timeouts) Service 0 User Memory Block 0 Area 0 read only User Memory Block 1 Service 0 User Memory Block 2 read / write User Memory Block 3 User Memory Block 4 User Memory Block 5 ... Example of a FeliCa file system for protected NDEF (Key required to write data)Ⓒ 2011 Sony Corporation
    • Basic Command Set • Polling/SENSF check for devices in the field • Check Read data blocks of one or more services • Update Write data blocks of one or more servicesⒸ 2011 Sony Corporation
    • Concepts • Systems and System Codes • T3T may contain multiple systems. Each System may be used by multiple applications. • Each System is identified by a ‚System Code‘ and an identification number (‚Idm‘). • Each System has a set of Manufacturer Parameters (‚PMm‘) • Polling • A reader can poll for a specific System Code or a wildcard. • In case of wild card polling (‚0xFFFF‘), all Type F devices in range will try to respond • In case the polling is done for a specific system code, only Type F devices that contain a System with that system code will resond. 11Ⓒ 2011 Sony Corporation
    • Polling CMD/RSP (SENSF) 0h SC RC TSN Remark: A single device may 1 2 answer with multiple responses Request Code in different timeslots to announce different capabilities. 0: no request (default for first polling) 1: request primary System Code System Code e.g. 12FCh: NDEF 1h IDm/NFCID2 PMm [RD] 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 IDm Prefix 01FEh: NFCIP1 device Request Data: System Other: T3T platform Code (if RC=01h) IC Type Examples: Maximum Response F0h: FeliCa lite Times E0h: Dynamic TagⒸ 2011 Sony Corporation
    • Polling • Most APIs provide the NFCID2 and PMm contained in the polling response to the application. • The data in the polling response provides information about the remote device • NFCID2 prefix of 01FEh: ISO/IEC 18092 compliant device • Other NFCID2 prefix: T3T platform • IC code provides information about IC type (e.g. FeliCa lite) • Device responds to a poll command with RC=1 indicating a primary system with SC=12FCh: NDEF capable device Note: To ensure that all NDEF capable devices are detected, an additional polling command with SC=12FCh is required. Otherwise targets that have a primary system different to 12FCh (but have a secondary system with 12FCh) are missed 13Ⓒ 2011 Sony Corporation
    • Whitepapers http://www.sony.net/Products/felica/business/tech-support 14Ⓒ 2011 Sony Corporation
    • ‘nfcpy’ open source project 15Ⓒ 2011 Sony Corporation
    • Whats ahead 16 an introduction to nfcpy a hello world example invitation to get involvedⒸ 2011 Sony Corporation
    • Whats this funny name nfcpy a software module for using near field communication readers, written for and in the Python programming languageⒸ 2011 Sony Corporation
    • Its all about “open nfc” the scope of nfcpy is the publicly defined functionality of the open NFC Forum specifications Tag Operation LLCP (P2P) Specifications SpecificationⒸ 2011 Sony Corporation
    • Theres always a history nfcpy was originally developed to prove and verify the LLCP specification LLCP LLCP LLCP Verification Publication DraftⒸ 2011 Sony Corporation
    • Attempt of an Architecture P2P Examples Tag Examples SNEP NDEF Parser/Gen LLCP NDEF Tag DEP Initiator/Target Type N Tag Ops Contactless Frontend Device Drivers (pn53x, ipsim) USB User Space Library (libusb) Linux WindowsⒸ 2011 Sony Corporation
    • Completeness is always a far goal nfcpy should be quite usable already if you get hold of a Sony reader, but there is still a substantial wish list type 1, 2 and 4 tag support drivers for other nfc readers more example applications documentation !!! desktop integrationⒸ 2011 Sony Corporation
    • Whats ahead 22 an introduction to nfcpy a hello world example invitation to get involvedⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Say hello to the world import nfc import nfc.ndef import nfc.ndef.Text clf = nfc.ContactlessFrontend() while True: tag = clf.poll() if tag and tag.ndef: break text_en = nfc.ndef.Text.TextRecord( ("en", "Hello World") ) text_de = nfc.ndef.Text.TextRecord( ("de", "Hallo Welt") ) text_fr = nfc.ndef.Text.TextRecord( ("fr", "Bonjour tout le monde") ) message = nfc.ndef.Message( [text_en, text_de, text_fr] ) time for a demo tag.ndef.message = message.tostring() print “Remove tag and touch again” while tag.is_present: time.sleep(1) while True: tag = clf.poll() if tag and tag.ndef: break message = nfc.ndef.Message( tag.ndef.message ) for record in message: if record.type == "urn:nfc:wkt:T": text = nfc.ndef.Text.TextRecord( record ) print text.language + ": " + text.textⒸ 2011 Sony Corporation
    • Whats ahead 32 an introduction to nfcpy a hello world example invitation to get involvedⒸ 2011 Sony Corporation
    • Started by Sony engineers but: • nfcpy is an open collaboration project that is not restricted to Sony Type 3 (FeliCa) technology We can provide We are not the the expertise for experts for other type 3 tag stuff tag types and and know the there certainly is Sony readers a motivation gapⒸ 2011 Sony Corporation
    • Its not difficult to get involved visit https://launchpad.net/nfcpy browse the code or get a branch make your changes and propose for merge or use bzr send to e-mail me a patchⒸ 2011 Sony Corporation
    • NFC Dynamic Tag 35Ⓒ 2011 Sony Corporation
    • Concept: From Static to Dynamic NFC Static Tag Conventional NFC Tag Fixed data only NFC Dynamic Tag and Host CPU Serial interface HOST I/F NFC Dynamic Tag RF detection HOST Power Switch CPU Power Supply 1Mbps(Max) Dynamic data All NFC devices that implement the Type 3 Tag Operation specification can communicate with our NFC Dynamic Tag. 36Ⓒ 2011 Sony Corporation
    • Dynamic Tag Hardware Module RC-S801 NFC-F RF interface Serial interface HOST I/F NFC Forum Polling, Device, or RC-S801 S801 RF detection HOST NFC RW R/W w/o enc. RC-S802 S802 Power Switch CPU RC-S802 Power Supply 212kbps 1Mbps(Max) NFC-enabled product Controller (e.g. PC) • The module consists of an IC chip and an antenna. The module operates from a low power supply sourced from the electronic device in which it is embedded. • A magnetic field detection function enables the device to respond when a R/W is present. This can enable very power-efficient designs where the device is in deep standby until a field is detected. • Ⓒ TheCorporation Sony Dynamic Tag supports Polling / Read / Write commands in 212kbps 37Ⓒ 2011 Sony Corporation
    • System layout for Development PC connected to RC-S801 Embedded PC connected to NFC R/W RC-S802 System Embedded System socket 3.3V USB Power supply Control Control application application 38Ⓒ 2011 Sony Corporation
    • Features • Emulation of NFC Forum Type 3 Tag The NFC Dynamic Tag can emulate an NFC Forum Type 3 Tag. The device host needs to assure that any commands sent to the RW follow the specifications of the NFC Forum. The emulated device can communicate with any RW that implements the NFC Forum Tag Type 3 Operation Specification. • Cable and wireless (RF) Interface A simple, triple-line, half-duplex cable interface allows the use even with low-speed host CPUs. For application development on the RW side, it is possible to use existing products, such as SDK for FeliCa, which are able to access the wireless interface of the NFC Dynamic Tag. • Magnetic field detection The NFC Dynamic Tag includes a function by which the magnetic field generated by the RW can be detected to trigger the host CPU. • Low current consumption The current consumption during standby is kept at 0.1uA or less to provide power supply conditions suitable for battery-operated devices. 39Ⓒ 2011 Sony Corporation
    • NFC Dynamic Tag Choices 40Ⓒ 2011 Sony Corporation
    • Modes • FB mode/ FeliCa Buffering mode For pedometers, digital toys or similar devices with a low performance Host CPU • FT mode / FeliCa Thru mode Type 3 Tag compliant operation 41Ⓒ 2011 Sony Corporation
    • Application Example: Healthcare Use Case • Touch the NFC-enabled healthcare device with your NFC phone to easily send measured data to a server of e.g. your wellness support service. • The data then can be used for healthcare or diet control service Count Touch Data Transfer Healthcare Service Show Graph Pedometer with Dynamic Touch the pedometer on Send measured data to Tag measures daily work- the mobile phone and Wellness Support Server via out count transfer measured data mobile phone network 42Ⓒ 2011 Sony Corporation
    • Personal Healthcare made easy Pedometer Thermometer NFC Dynamic Tag Touch the Healthcare Device to an NFC Device Blood pressure monitor Pillcase Healthcare device with NFC Dynamic Tag make it possible to transfer measured data to the NFC phone just by tapping on to it. Corresponding application launched automatically 43Ⓒ 2011 Sony Corporation
    • Personal Health Devices with Dynamic Tag Manufacturer Device Sample Image Pedometer Blood Pressure A&D Monitor Composition Scale ACOS Pedometer Module ESTERA Pedometer OMRON Healthcare Composition Scale TANITA Pedometer YAMASA Pedometer other supporting companies 44Ⓒ 2011 Sony Corporation
    • Low cost Eval Platform: Arduino with Sony‘s NFC Dynamic Tag Based on Arduino® open-source electronics prototyping platform (http://arduino.cc/) USB Touch! 6 wires connecting RC-S801 with Digital GPIO Pins 3.3 V power supply Update data on tag through USB Touch NFC phone to Dynamic Tag Receive data from phone and store on PC to read data from tag or Log data transfer information write new data on tag Compatible with NFC Forum Tag Type 3 Dynamic Tag Arduino driver available as source 45Ⓒ 2011 Sony Corporation
    • Low cost Eval Platform: Arduino with Sony‘s NFC Dynamic Tag Based on Arduino® open-source electronics prototyping platform (http://arduino.cc/) Let‘s see this live! USB Touch! Time for a demo 6 wires connecting RC-S801 with Digital GPIO Pins 3.3 V power supply Update data on tag through USB Touch NFC phone to Dynamic Tag Receive data from phone and store on PC to read data from tag or Log data transfer information write new data on tag Compatible with NFC Forum Tag Type 3 Dynamic Tag Arduino driver available as source 46Ⓒ 2011 Sony Corporation
    • Arduino prototyping platformⒸ 2011 Sony Corporation
    • About Arduino • Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. • The boards can be built by hand or purchased preassembled • the software can be downloaded for free. • The hardware reference designs (CAD files) are available under an open-source license, you are free to adapt them to your needs. • Many ‘shields’ and ‘breakouts’ are available that add features like Wi-Fi, GPS or Bluetooth to the platform • More @ http://www.arduino.cc/ 48Ⓒ 2011 Sony Corporation
    • Arduino Choices Arduino Uno Arduino Pro 328 - ‚Default‘ model - ‚Lean‘ model - USB Port - Breakout boards - ATMega328 - ATMega328 - 5V - 3.3V / 5V versions - 32KB Flash - 32KB Flash - 2KB SRAM - 2KB SRAM - 1KB EEPROM - 1KB EEPROM - 16MHz Clock - 8MHz / 16MHz Clock Arduino Pro Mini 328 Arduino Mega2560 - ‚Tiny‘ model - ‚Power‘ model - Like ‚Pro 328‘, but small - USB Port - ATMega2560 - 5V - 256KB Flash Lilypad - 8KB SRAM - ‚E-Clothing‘ model - 4KB EEPROM - 16MHz Clock - Optimized for wearable electronics More info at http://arduino.cc/en/Main/Hardware and http://www.sparkfun.com/tutorials/148 49Ⓒ 2011 Sony Corporation
    • Arduino Choices Arduino Uno Arduino Pro 328 - ‚Default‘ model - ‚Lean‘ model - USB Port - Breakout boards - ATMega328 - ATMega328 - 5V - 3.3V / 5V versions - 32KB Flash - 32KB Flash - 2KB SRAM - 2KB SRAM - 1KB EEPROM - 1KB EEPROM - 16MHz Clock - 8MHz / 16MHz Clock Arduino Pro Mini 328 Arduino Mega2560 - ‚Tiny‘ model - ‚Power‘ model - Like ‚Pro 328‘, but small - USB Port - ATMega2560 - 5V - 256KB Flash Lilypad - 8KB SRAM - ‚E-Clothing‘ model - 4KB EEPROM - 16MHz Clock - Optimized for wearable electronics More info at http://arduino.cc/en/Main/Hardware and http://www.sparkfun.com/tutorials/148 50Ⓒ 2011 Sony Corporation
    • Arduino Choices Arduino Uno Arduino Pro 328 - ‚Default‘ model - ‚Lean‘ model - USB Port - Breakout boards - ATMega328 - ATMega328 - 5V - 3.3V / 5V versions - 32KB Flash - 32KB Flash - 2KB SRAM - 2KB SRAM - 1KB EEPROM - 1KB EEPROM - 16MHz Clock - 8MHz / 16MHz Clock Arduino Pro Mini 328 Arduino Mega2560 - ‚Tiny‘ model - ‚Power‘ model - Like ‚Pro 328‘, but small - USB Port - ATMega2560 - 5V - 256KB Flash Lilypad - 8KB SRAM - ‚E-Clothing‘ model - 4KB EEPROM - 16MHz Clock - Optimized for wearable electronics More info at http://arduino.cc/en/Main/Hardware and http://www.sparkfun.com/tutorials/148 51Ⓒ 2011 Sony Corporation
    • Arduino Choices Arduino Uno Arduino Pro 328 - ‚Default‘ model - ‚Lean‘ model - USB Port - Breakout boards - ATMega328 - ATMega328 - 5V - 3.3V / 5V versions - 32KB Flash - 32KB Flash - 2KB SRAM - 2KB SRAM - 1KB EEPROM - 1KB EEPROM - 16MHz Clock - 8MHz / 16MHz Clock Arduino Pro Mini 328 Arduino Mega2560 - ‚Tiny‘ model - ‚Power‘ model - Like ‚Pro 328‘, but small - USB Port - ATMega2560 - 5V - 256KB Flash Lilypad - 8KB SRAM - ‚E-Clothing‘ model - 4KB EEPROM - 16MHz Clock - Optimized for wearable electronics More info at http://arduino.cc/en/Main/Hardware and http://www.sparkfun.com/tutorials/148 52Ⓒ 2011 Sony Corporation
    • Arduino Choices Arduino Uno Arduino Pro 328 - ‚Default‘ model - ‚Lean‘ model - USB Port - Breakout boards - ATMega328 - ATMega328 - 5V - 3.3V / 5V versions - 32KB Flash - 32KB Flash - 2KB SRAM - 2KB SRAM - 1KB EEPROM - 1KB EEPROM - 16MHz Clock - 8MHz / 16MHz Clock Arduino Pro Mini 328 Arduino Mega2560 - ‚Tiny‘ model - ‚Power‘ model - Like ‚Pro 328‘, but small - USB Port - ATMega2560 - 5V - 256KB Flash Lilypad - 8KB SRAM - ‚E-Clothing‘ model - 4KB EEPROM - 16MHz Clock - Optimized for wearable electronics More info at http://arduino.cc/en/Main/Hardware and http://www.sparkfun.com/tutorials/148 53Ⓒ 2011 Sony Corporation
    • Arduino Pro 328 Platform 54Ⓒ 2011 Sony Corporation
    • DynamicTag/FeliCaPlug Shield 55Ⓒ 2011 Sony Corporation
    • Connecting the NFC DynamicTag with the Arduino Pro NFC Dynamic Tag Arduino Pro 328 3.3V 56Ⓒ 2011 Sony Corporation
    • Arduino IDE with Example Sketch This sketch implements two predefined ‘SmartPosters’ that are toggled by pressing a button 57Ⓒ 2011 Sony Corporation
    • Sample Code to implement an NFC SmartPoster #include <EEPROM.h> #include <FeliCaPlug.h> #include <inttypes.h> FeliCaPlug plug; /* TT3 Attribute block + NDEF Message with SmartPoster http://www.stuttgart.sony.de */ uint8_t blockData[48] ={ 0x10, 0x01, 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x00, 0x30, 0xd1, 0x02, 0x16, 0x53, 0x70, 0xd1, 0x01, 0x12, 0x55, 0x01, 0x73, 0x74, 0x75, 0x74, 0x74, 0x67, 0x61, 0x72, 0x74, 0x2e, 0x73, 0x6f, 0x6e, 0x79, 0x2e, 0x64, 0x65, 0x00, 0x00, 0x00, 0x00,0x00}; uint16_t numOfBlocks = 3; int readOnly = 0x00; void setup() { uint8_t dfc[2] = {0xff, 0xe0}; uint8_t userParam[4] = {0x01, 0x23, 0x45, 0x67}; plug.initPort(); plug.setParam(FELICA_PLUG_MODE_TYPE3, dfc, userParam); plug.setLEDPin(FELICA_PLUG_LED_PIN); plug.setBlockData(blockData, numOfBlocks, readOnly); } void loop() { plug.doLoop(); } 58Ⓒ 2011 Sony Corporation
    • Questions? Stephen.Tiedemann@eu.sony.com Frank.Dawidowsky@eu.sony.com 59Ⓒ 2011 Sony Corporation