1OWFTPD(1)                    One-Wire File System                    OWFTPD(1)
2
3
4

NAME

6       owftpd - Anoymous FTP server for 1-wire access
7

SYNOPSIS

9       owftpd [ -c config ] -d serialport | -u | -s [host:]port [ -p host:tcp-
10       port ]
11

DESCRIPTION

13   1-Wire
14       1-wire is a wiring protocol and series of devices designed and manufac‐
15       tured  by  Dallas  Semiconductor, Inc. The bus is a low-power low-speed
16       low-connector scheme where the data line can also provide power.
17
18       Each device is uniquely and unalterably  numbered  during  manufacture.
19       There  are a wide variety of devices, including memory, sensors (humid‐
20       ity, temperature, voltage, contact, current), switches, timers and data
21       loggers.  More complex devices (like thermocouple sensors) can be built
22       with these basic devices. There are also 1-wire devices that  have  en‐
23       cryption included.
24
25       The  1-wire  scheme uses a single bus master and multiple slaves on the
26       same wire. The bus master initiates all communication. The  slaves  can
27       be individually discovered and addressed using their unique ID.
28
29       Bus  masters come in a variety of configurations including serial, par‐
30       allel, i2c, network or USB adapters.
31
32   OWFS design
33       OWFS is a suite of programs that designed to make the  1-wire  bus  and
34       its  devices easily accessible. The underlying principle is to create a
35       virtual filesystem, with the unique ID being the directory, and the in‐
36       dividual  properties of the device are represented as simple files that
37       can be read and written.
38
39       Details of the individual slave or master design are  hidden  behind  a
40       consistent interface. The goal is to provide an easy set of tools for a
41       software designer to create monitoring or control  applications.  There
42       are some performance enhancements in the implementation, including data
43       caching, parallel access to bus masters, and aggregation of device com‐
44       munication.  Still the fundamental goal has been ease of use, flexibil‐
45       ity and correctness rather than speed.
46
47   owftpd
48       owhttpd (1) is an anonymous ftp  (file-transfer-protocol)  server  that
49       shows  the Dallas/Maxim 1-Wire bus attached to a computer. The main di‐
50       rectory shows the devices found, You can then  navigate  to  individual
51       devices, view and set their properties.
52
53       owftpd (1) uses the same naming convention as owfs (1) and owhppt (1) ,
54       where the URL corresponds to the filename.
55
56       The ftp server is a modified version of oftpd by Shane Kerr. It  serves
57       no  files  from the disk, only virtual files from the 1-wire bus. Secu‐
58       rity should therefore be good. Only the 1-wire bus is at risk.
59

Device Options (1-wire Bus Master)

61       These options specify the device (bus master) connecting  the  computer
62       to  the  1-wire bus. The 1-wire slaves are connected to the 1-wire bus,
63       and the bus master connects to a port on the computer and controls  the
64       1-wire  bus.  The  bus  master is either an actual physical device, the
65       kernel w1 module, or an owserver (1).
66
67       At least one device option is required. There is no default. More  than
68       one device can be listed, and all will be used. (A logical union unless
69       you explore the /bus.n/ directories.)
70
71       Linux and BSD enforce a security policy restricting access to  hardware
72       ports.  You must have sufficient rights to access the given port or ac‐
73       cess will silently fail.
74

* Serial devices

