Clarify some error texts and return values
[elmcan.git] / readme.rst
index cc557b2ac472a77951921b1ed3935d282bf8973d..7facff87f1ce155b0cd822c3ef434cb2df46649d 100644 (file)
@@ -11,12 +11,13 @@ Max Staudt <max-linux@enpas.org>
 Motivation
 -----------
 
-CAN adapters are expensive, few, and far between.
-ELM327 interfaces are cheap and plentiful.
-
 This driver aims to lower the initial cost for hackers interested in
 working with CAN buses.
 
+CAN adapters are expensive, few, and far between.
+ELM327 interfaces are cheap and plentiful.
+Let's use ELM327s as CAN adapters.
+
 
 
 Introduction
@@ -27,7 +28,7 @@ into full-fledged (as far as possible) CAN interfaces.
 
 Since the ELM327 was never meant to be a stand-alone CAN controller,
 the driver has to switch between its modes as quickly as possible in
-order to approximate full-duplex operation.
+order to fake full-duplex operation.
 
 As such, elmcan is a best-effort driver. However, this is more than
 enough to implement simple request-response protocols (such as OBD II),
@@ -43,6 +44,21 @@ known limitations in older controllers and clones.
 
 
 
+Requirements
+-------------
+
+This requires Linux 4.11 (for 431af779256c), and has been tested on 4.19.
+
+Also, elmcan depends on ``can-dev``:
+
+    sudo modprobe can-dev
+
+Install
+-------------
+    cd module/
+
+    sudo dkms install .
+
 Data sheet
 -----------
 
@@ -56,6 +72,7 @@ How to check the controller version
 ------------------------------------
 
 Use a terminal program to attach to the controller.
+The default settings are 38400 baud/s, 8 data bits, no parity, 1 stopbit.
 
 After issuing the "``AT WS``" command, the controller will respond with
 its version::
@@ -67,6 +84,9 @@ its version::
 
     >
 
+Note that clones may claim to be any version they like.
+It is not indicative of their actual feature set.
+
 
 
 How to attach the line discipline
@@ -100,6 +120,8 @@ Module parameters
        Some adapters and/or their connection are unreliable. Enable this
        option to try and work around the situation. This is a best-effort
        workaround, so undefined behavior will likely occur sooner or later.
+       Without this option, the driver will bail on the first unrecognized
+       character it receives from the TTY.
 
        LOAD TIME::
 
@@ -110,7 +132,7 @@ Module parameters
 Known limitations of the controller
 ------------------------------------
 
-- Clone "v1.5" devices
+- Clone devices ("v1.5" and others)
 
   Sending RTR frames is not supported and will be dropped silently.
 
@@ -128,8 +150,8 @@ Known limitations of the controller
 
 - All versions
 
-  No automatic full duplex operation is supported. The driver will
-  switch between input/output mode as quickly as possible.
+  No full duplex operation is supported. The driver will switch
+  between input/output mode as quickly as possible.
 
   The length of outgoing RTR frames cannot be set. In fact, some
   clones (tested with one identifying as "``v1.5``") are unable to
@@ -320,11 +342,16 @@ termination resistors on its PCB and try removing them.
 
 
 
+Thanks
+-------
+
+Thanks go out to Oliver Neukum for his early reviews and suggestions.
+
+Several more people have encouraged me to finish this - thank you all.
+
+
+
 To Do list for future development
 ----------------------------------
 
-- DMA capable rx/tx buffers
-  (is this relevant for this driver?)
-
-- flushing of ``tx_work`` is too late in ``ldisc_close()``
-  (is this still the case?)
+- None currently