From: ian Date: Thu, 8 Apr 2004 00:02:16 +0000 (+0000) Subject: working on farnell X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=26bc1e3d6b1721bc11ad175b71d68d78c4b324e1;p=trains.git working on farnell --- diff --git a/farnell/circuit.partlist b/farnell/circuit.partlist new file mode 100644 index 0000000..befcf7f --- /dev/null +++ b/farnell/circuit.partlist @@ -0,0 +1,167 @@ +CDU + 434-7821 1 TIP120 main transistor + 707-363 1= 7.7C/W heatsink + 342-117 1 2r sense power resistor + std 150 1 divider + 347-012 1 200r trimmer + r 0w4 1k5 1 divider + 358-824 1 2N3904 enable transistor + std 4k3 1 enable + 536-027 1 10000uF main capacitor + r 0w4 1k5 1 load + +Booster core + std 33k 1 pwm pulldn + std 2k2 1 overload base + std 22k 1 overload up + std 150r 1 overload led series + c cer 10n 2 bootstrap + +ICSP VPP/mclr + std 330r 1 + std 720r 1 + std 220k 1 + std 2k2 2 + c cer 100n + in4148 1 + 74f07 1/6 + +ICSP PC + std 220k 2 + 74hct04 2/6 + 74f07 1/6 + 74hc595a 1 + per SR + std 220k 1 + 74hct04 1/6 + per PIC + std 3k3 1 + std 68k 1 + +ICSP PD + std 1k 1 + bat86 2@pic + std 22k 2 + std 220k 1 + 74hct04 2/6 + 74f07 1 + 1n4148 1 + +Point solenoid + per Half-point + 483-3363 1 stp22nf03l power FET + 352-5351 1 1n5401 freewheel diode + per Half-point-discrete + std 330r + per Half-point-dil7 + 149-002 1/7 470r x7 dil network + per Half-point-dil8 + 476-468 1/8 330r x8 dil network + +Track polarity control + per Reverse-segment + 309-3190 1 MR82-12USR relay + uln2803ap 1/8 + c cer 100n 1/8 decouple + +Block current sense + per Sense-segment + 330-7578 1 CP201 bridge rectifier + std 56r 1 + 325-958 1/4 TLP521-4A optocoupler + per Sense-segment-discrete + std 100k 1 + per Sense-segment-sil8 + 148-988 1/8 100k x8 sil network + 148-999 1/9 100k x9 sil network + +Serial Port + 407-203 1 nm232dd + c cer 100n 1 decouple + 166-856 2 p6ke13ca 13v transorb + 74f07 1/6 + std 3k9 1 + +Indicators + 621-419 2 LFW5WAEMGMBW diffused RGB led + std 150r 1 + r 0w4 330r 2 + r 0w4 470r 1 + 1n4148 4 + bzx79-c2v4 1 + r 0w4 680r 1 + 346-755 1 200r trimmer 3386x + 346-767 1 500r trimmer 3386x + std 36r 1 + r 0w4 390r 1 + r 0w4 180r 2 + +Booster and power comp + 595-743 1 4C/W heatsink (for fet) + 167-927 1 irf5305 power fet + 287-064 1 1uF hf ceramic + 407-720 1 lmd18200t + 253-716 1 1.65C/W heatsink (for 18200) + 489-712 1 330r 2W carbon film (load) + bat86 4 + std 5k1 1 + std 6k2 1 + bzx55-c8v2 2 + std 2k4 1 + std 1k3 1 + std 3k9 1 + std 3k0 1 + std 1k8 1 + 347-723 1 1k 12-turn trimmer 3266x + std 910r 1 + 400-816 1 lf356n op-amp + std 330k 1 + std 10k 1 + bzx55-c8v2 1 + std 20k 1 + c pana 100u 1 + c cer 100n 1 + +PIC core + std 3k9 2 + 221-480 1 + per PIC + 411-3822 pic18f458-i/p + c cer 100n 1 + +Power supplies + 432-9363 1 pse65-18 18v 4.4a psu + 149-324 1 panel power plug + 149-323 1 panel power socket + 285-894 1 954/uk4 apem spst switch + 152-255 1 5666a9 apem 4pco switch + 327-8013 1 2r2 metal film + 327-0737 1 6r8 7w vitreous enamel + 342-117 1 2r 3.5w vitreous enamel + 170-074 2 9.9C/W sink for L78xx's + c pana 100u 2 + c poly 330n 2 + c cer 100n 2 + 412-764 1 l7805cv + 413-203 1 l7812cv + +74f07 = 376-632 OC buffer +74hct04 = 382-759 hex inverter +74hc595a = 701-610 shift register + +uln2803ap = 318-7032 low-side relay driver + +bzx55-c8v2 = 369-020 +bzx79-c2v4 = 369-329 + +c poly 330n = 546-240 0.33uF polyester +c pana 100u = 319-8765 100uF 25V electrolytic + +r 0w4 ? = resistor 0.4W +r 0w4 180r = 513-842 +r 0w4 330r = 331-995 +r 0w4 390r = 513-921 +r 0w4 470r = 332-010 +r 0w4 680r = 332-033 +r 0w4 1k5 = 332-070 +r 0w4 1k8 = 332-082 diff --git a/farnell/farnell-find b/farnell/farnell-find new file mode 100755 index 0000000..9a5ceab --- /dev/null +++ b/farnell/farnell-find @@ -0,0 +1,65 @@ +#!/usr/bin/perl + +sub by_item ($) { + my ($itemcode) = @_; + # looks up $itemcode (ddd-d...) at Farnell and returns + # cat hash ref + local ($_); + my ($chr,$shortcode,$sc2,$url); + $url= 'http://uk.farnell.com/jsp/catalog/viewproductdetails.jsp?prodId='; + $itemcode =~ m/^(\d\d\d)\-(\d{3,7})$/ or die; + $chr->{Item}= $itemcode; + $chr->{Shortcode}= $1.$2; + $url .= $chr->{Shortcode}; + if (!-f "farn.$itemcode") { + system "wget -otmp.farnerr.$itemcode -Otmp.farn.$itemcode $url"; + if ($?) { system "cat tmp.farnerr.$itemcode"; die; } + rename "tmp.farn.$itemcode", "farn.$itemcode" or die $!; + unlink "tmp.farnerr.$itemcode"; + } + $_= `cat farn.$itemcode`; $? and die $?; + s/[^\n\t\x20-\x7e]/\?/g; + $sc2= snarf('Order Code / Sku'); + die "wrong results $snarf ?" unless $sc2 eq $chr->{Shortcode}; + $chr->{Description}= snarf('Description'); + $chr->{Avail}= snarf('Stock Availability'); + $chr->{MinOrder}= snarf('Minimum Order'); + $chr->{Multiple}= snarf('Order Multiple'); + return $chr; +} + +sub snarf ($) { + my ($thing) = @_; + m! +\$thing +\ +(.+)(?:\n\ \;)* +\ +! + or die "no $thing ?"; + return $1; +} + +sub read_spec () { + local ($_); + for (;;) { + $!=0; $_=; die unless length $_; + chomp; s/\s+$//; + last if m/^end$/; + next if m/^\#/ || !m/\S/; + + if (m/^ + $section= + +if (@ARGV==1 && @ARGV[0] =~ m/^(\d\d\d\-)/) { + $chr= by_item($ARGV[0]); + foreach $k (sort keys %$chr) { + printf "%-20s %s\n", $k, $chr->{$k} or die $!; + } +} elsif (@ARGV==1) { + open F, "< $ARGV[0]" or die $!; + read_spec(); + close F or die $!; + analyse_spec(); + dump_results(); +}