76       port specifies a serial port, e.g.  /dev/ttyS0 or an USB port  accessed
77       as serial port, e.g. /dev/ttyUSB0
78
79       If  OWFS  was  built  with  libftdi support, you may be able to use the
80       ftdi: prefix in any of the options as port to address a FTDI-based  USB
81       device.
82       For details, see the FTDI ADDRESSING section.
83
84       -d port | --device=port (DS2480B)
85              DS2480B-based  bus master (like the DS9097U or an adapter of the
86              LINK family in emulation mode). If the adapter doesn't  respond,
87              a  passive  type (DS9907E or diode/resistor) circuit will be as‐
88              sumed.
89
90       --serial_flextime | --serial_regulartime (DS2480B)
91              Changes details of bus timing (see DS2480B datasheet). Some  de‐
92              vices, like the Swart LCD cannot work with flextime.
93
94       --baud=1200|9600|19200|38400|57600|115200 (DS2480B,LINK,HA5)
95              Sets  the  initial  serial  port communication speed for all bus
96              masters. Not all serial devices  support  all  speeds.  You  can
97              change  the individual bus master speed for a device of the LINK
98              family and DS2880B in the interface/settings directory. The  HA5
99              speed  is  set in hardware, so the command line baud rate should
100              match that rate.
101              Usually the default settings (9600 for a device of the LINK fam‐
102              ily  and DS2480B ) and 115200 for the HA5 are sane and shouldn't
103              be changed.
104
105       --straight_polarity  | --reverse_polarity (DS2480B)
106              Reverse polarity of the DS2480B output transistors?  Not  needed
107              for the DS9097U, but required for some other designs.
108
109       --link=port (LINK)
110              iButtonLink  LINK  adapter (all versions) in non-emulation mode.
111              Uses an ascii protocol over serial.
112              This supports the  simplified  ftdi:<serial  number>  addressing
113              scheme.
114
115       --ha7e=port (HA7E)
116              Embedded  Data Systems HA7E adapter ( and HA7S ) in native ascii
117              mode.
118
119       --ha5=port | --ha5=port:a | --ha5=port:acg (HA5)
120              Embedded Data Systems HA5 mutidrop adapter in native ascii mode.
121              Up to 26 adapters can share the same port, each with an assigned
122              letter. If no letter specified, the program will  scan  for  the
123              first response (which may be slow).
124
125       --checksum | --no_checksum (HA5)
126              Turn  on (default) or off the checksum feature of the HA5 commu‐
127              nication.
128
129       --passive=port | --ha2=port | --ha3=port | --ha4b=port (Passive)
130              Passive 1-wire adapters. Powered off the serial port  and  using
131              passive electrical components (resitors and diodes).
132
133       --8bit | --6bit (Passive)
134              Synthesize  the  1-wire waveforme using a 6-bit (default) serial
135              word, or 8-bit word. Not all UART devices support 6  bit  opera‐
136              tion.
137
138       --timeout_serial=5
139              Timeout (in seconds) for all serial communications. 5 second de‐
140              fault. Can be altered dynamically under /settings/timeout/serial
141

* USB devices

143       The only supported true USB bus masters are based on the  DS2490  chip.
144       The  most  common  is the DS9490R which has an included 1-wire ID slave
145       with family code 81.
146
147       There are also bus masters based on the serial chip with a USB  to  se‐
148       rial  conversion built in. These are supported by the serial bus master
149       protocol.
150
151       -u | --usb
152              DS2490 based bus master (like the DS9490R).
153
154       -u2 | --usb=2
155              Use the second USB bus master.  (The  order  isn't  predicatble,
156              however,  since the operating system does not consistently order
157              USB devices).
158
159       -uall | --usb=ALL
160              Use all the USB devices.
161
162       --usb_flextime | --usb_regulartime
163              Changes the details of 1-wire waveform timing for  certain  net‐
164              work configurations.
165
166       --altusb
167              Willy Robion's alternative USB timing.
168
169       --timeout_usb=5
170              Timeout  for USB communications. This has a 5 second default and
171              can be changed dynamically under /settings/timeout/usb
172

* I2C devices

