Last Update: 2017-08-24: updated information
The Mustek S400W iScan Air aka ion Air Copy [+E-Post Edition] aka Century CPS-A4WF 転写パットリくん A4 Wi-Fiポータブルスキャナー aka HALO Wireless Portable Scanner is a simple document scanner for up to A4 wide documents with up to 40.5 cm length (almost ~9570 vertical pixel for 600 DPI!). Prices range from high (>100 €/$) to very low (30 € incl. VAT) in special sales - like the ion E-Post edition.
Its predecessor is the Mustek S400 iScan docking station for iPads.
It creates its own WIFI network always named
DIRECT_<mac>-<model> where <mac> are the last six digits
of the scanner's MAC address and the model is AirCopy or iScanAir etc.
The ip address is always
192.168.18.33 and the scanner service is listening on port
The scanner provides DHCP and allows clients that successfully aquired an IP via DHCP access to the scanning service.
While it is well suited for what it is advertised for - easily scan a document on the go with your tablet or phone (especially if you don't have some kind of 'camera scanner' software or the camera of your tablet / phone has a too low resolution) - the low prices it is sold for warrant a much better usage model. (I did get one for my mom, though ;) Connect it to a server and automatically scan, ocr, pdf, and index documents.
Manufacturer: Mustek, sold as:
To open the scanner you need to remove 5 Phillips screws, 4 located beneath the rubber feet, and one beneath the white plug thing in the middle. There is a 6th vicious tri-wing screw beneath the FCC label. Note the smiley drawn with ballpoint pen on mine, some assembly worker knowing the casual hacker will have a nasty surprise here. It's possible to remove it with a thin flat head screwdriver if you are careful.
The scanner is powered by a Zoran Quatro 4310 chip that can run a custom zoran OS or Linux. The memory chip provides 64 MiB RAM.
The battery is fairly large, but not required for the scanner to work. I have not determined yet if calibration settings persist without battery.
It's also interesting to see that the power button is actually two buttons.
UART is on TP26 = receive and TP25 = transmit. Settings are 57600,8,n,1,xon/xoff for putty. The console is non interactive and there is some interesting info while
The device seems to have a unpopulated SD card slot right next to the CPU. There is also an unsoldered USB port, if a keyboard is connected to it, then one can press "a" to abort normal booting and an attempt is made to load the firmware from SD card.
The original software is very, very simple. You can't do more than take a scan and save it as jpeg or pdf or clean/calibrate the scanner. No OCR, no multi page PDF. Mustek's software is multi language, 3rd party usually not. Unfortunately, the windows version doesn't understand 3rd party hardware model codes. iOS / Android apps do not check the model and work fine.
I am providing free source code and applications:
The java version needs a few changes I figured out while implementing the c version. I have to admit that I had not coded C for around a decade before implementing this...
Download specification in english or german.
Are usually less than 16 <byte>s (except preview and jpeg data), so a buffer of 16 bytes is enough. Known responses map to ascii strings for the first n <byte> followed by padding (which can be ignored):
Send as <number>s. Waiting after sending a command is recommended. Between 200 ms and 500 ms. Waiting some more after a function finished (cleaning, calibration, scanning) is recommended, too. 500 ms.
20203030: get version
50006000: get status
70708080: clean (requires status 'scanready')
a000b000: calibrate (requires status 'scanready')
10203040: set DPI 300
50607080: set DPI 600
10002000: start scan
30304040: send preview data
c000d000: send jpeg size
e000f000: send jpeg data
40405050: WifiBattery State
How to get a 300 DPI scan: