Project:Nanode/PoorMansCable: Difference between revisions
No edit summary |
|||
(18 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Health Warning: This build is experimental and has not yet been verified. | Health Warning: This build is experimental and has not yet been verified. A much more primitive (but often tried/build) approach is [[Project:Nanode/PoorMansCable2]]. | ||
=What?= | =What?= | ||
The Poor Man's Cable (PMC). An attempt at a sub-£3 cable to program the nanode. Current build price: ~£2.04 | |||
[[File:PMC_Laptop.jpg|500px]][[File:PMC_Overview.jpg|500px]][[File:PMC_Nanode.jpg|500px]] | |||
==Proposed BOM== | ==Proposed BOM== | ||
1 x [http://www.rapidonline.com/sku/Electronic-Components/Integrated-Circuits/Line-Drivers-Receivers/RS232-Line-driver-receivers/67368/82-0900 MAX232A] at 86p each+vat | 1 x [http://www.rapidonline.com/sku/Electronic-Components/Integrated-Circuits/Line-Drivers-Receivers/RS232-Line-driver-receivers/67368/82-0900 MAX232A] at 86p each+vat | ||
Line 26: | Line 29: | ||
=Why?= | =Why?= | ||
The current solution for programming the | The current solution for programming the Nanode costs £12 on [http://www.ebay.co.uk/itm/USB-TTL-Serial-Cable-FTDI-chipset-/290576368332?pt=UK_Computing_CablesConnectors_RL&hash=item43a7b382cc Ebay] | ||
=Puzzle Pieces= | =Puzzle Pieces= | ||
Here are all of the current pieces to the puzzle. | |||
==SP232ACP Board PCB Schematics== | |||
== | ==SP232ACP IC Datasheet== | ||
[[File:SP232ACP.pdf]] | |||
==FTDI Cable Pinout== | ==FTDI Cable Pinout== | ||
# (Black) GND | # (Black) GND | ||
# (Grey) /CTS | # (Grey) /CTS | ||
Line 45: | Line 49: | ||
==Nanode Pinout== | ==Nanode Pinout== | ||
# Gnd | # Gnd | ||
# no connection | # no connection | ||
Line 52: | Line 55: | ||
# Txd | # Txd | ||
# /Reset | # /Reset | ||
==Test Results== | |||
===Crossover Connection=== | |||
It was possible to talk from one serial terminal to another and back again. The two COM ports were linked by making a crossover connection between PMC and a known working FTDI TTL-232R-3V3 cable and opening up two serial terminals. | |||
{| class="wikitable" style="text-align:center" | |||
|+Cross Over Connection Table | |||
! FTDI !! Pin !! PMC | |||
|- | |||
| (Black) || GND || GND | |||
|- | |||
| (Grey) || CTS || RTS | |||
|- | |||
| (Red) || VCC (5V) || VCC | |||
|- | |||
| (Orange) || TXD || RXD | |||
|- | |||
| (Yellow) || RXD || TXD | |||
|- | |||
| (Green) || RTS || CTS | |||
|} | |||
===Listening to Serial Output=== | |||
Flash arduino with | |||
<pre><nowiki> | |||
void setup() | |||
{ | |||
Serial.begin(9600); | |||
} | |||
void loop() | |||
{ | |||
Serial.println("Hello World!"); | |||
delay(1000); | |||
} | |||
</nowiki></pre> | |||
Hello World! using the PMC could be seen in terminal with: | |||
screen /dev/ttyUSB0 9600 | |||
==avrdude== | ==avrdude== | ||
Line 138: | Line 180: | ||
avrdude done. Thank you. | avrdude done. Thank you. | ||
</nowiki></pre> | </nowiki></pre> | ||
===Other Solutions=== | |||
Here's how to do a RS232 to TTL level converter with a couple of [http://www.uchobby.com/index.php/2007/06/11/ttl-to-rs232-adaptor-explained/ transistors] |
Latest revision as of 17:32, 2 October 2011
Health Warning: This build is experimental and has not yet been verified. A much more primitive (but often tried/build) approach is Project:Nanode/PoorMansCable2.
What?
The Poor Man's Cable (PMC). An attempt at a sub-£3 cable to program the nanode. Current build price: ~£2.04
Proposed BOM
1 x MAX232A at 86p each+vat
OR
1 x *202* at 61p each+vat
OR
1 x SMD ones are around 30p
4 x '100nF Capacitor' at ~2p each
1 x 9 pin D connector at 31p each+vat
1 x header socket 1 by 6 sub-20p
1 x pcb todo: add link to file
1 x USB to RS232 at £1.14
Overall cost, under £2+the pcb
Why?
The current solution for programming the Nanode costs £12 on Ebay
Puzzle Pieces
Here are all of the current pieces to the puzzle.
SP232ACP Board PCB Schematics
SP232ACP IC Datasheet
FTDI Cable Pinout
- (Black) GND
- (Grey) /CTS
- (Red) VCC (5V)
- (Orange) TXD
- (Yellow) RXD
- (Green) /RTS
Nanode Pinout
- Gnd
- no connection
- Vcc
- Rxd
- Txd
- /Reset
Test Results
Crossover Connection
It was possible to talk from one serial terminal to another and back again. The two COM ports were linked by making a crossover connection between PMC and a known working FTDI TTL-232R-3V3 cable and opening up two serial terminals.
FTDI | Pin | PMC |
---|---|---|
(Black) | GND | GND |
(Grey) | CTS | RTS |
(Red) | VCC (5V) | VCC |
(Orange) | TXD | RXD |
(Yellow) | RXD | TXD |
(Green) | RTS | CTS |
Listening to Serial Output
Flash arduino with
void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World!"); delay(1000); }
Hello World! using the PMC could be seen in terminal with:
screen /dev/ttyUSB0 9600
avrdude
Command:
avrdude -p atmega328p -b 57600 -P /dev/ttyUSB0 -U flash:r:./blah.hex -v -c arduino
Terminal output:
avrdude: Version 5.10, compiled on Mar 23 2010 at 15:03:00 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch System wide configuration file is "/etc/avrdude.conf" User configuration file is "/home/samuel/.avrduderc" User configuration file does not exist or is not a regular file, skipping Using Port : /dev/ttyUSB0 Using Programmer : arduino Overriding Baud Rate : 57600 AVR Part : ATMEGA328P Chip Erase delay : 9000 us PAGEL : PD7 BS2 : PC2 RESET disposition : dedicated RETRY pulse : SCK serial program mode : yes parallel program mode : yes Timeout : 200 StabDelay : 100 CmdexeDelay : 25 SyncLoops : 32 ByteDelay : 0 PollIndex : 3 PollValue : 0x53 Memory Detail : Block Poll Page Polled Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- --------- eeprom 65 5 4 0 no 1024 4 0 3600 3600 0xff 0xff flash 65 6 128 0 yes 32768 128 256 4500 4500 0xff 0xff lfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 hfuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 efuse 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 lock 0 0 0 0 no 1 0 0 4500 4500 0x00 0x00 calibration 0 0 0 0 no 1 0 0 0 0 0x00 0x00 signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00 Programmer Type : Arduino Description : Arduino avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 Hardware Version: -1074437604 Firmware Version: 151804672.-1215592768 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 Vtarget : 15004184.0 V Varef : 307937452.8 V Oscillator : 0.027 Hz SCK period : 12268194.5 us avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0xe0 avrdude: stk500_getparm(): (a) protocol error, expect=0x14, resp=0x00 avrdude: stk500_initialize(): (a) protocol error, expect=0x14, resp=0xe0 avrdude: initialization failed, rc=-1 Double check connections and try again, or use -F to override this check. avrdude: stk500_disable(): protocol error, expect=0x14, resp=0xe0 avrdude done. Thank you.
Other Solutions
Here's how to do a RS232 to TTL level converter with a couple of transistors