SAM3SxA_Stick
This time now a special project, to create a small unit suitable for everyday based on some pC / .. modules.
The idea, a USB stick with SD/MMC-slot, to based on it running as Memory stick and/or Web and FTP server. Certainly nothing particularly extraordinary, but even a mini-project without the need of 101 new software modules.
So far, following pC/.. Modules are intended for use:
- pC/OS RTOS kernel
- pC/USB using MSC, CCID (for ASSD) and/or CDC/RNDIS/EEM classes (as composite with alternates)
- pC/MMC SD/MMC-access using a SPI interface
- pC/FAT FAT16/32-filesystem with LFN support accessing the memory card
- pC/TCPIP TCP/IPv4 protocol stack for network communication (incl. DHCP & WINS)
- pC/HTTPd HTTP-server using memory-card for content
- pC/FTPd FTP-server for administation of HTTP content
To give the whole a professional appearance and make it really suitable for everyday use, this time the existing and perfect suitable housing of the Transcend TS-RDS5W was reused.
So original inside out - and the self-development inserted :-)
As a network node, it is simply adressed by "http://S3Stick.intern" or "ftp://S3Stick.intern", the rest does the small WINS server on the stick.
When you connect the stick, it decides by the USB host system of the PC (Windows/Linux) for one supported USB network version - Windows uses RNDIS and Linux uses CDC-Ethernet(ECM).
Then the stick can be accessed with a normal WEB-browser and an FTP-client.
As a memory stick he is used like any other. Simply plug it in and wait a moment. Then just access the new drive. This is declared by the stick as a "Removable Media".
ScanDriveViewer:
To read the, through the pC/MMC-code (SPI-mode), collected information without the use of a display and to show it, I have written a small Windows program that reads this information via SCSI-Inquiry (vendor-page 0xD0) and visualize it. For this, the program searches for a matching device via "SCSI-Inquiry page 0" VerdorID/ProductID (plus optional Revision) and asks this for the Vendor-page.
If a "secure micro SD" (a security element is integrated, such as in a smart card) is found, the additional information will be optional shown and a simple APDU interface can be used.
After porting this program it's now available on Android for smartphones and tablets. Besides the usual data on the inserted card, this app also decodes and shows the data of the internal (e)MMC memory and - when available - of the in the device itself used (micro)SD card.
Here, the small programs to download:
|
|
Here are some screen shots of the little programs with different cards in the adapter.
If the CCID USB-class was included as a composite, the adapter allows APDU exchange with the contained secure element of secure µSD cards via PC/SC interface. He is normal included as a card reader from the host (see device-manager) and can be used by appropriate standard applications.
Windows | Linux | Android (Pcscdroid from seek-for-Android) |
Windows uses the USBCCID WUDF driver for all devices with CCID or ICCD without fully ICCD support, uses it's own description strings and ignores the USB string descriptors of the interface. | Linux with PC/SC-lite works exclusively with CCID readers from a white-list. An unknown reader must therefore first be added to the list, the there stored device text is used and not the USB String descriptors of the device or interface ("Info.plist"). | Android requires Pcscdroid from seek-for-android. In addition to all Linux specials (white-list & device strings), which also apply here, the device must also be ROOTed to be able to communicate with CCID-readers over USB. |