174       I2C is  2 wire protocol used for chip-to-chip  communication.  The  bus
175       masters:  DS2482-100,  DS2482-101  and  DS2482-800 can specify (via pin
176       voltages) a subset of addresses on the i2c bus. Those choices are
177
178       i2c_address
179
180       0,1,2,3
181              0x18,0x19,0x1A,0x1B
182
183       4,5,6,7
184              0x1C,0x1D,0x1E,0x1F (DS2482-800 only)
185
186       port for i2c masters have the form /dev/i2c-0, /dev/i2c-1, ...
187
188       -d port | --device=port
189              This simple form only permits a  specific  port  and  the  first
190              available i2c_address
191
192       --i2c=port | --i2c=port:i2c_address | --i2c=port:ALL
193              Specific  i2c port and the i2c_address is either the first, spe‐
194              cific, or all or them. The i2c_address is 0,1,2,...
195
196       --i2c | --i2c=: | --i2c=ALL:ALL
197              Search the available i2c buses for either the first, the  first,
198              or every i2c adapter.
199
200       The DS2482-800 masters 8 1-wire buses and so will generate 8 /bus.n en‐
201       tries.
202

* Network devices

204       These bus masters communicate via the tcp/ip network  protocol  and  so
205       can  be located anywhere on the network.  The network_address is of the
206       form tcp_address:port
207
208       E.g. 192.168.0.1:3000 or localhost:3000
209
210       --link=network_address
211              LinkHubE network LINK adapter by iButtonLink
212
213       --ha7net=network_address | --ha7net
214              HA7Net network 1-wire adapter with specified tcp address or dis‐
215              covered by udp multicast. By Embedded Data Systems
216              --timeout_ha7=60  specific timeout for HA7Net communications (60
217              second default).
218
219       --etherweather=network_address
220              Etherweather adapter
221
222       -s network_address | --server=network_address
223              Location of an owserver (1) program that  talks  to  the  1-wire
224              bus. The default port is 4304.
225
226       --timeout_network=5
227              Timeout for network bus master communications. This has a 1 sec‐
228              ond default and can be changed dynamically under /settings/time‐
229              out/network
230

* Simulated devices

232       Used  for testing and development. No actual hardware is needed. Useful
233       for separating the hardware development from the rest of  the  software
234       design.
235
236       devices
237              is  a  list  of  comma-separated 1-wire devices in the following
238              formats. Note that a valid CRC8 code is created automatically.
239
240       10,05,21
241              Hexadecimal family codes (the DS18S20, DS2405 and DS1921 in this
242              example).
243
244       10.12AB23431211
245              A  more  complete hexadecimal unique address. Useful when an ac‐
246              tual hardware device should be simulated.
247
248       DS2408,DS2489
249              The 1-wire device name. (Full ID cannot  be  speciifed  in  this
250              format).
251
252       --fake=devices
253              Random address and random values for each read. The device ID is
254              also random (unless specified).
255
256       --temperature_low=12 --temperature_high=44
257              Specify the temperature limits for the fake adapter  simulation.
258              These  should be in the same temperature scale that is specified
259              in the command line. It is possible to change the limits dynami‐
260              cally  for  each  adapter  under /bus.x/interface/settings/simu‐
261              lated/[temperature_low|temperature_high]
262
263       --tester=devices
264              Predictable address and predictable values for each  read.  (See
265              the website for the algorhythm).
266

* w1 kernel module

268       This a linux-specific option for using the operating system's access to
269       bus masters. Root access is required and the implementation  was  still
270       in progress as of owfs v2.7p12 and linux 2.6.30.
271
272       Bus masters are recognized and added dynamically. Details of the physi‐
273       cal bus master are not accessible, bu they include USB, i2c and a  num‐
274       ber of GPIO designs on embedded boards.
275
276       Access  is  restrict to superuser due to the netlink broadcast protocol
277       employed by w1. Multitasking must be configured (threads) on the compi‐
278       lation.
279
280       --w1   Use the linux kernel w1 virtual bus master.
281
282       --timeout_w1=10
283              Timeout  for w1 netlink communications. This has a 10 second de‐
284              fault and can be changed dynamically under /settings/timeout/w1
285

FTDI ADDRESSING

