Nanode, USB FTDI, OSX10.7

From XinCheJian
Jump to navigation Jump to search

Nanode

The nanode is an Arduino clone with a built in Ethernet controller.

The annoying error:

       0        0 AppleUSBCDC: start - initDevice failed

It's taken me a long time (not that long, just some debugging across systems) to get it to work on OSX10.7, you program it through a UART port (or as Nanode call it.. FTDI) the UART Adaptor that comes with Nanode has a silicon labs CP2102 interface chip. Nanode recommend installing the FTDIdriver that comes with arduino form ftdichip.com, however it's a Silicon labs chip which was why everyone had problems with the initial connection and gave up.

Driver OSX/WINDOWS - Linux doesn't need any

Get them from here: http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx bad news to OSX users for some silly reason you need to reboot your computer once installed.

You should see this in dmesg after reboot..

com_silabs_driver_CP210xVCPDriver: init
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::attach
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::probe
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::detach
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::attach
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::start - Registered for Power Management
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::start!
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::start - Found device at interface 0
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::SelectInterfaces - BulkInput Pipe is 0xffffff8014f921c0 on EP1
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::SelectInterfaces - BulkOutput Pipe is 0xffffff8014f92700 on EP1
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::setPowerState - Waking up
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo - Part Number Found: 0x02
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo - UsbConfigurationDescriptor - 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .bLength = 9 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .bDescriptorType = 0x02 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .wTotalLength = 32 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .bNumInterfaces = 1 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .bConfigurationValue = 1 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .iConfiguration = 0 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .bmAttributes = 0x80 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::GetCP210xInfo     .MaxPower = 50 
com_silabs_driver_CP210xVCPDriver64(0xffffff8018a4c000)::start - Sucessfully loaded the driver

..Great!

cp2102 pinout

Nanode -> cp2102 solder on a 1pin to the DTR line

RTS* -> DTR*
TXD -> rx
RXD -> tx
+5V -> 5V
0V -> gnd

Note the rx and tx wire pairs are swapped and not straight through like used for the BoArduino. A good idea is to use the common colour convention of green or black for ground and red for the 5V. another approach is simply to keep each wire in order (as much as possible), so it is easier to see how they are connected. Arduino-cp2102.jpg

Differences and Preparation

First, if you test blink! on the Nanode it wont work, pin 13 is connected to the network adaptor, while pin 6 is now connected to the onboard LED.. so just change pin 13 to 6.. done


tested

https://github.com/jcw/ethercard - failed to work.