Source

pyFirmata / README.rst

Diff from to

File README.rst

 Usage
 =====
 
-    >>> from pyfirmata import Board, util
-    >>> board = Board('/dev/tty.usbserial-A6008rIF')
+Basic usage::
+
+    >>> from pyfirmata import Arduino, util
+    >>> board = Arduino('/dev/tty.usbserial-A6008rIF')
     >>> board.digital[13].write(1)
 
 To use analog ports, it is probably handy to start an iterator thread. Otherwise the board will keep sending data to your serial, until it overflows::
     0.661440304938
     >>> pin3 = board.get_pin('d:3:p')
     >>> pin3.write(0.6)
+    
+Board layout
+============
 
+If you want to use a board with a different layout than the standard Arduino, or the Arduino Mega (for wich there exist the shortcut classes ``pyfirmata.Arduino`` and ``pyfirmata.ArduinoMega``), instantiate the Board class with a dictionary as the ``layout`` argument. This is the layout dict for the Mega for example::
+
+    >>> mega = {
+    ...         'digital' : tuple(x for x in range(54)),
+    ...         'analog' : tuple(x for x in range(16)),
+    ...         'pwm' : tuple(x for x in range(2,14)),
+    ...         'use_ports' : True,
+    ...         'disabled' : (0, 1, 14, 15) # Rx, Tx, Crystal
+    ...         }
+
+Todo
+====
+
+The next things on my list are to implement the new protocol changes in firmata:
+
+-  Capability Query, which would eliminate the need to instantiate a board with the layout dict, as it will be able to determine the layout itself (http://firmata.org/wiki/Proposals#Capability_Query_.28added_in_version_2.2.29)
+- Pin State Query, which allows it to populate on-screen controls with an accurate representation of the hardware's configuration (http://firmata.org/wiki/Proposals#Pin_State_Query_.28added_in_version_2.2.29)