287       FTDI is a brand of USB-to-serial chips which are very common.  If  your
288       serial  device  is  connected  via  a USB serial dongle based on a FTDI
289       chip, or if your adapter uses a built-in FTDI USB  chip  (for  example,
290       the LinkUSB), you can use this FTDI addressing.
291
292       The  main  benefit with this mode of access is that we can decrease the
293       communication delay, yielding twice as  fast  1-Wire  communication  in
294       many cases.
295
296       The  following  values for port can be used to identify a specific FTDI
297       port in several of the serial devices options.
298       Note that this requires that OWFS is built with libftdi support,  which
299       might not be the case in standard repositories.
300
301       ftdi:d:<device-node>
302              path  of  bus and device-node (e.g. "003/001") within usb device
303              tree (usually at /proc/bus/usb/ or /dev/bus/usb/)
304
305       ftdi:i:<vendor>:<product>
306              first device with given vendor and product id, ids can be  deci‐
307              mal, octal (preceded by "0") or hex (preceded by "0x")
308
309       ftdi:i:<vendor>:<product>:<index>
310              as  above  with  index  being the number of the device (starting
311              with 0) if there are more than one
312
313       ftdi:s:<vendor>:<product>:<serial number>
314              the device with given vendor id, product id  and  serial  number
315              string
316
317       The above formats are parsed fully by libftdi (minus the ftdi: prefix).
318
319   Simplified device serial-only support
320       An  additional  format  is  supported, for certain bus types. This only
321       specifies the USB serial number.
322
323       ftdi:<serial number>
324              Identifies a FTDI device by serial number only.  Currently, this
325              is  only  valid  for  the  VID/PID  found  on  the LinkUSB (i.e.
326              --link).  Note that those VID/PID's  are  the  default  for  any
327              FT232R device, and in no way exclusive to LinkUSB.
328
329   Permsissions
330       In  order  to run owserver (1) without root privileges - as you should,
331       you must have sufficient permissions to the raw USB node  your  adapter
332       is   connected   to   e.g.  "003/001"  (usually  at  /proc/bus/usb/  or
333       /dev/bus/usb/).
334
335       An easy way to achieve this would be using chown (1):
336
337       sudo chown :<your user> /dev/bus/usb/003/001
338              changes the group of the raw USB  node  "003/001"  from  default
339              "root" to "<your user>"
340
341       You can also write a udev (1) rule for your adapter:
342
343       SUBSYSTEM=="usb",  DRIVER=="usb",  ATTR{idVendor}=="0403", ATTR{idProd‐
344       uct}=="6001", ATTR{serial}=="AK0048A0", GROUP="owsrv"
345              saved   as    a    file    e.g.    "10-FTDI-LinkUSB.rules"    in
346              "/etc/udev/rules.d/",  this  rule  will  automate the process of
347              changing the group to "owsrv" of the raw USB  node  the  LinkUSB
348              adapter with S/N:AK0048A0 is connected to.
349
350   Serial USB node
351       Communication in FTDI mode accesses the RAW USB node and NOT the serial
352       USB node your OS might have created automatically e.g. /dev/ttyUSB0.
353       As a side effect, if existing, the serial USB node e.g. /dev/ttyUSB0 is
354       removed  on successful starting of owserver (1). After it's termination
355       un- and re-plugging the adapter, or un- and  reloading  of  the  module
356       ftdi_sio will recreate the serial USB node.
357
358   Finding FTDI related information on your USB adapter
359       owusbprobe  is  THE tool to find the information needed for direct FTDI
360       addressing
361       However this tool might not yet be packaged in your  version.  Alterna‐
362       tively you can also use lsusb to find the usb node your adapter is con‐
363       nected to, and then use lsusb again on this very node:
364
365       sudo lsusb -D /path/to/your/raw/USB/device/node   |egrep  "idVendor|id‐
366       Product|iSerial"
367              sudo is necessary to get the value of iSerial field, if the per‐
368              missions are still unchanged
369
370   Examples FTDI addressing
371       owserver -d ftdi:s:0x0403:0x6001:A800bXHr
372              starts         owserver         with          a          LinkUSB
373              (VID:0x0403,PID:0x6001,S/N:A800bXHr)  as  bus master in DS2480B-
374              based emulation mode with direct FTDI access
375
376       owserver --link=ftdi:A800bXHr
377              starts owserver with a  LinkUSB  (S/N:A800bXHr)  as  bus  master
378              identified by serial number only in native mode with direct FTDI
379              access
380

