chiark / gitweb /
working on farnell
authorian <ian>
Thu, 8 Apr 2004 00:02:16 +0000 (00:02 +0000)
committerian <ian>
Thu, 8 Apr 2004 00:02:16 +0000 (00:02 +0000)
farnell/circuit.partlist [new file with mode: 0644]
farnell/farnell-find [new file with mode: 0755]

diff --git a/farnell/circuit.partlist b/farnell/circuit.partlist
new file mode 100644 (file)
index 0000000..befcf7f
--- /dev/null
@@ -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 (executable)
index 0000000..9a5ceab
--- /dev/null
@@ -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!
+\<td class="tabledata"(?: width="\d+%")?\>$thing</td>
+\<td class="tabledata"(?: width="\d+%")?\>
+(.+)(?:\n\&nbsp\;)*
+\</td>
+!
+    or die "no $thing ?";
+    return $1;
+}
+
+sub read_spec () {
+    local ($_);
+    for (;;) {
+       $!=0; $_=<F>; 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();
+}