SPECIFIC OPTIONS

382   -p host:portnum
383       (Optional) Sets the tcp port the ftp server runs on.  Access  with  the
384       URL ftp://anonymous@servernameoripaddress:portnum
385
386       The  well  known ftp port, 21, will be used by default. Since this port
387       number is in the restricted range, special permission  is  usually  re‐
388       quired.
389

TEMPERATURE SCALE OPTIONS

391   -C --Celsius
392   -F --Fahrenheit
393   -K --Kelvin
394   -R --Rankine
395       Temperature scale used for data output. Celsius is the default.
396
397       Can  also  be  changed  within  the program at /settings/units/tempera‐
398       ture_scale
399

PRESSURE SCALE OPTIONS

401   --mbar (default)
402   --atm
403   --mmHg
404   --inHg
405   --psi
406   --Pa
407       Pressure scale used for data output. Millibar is the default.
408
409       Can  also  be  changed  within  the  program  at  /settings/units/pres‐
410       sure_scale
411
412

FORMAT OPTIONS

414       Choose  the  representation of the 1-wire unique identifiers. OWFS uses
415       these identifiers as unique directory names.
416
417       Although several display formats are selectable, all must be in family-
418       id-crc8 form, unlike some other programs and the labelling on iButtons,
419       which are crc8-id-family form.
420
421   -f --format="f[.]i[[.]c]"
422       Display format for the 1-wire devices. Each device has a 8byte address,
423       consisting of:
424
425       f      family code, 1 byte
426
427       i      ID number, 6 bytes
428
429       c      CRC checksum, 1 byte
430
431       Possible  formats are f.i (default, 01.A1B2C3D4E5F6), fi fic f.ic f.i.c
432       and fi.c
433
434       All formats are accepted as input, but the output will be in the speci‐
435       fied format.
436
437       The  address  elements  can be retrieved from a device entry in owfs by
438       the family, id and crc8 properties, and as a whole with  address.   The
439       reversed id and address can be retrieved as r_id and r_address.
440

JOB CONTROL OPTIONS

442   -r --readonly
443   -w --write
444       Do  we  allow  writing  to  the  1-wire  bus  (writing  memory, setting
445       switches, limits, PIOs)? The write option is  available  for  symmetry,
446       it's the default.
447
448   -P --pid-file filename
449       Places  the PID -- process ID of owfs into the specified filename. Use‐
450       ful for startup scripts control.
451
452   --background | --foreground
453       Whether the program releases the console and runs in the background af‐
454       ter evaluating command line options.  background is the default.
455
456   --error_print=0|1|2|3
457       =0     default mixed destination: stderr foreground / syslog background
458
459       =1     syslog only
460
461       =2     stderr only
462
463       =3     /dev/null (quiet mode).
464
465   --error_level=0..9
466       =0     default errors only
467
468       =1     connections/disconnections
469
470       =2     all high level calls
471
472       =3     data summary for each call
473
474       =4     details level
475
476       >4     debugging chaff
477
478       --error_level=9 produces a lot of output
479

CONFIGURATION FILE

481   -c file | --configuration file
482       Name  of  an owfs (5) configuration file with more command line parame‐
483       ters
484
485

HELP OPTIONS

487       See also this man page and the web site http://www.owfs.org
488
489   -h --help=[device|cache|program|job|temperature]
490       Shows basic summary of options.
491
492       device 1-wire bus master options
493
494       cache  cache and communication size and timing
495
496       program
497              mountpoint or TCP server settings
498
499       job    control and debugging options
500
501       temperature
502              Unique ID display format and temperature scale
503
504   -V --version
505       Version of this program and related libraries.
506

TIME OPTIONS

508       Timeouts for the bus masters were previously listed in Device  options.
509       Timeouts  for  the cache affect the time that data stays in memory. De‐
510       fault values are shown.
511
512   --timeout_volatile=15
513       Seconds until a volatile property expires in the cache. Volatile  prop‐
514       erties are those (like temperature) that change on their own.
515
516       Can be changed dynamically at /settings/timeout/volatile
517
518   --timeout_stable=300
519       Seconds until a stable property expires in the cache. Stable properties
520       are those that shouldn't change unless explicitly changed. Memory  con‐
521       tents for example.
522
523       Can be changed dynamically at /settings/timeout/stable
524
525   --timeout_directory=60
526       Seconds until a directory listing expires in the cache. Directory lists
527       are the 1-wire devices found on the bus.
528
529       Can be changed dynamically at /settings/timeout/directory
530
531   --timeout_presence=120
532       Seconds until the presence and bus location of a 1-wire device  expires
533       in the cache.
534
535       Can be changed dynamically at /settings/timeout/presence
536
537       There are also timeouts for specific program responses:
538
539   --timeout_server=5
540       Seconds  until  the  expected  response from the owserver (1) is deemed
541       tardy.
542
543       Can be changed dynamically at /settings/timeout/server
544
545   --timeout_ftp=900
546       Seconds that an ftp session is kept alive.
547
548       Can be changed dynamically at /settings/timeout/ftp
549

EXAMPLE

551       owftpd -d /dev/ttyS0
552              Ftp server runs on default tcp port 21, serial adapter at ttyS0
553
554       owftpd -s littlehost:4304 --error_level=3
555              Ftp server on default port 21, from owserver (1) process on host
556              "littlehost", extensive error messages.
557

AVAILABILITY

559       http://www.owfs.org
560

SEE ALSO

562   Programs
563       owfs  (1)  owhttpd  (1)  owftpd  (1)  owserver (1) owdir (1) owread (1)
564       owwrite (1) owpresent (1) owtap (1)
565
566   Configuration and testing
567       owfs (5) owtap (1) owmon (1)
568
569   Language bindings
570       owtcl (3) owperl (3) owcapi (3)
571
572   Clocks
573       DS1427 (3) DS1904(3) DS1994 (3)  DS2404  (3)  DS2404S  (3)  DS2415  (3)
574       DS2417 (3)
575
576   ID
577       DS2401 (3) DS2411 (3) DS1990A (3)
578
579   Memory
580       DS1982  (3)  DS1985  (3)  DS1986  (3)  DS1991 (3) DS1992 (3) DS1993 (3)
581       DS1995 (3) DS1996 (3) DS2430A (3) DS2431  (3)  DS2433  (3)  DS2502  (3)
582       DS2506 (3) DS28E04 (3) DS28EC20 (3)
583
584   Switches
585       DS2405 (3) DS2406 (3) DS2408 (3) DS2409 (3) DS2413 (3) DS28EA00 (3)
586
587   Temperature
588       DS1822  (3)  DS1825  (3)  DS1820 (3) DS18B20 (3) DS18S20 (3) DS1920 (3)
589       DS1921 (3) DS1821 (3) DS28EA00 (3) DS28E04 (3)
590
591   Humidity
592       DS1922 (3)
593
594   Voltage
595       DS2450 (3)
596
597   Resistance
598       DS2890 (3)
599
600   Multifunction (current, voltage, temperature)
601       DS2436 (3) DS2437 (3) DS2438 (3)  DS2751  (3)  DS2755  (3)  DS2756  (3)
602       DS2760 (3) DS2770 (3) DS2780 (3) DS2781 (3) DS2788 (3) DS2784 (3)
603
604   Counter
605       DS2423 (3)
606
607   LCD Screen
608       LCD (3) DS2408 (3)
609
610   Crypto
611       DS1977 (3)
612
613   Pressure
614       DS2406 (3) -- TAI8570
615
616

AUTHOR

618       Paul Alfille (paul.alfille@gmail.com)
619
620
621
622OWFS Manpage                         2004                            OWFTPD(1)
Impressum