tag:blogger.com,1999:blog-2622934747035794522024-03-13T03:07:26.698+00:00Renoir's RantsUninformed opinions, untested theories and all-out rants, including a record of my progress building a RepRap.Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.comBlogger112125tag:blogger.com,1999:blog-262293474703579452.post-2474077669830995352013-08-30T13:02:00.000+01:002013-08-30T13:03:22.836+01:00Cheap and cheerful home-made swivel knifeI have recently taken up leatherwork and am enjoying it a lot: it's something I can do away from the computer :)<br />
<br />
I made a swivel knife. It's a specialist leatherworking tool, able to make controlled curves for patterns.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629271402/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="188" src="http://farm6.staticflickr.com/5484/9629271402_dec1650701.jpg" width="500" /></a>
<br />
A quick how-to follows - more a list of what I did, rather than the best way to do it.<br />
<a href="http://www.flickr.com/photos/56285539@N06/sets/72157635292717181/">http://www.flickr.com/photos/56285539@N06/sets/72157635292717181<br />
</a><br />
<br />
<a href="http://www.flickr.com/photos/56285539@N06/9625988431/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="279" src="http://farm3.staticflickr.com/2879/9625988431_f769fdf47f.jpg" width="500" /></a><br />
Parts needed:<br />
<ul>
<li>Scrap wood - preferably tight-grained hardwood (mine is from an old chopping board)</li>
<li>Craft knife from the pound shop. Plastic or aluminium should both work</li>
<li>Ball-bearing. I have several from an old 3d printer (624?) Internal diameter is 4mm, outside 12.9mm? They are the ones commonly used for RC cars.</li>
<li>M4 25mm machine screw</li>
</ul>
<a href="http://www.flickr.com/photos/56285539@N06/9625988841/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="342" src="http://farm3.staticflickr.com/2842/9625988841_c181c30e9c.jpg" width="500" /></a><br />
Remove the blade and put it somewhere safe<br />
<a href="http://www.flickr.com/photos/56285539@N06/9625989467/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="412" src="http://farm8.staticflickr.com/7424/9625989467_f33c14c721.jpg" width="500" /></a><br />
Mark out a small block (50mm). My scrap was 20mm x 34mm. Cut off.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9625989881/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="169" src="http://farm8.staticflickr.com/7457/9625989881_832223802f_n.jpg" width="320" /></a><br />
Mark centre and find a screwdriver. Select a drill just larger than the screwdriver tip. Note the drill can be smaller than the screw/bolt head.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629222566/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="500" src="http://farm6.staticflickr.com/5468/9629222566_30eecb066d.jpg" width="380" /></a><br />
Drill right through the block (onto scrap wood!) and check the screwdriver fits.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629223260/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="481" src="http://farm8.staticflickr.com/7362/9629223260_5e96643d27.jpg" width="500" /></a><br />
Drill about 10mm in with a large drill - 12mm if possible. I only had 10mm.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9625991721/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="96" src="http://farm8.staticflickr.com/7421/9625991721_ddaf6162da_m.jpg" width="240" /></a><br />
I didn't have a large enough drill, but I found a countersink bit which was about 12.5mm - perfect. I wanted a *slightly* smaller hole than the bearing.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629266084/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="382" src="http://farm4.staticflickr.com/3673/9629266084_0652901ddb.jpg" width="500" /></a><br />
I now have a stepped hole - about 5mm down at 12.5mm, another few mm at 10mm, and the rest at 5mm<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629266618/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="500" src="http://farm6.staticflickr.com/5342/9629266618_f03a1a5b82.jpg" width="466" /></a><br />
I then drew on a rough finger guard shape, and cut out with junior hacksaw and chisels.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9626035239/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="374" src="http://farm6.staticflickr.com/5525/9626035239_2e6fcee146.jpg" width="500" /></a><br />
*improvised lathe* I mounted it on a masonry drill to smooth off the rough edges. Handily, the shank of the masonry drill was the same as the hole size, but the thread was slightly larger. This allowed me to securely screw the block onto the drill thread. *wear eye protection and mount drill in vice*. I could then use a chisel and sandpaper to smooth the block. This would be easier on a lathe, or could be skipped entirely with enough time and hand sanding.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629267624/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="311" src="http://farm8.staticflickr.com/7320/9629267624_a7da26e832_n.jpg" width="320" /></a><br />
Smoothed block. Continue sanding and tidying. I used sandpaper wrapped around a chisel handle to smooth the finger guard.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9626036769/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="500" src="http://farm3.staticflickr.com/2847/9626036769_2085eda205.jpg" width="405" /></a><br />
Finished sanding/got bored. Could also add surface finish/dye/varnish at this point.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9626036273/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="500" src="http://farm3.staticflickr.com/2872/9626036273_9e6462ee33.jpg" width="440" /></a><br />
Hold the knife and block, and estimate how much height you need. Mark the knife handle and cut off with hacksaw.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9626037477/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="500" src="http://farm8.staticflickr.com/7378/9626037477_dd1b9b06d7.jpg" width="464" /></a><br />
Drill a 3mm diameter 20mm deep hole in the end of the handle. Mounting the work in the chuck and the drill in the vice will help centre the hole and keep it true down the centre - the rotation of the work (like it does in a lathe) will push the drill to centre rather than trying to aim the drill straight. Mark the centre and start the drill slowly, and allow it to find the centre.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629269794/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="158" src="http://farm3.staticflickr.com/2874/9629269794_fe4d6d241d.jpg" width="500" /></a><br />
Sand the end, and *ever so slightly* countersink or ream the entrance to the hole - just barely. this will help you tap the hole to M4 thread. Note, if you don't have a tap handy, you can use a bolt or machine screw - just wind in carefully and it will cut it's own thread. one turn in, half turn back, repeat. This works easily in plastic but will probably work in aluminium too.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629270332/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="391" src="http://farm4.staticflickr.com/3686/9629270332_e740b96242.jpg" width="500" /></a><br />
**Place the bolt into the bearing BEFORE inserting bearing into hole**
Gently 'encourage' the bearing into the hole - it should fit tightly, but use care not to split your nice block. You can sand the inside of the hole to widen a little, and you can soak the wood in water to soften the edges. I got a nice tight fit on the first try, but if you have problems you can tap it in with a hammer, or use some glue if too loose.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9626039085/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="302" src="http://farm3.staticflickr.com/2872/9626039085_5bbb59c9a6.jpg" width="500" /></a><br />
Now you can use the screwdriver through your hole to screw the machine screw into your tapped hole.<br />
<a href="http://www.flickr.com/photos/56285539@N06/9629271402/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="188" src="http://farm6.staticflickr.com/5484/9629271402_dec1650701.jpg" width="500" /></a><br />
Reassemble the blade. I have some flatter scalpel blades that I modified to fit: a strip of duck tape helped match the original 'craft' blade width.
<a href="http://www.flickr.com/photos/56285539@N06/9629271850/" title="Untitled by renoirdana, on Flickr"><img alt="Untitled" height="403" src="http://farm8.staticflickr.com/7287/9629271850_43211659d0.jpg" width="500" /></a><br />
Test cuts - seems to work OK :). Needs a bit of sharpening and polishing but does the job!Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com3tag:blogger.com,1999:blog-262293474703579452.post-58513368987357213202013-02-12T23:08:00.001+00:002013-02-12T23:10:30.140+00:00Hello World!I bought a <a href="http://dx.com/p/5v-3-2-lcd12864-screen-module-with-backlit-yellow-green-screen-english-word-stock-121820">cheap display </a>and some <a href="http://dx.com/p/arduino-pro-mini-microcontroller-circuit-board-blue-5v-16mhz-178183">arduino nano pro</a> clones from <a href="http://dx.com/p/5v-3-2-lcd12864-screen-module-with-backlit-yellow-green-screen-english-word-stock-121820">dx.com</a>. It's very nice, and looks great -good contrast and 128x64 pixels (for £8.48!), and the nanos were £5 each (I bought 3!).<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-6ntUr1N677c/URrC67UgpaI/AAAAAAAACPQ/uQLdZPFdkfI/s1600/IMG_0298.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="231" src="http://3.bp.blogspot.com/-6ntUr1N677c/URrC67UgpaI/AAAAAAAACPQ/uQLdZPFdkfI/s320/IMG_0298.jpg" width="320" /></a></div>
<br />
Using some google-fu, I tracked down the library and connections that made it work:<br />
the u8GLIB library <a href="http://code.google.com/p/u8glib/wiki/thelloworld">http://code.google.com/p/u8glib/wiki/thelloworld</a><br />
a very handy post <a href="http://parenthetic.blogspot.co.uk/2011/12/hello-world-in-arduino-with-st7920-lcd.html">http://parenthetic.blogspot.co.uk/2011/12/hello-world-in-arduino-with-st7920-lcd.html</a><br />
and the datasheet <a href="http://www.dfrobot.com/image/data/FIT0021/ST7920.pdf">http://www.dfrobot.com/image/data/FIT0021/ST7920.pdf</a><br />
I ended up with the following wiring:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-rRS3DQuEVug/URrA8ij42CI/AAAAAAAACOY/GUGSfuLAu5c/s1600/IMG_0296.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-rRS3DQuEVug/URrA8ij42CI/AAAAAAAACOY/GUGSfuLAu5c/s320/IMG_0296.JPG" width="240" /></a></div>
E = ESCLK = SCK = PB5 = D13<br />
R/W = RW = MOSI = PB3 = D11<br />
RST = PB0 = D8<br />
RS = a0 = d1 = Data/Register select = D9<br />
<br />
(in the picture I also linked PSB to GND (to select serial input). Don't know if this is required.<br />
<br />
and wiring<br />
BLA = A = 1.2k resistor to 5v<br />
BLK = K = GND<br />
VCC = Vcc = 5v<br />
GND = GND<br />
<br />
I then uploaded the 'Hello World' example from the u8glib, and uncommented and changed the header line from the defaults:<br />
<br />
U8GLIB_ST7920_128X64 u8g(13, 11, 9, U8G_PIN_NONE); <br />
// SPI Com: SCK = en = 18, MOSI = rw = 16, CS = di = 17<br />
<br />
I also had not used the external serial driver before. The 'pro does not have a USB in : it needs a <a href="http://dx.com/p/cp2102-usb-to-ttl-converter-module-red-146141">separate USB-Serial/TTL interface</a>.<br />
I found the MAC driver from the <a href="http://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx">manufacturers site (CP2102)</a>, and a very handy tip on this <a href="http://blog.tarn-vedra.de/2011/09/using-cp2102-on-arduino.html">blog</a> - the 'RST' pin on the end is to reset the *CP2102* chip and therefore does nothing if you connect it to the arduino reset line. It won't upload anything, as it needs to be reset to upload. (pressing reset manually just after pressing the 'upload' button works.<br />
Instead, you need to connect an extra pin to the 'DTR' line and take that to the arduino reset:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-6w3BCVYL9d4/URrCHewkHfI/AAAAAAAACPE/_rV3cbF1TFs/s1600/IMG_0299.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-6w3BCVYL9d4/URrCHewkHfI/AAAAAAAACPE/_rV3cbF1TFs/s320/IMG_0299.JPG" width="320" /></a></div>
<br />
It then works great! ( select the SLAB serial port, and the 'arduino pro mini (5v, 16Mhz)w ATmega328 ).<br />
<br />
Lastly, I also grabbed some great <a href="http://dx.com/p/ds18b20-temperature-sensor-black-silver-143929">one-wire temperature sensors</a> (<a href="http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf">data sheet</a>). The arduino library is <a href="http://milesburton.com/Main_Page?title=Dallas_Temperature_Control_Library">Dallas Temperature control library</a> (and you also need to install the <a href="http://www.pjrc.com/teensy/td_libs_OneWire.html">oneWire lib</a>), but you just connect the DS18B20 to +5v, and GND, and then the middle wire to a data line, and put a biggish resistor between data and 5v (I had some 4k7 ohms lying about so used them). It gives you a clear digital readout (in degrees C) - no conversion, calibration, thermistor curves or anything! it seems to react quickly and should be great.<br />
<br />
I've got this vague plan about building a temperature controller for some sous vide cooking (water bath)... at least I have the bits now!<br />
<br />
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com2tag:blogger.com,1999:blog-262293474703579452.post-73690912051654369092013-02-07T20:37:00.001+00:002013-02-07T20:39:11.766+00:00Normal service will be resumed as soon as possibleFinally realised I haven't posted for over a year. OK, so it's no use waiting until things are 'finished' - because, like most projects, I never quite 'finish' things and end up abandoning them.<br />
<br />
I am going to try and post some of my half-complete projects and ideas so that if anyone else wants to, they can re-use stuff.<br />
<br />
Coming soon... (hopefully)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-52895653719049319742011-11-20T12:19:00.001+00:002011-11-20T16:49:50.778+00:00Hand-drill geared extruderI managed to break my original BfB extruder :-(. The acrylic had flexed too many times, and the top retaining bracket broke in half. The screw thread now carefully unscrews itself rather than driving the filament down :-(<br />
<br />
So, time to update to a modern wade-style or similar extruder, using a hobbled bolt. Of course, I could have bought the gear drives from the many <a href="http://www.reprapltd.com/shop/">RepRap shops</a> or ebay, but that's too easy :-).<br />
Instead, I found an old cheap hand drill, with similar sized gearing. It turned out to be on an 8mm shaft.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-XvPNNGyp-oY/TskqAj8VmbI/AAAAAAAAB9o/-itS5o9aKCk/s1600/IMG_4499.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="158" src="http://4.bp.blogspot.com/-XvPNNGyp-oY/TskqAj8VmbI/AAAAAAAAB9o/-itS5o9aKCk/s320/IMG_4499.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
I added a 5mm to 8mm sleeve to a stepper motor (made from a <a href="http://www.boltdepot.com/fastener-information/Type-Chart.aspx">sex bolt</a>) and drilled and tapped a 4mm hole for a grub screw - I could then attach the smaller gear to the stepper shaft. The larger gear I cut a small square indent to match a <a href="http://www.boltdepot.com/fastener-information/Type-Chart.aspx">carriage bolt</a>, and cut some teeth into the threads using a dremmel cutting disc. A plastic cutting board and an Ikea bracket made a mount, and three skate bearings (8mm 908) made up a channel for the filament.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-RVW2z5R7CmU/TskqM0sQ8xI/AAAAAAAAB-Q/jLmGK-Fc8uA/s1600/IMG_4519.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="http://4.bp.blogspot.com/-RVW2z5R7CmU/TskqM0sQ8xI/AAAAAAAAB-Q/jLmGK-Fc8uA/s320/IMG_4519.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-CfLWULpV4Ek/TskqN8YmC2I/AAAAAAAAB-U/B43CHlqX4RU/s1600/IMG_4522.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="222" src="http://2.bp.blogspot.com/-CfLWULpV4Ek/TskqN8YmC2I/AAAAAAAAB-U/B43CHlqX4RU/s320/IMG_4522.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
It's not pretty, and it's heavier than ABS gearing, but it grips the filament like anything - I can't stop it using my full strength grip, and really forces the filament through. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
I'm currently building a heater block and nozzle to add on the bottom. Hopefully this 'RepStrapStruder' will last long enough for me to print a proper wade's extruder. </div>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com3tag:blogger.com,1999:blog-262293474703579452.post-31406660992345330512011-11-10T17:03:00.000+00:002011-11-10T17:03:55.464+00:00New MegasMy new Mega boards arrived - all good.<br />
Simple tests worked fine, but after uploading the RepRap host software at 115200 Baud, had problems connecting and even uploading new sketches. I had to press reset and upload almost straightaway, otherwise the upload failed.<br />
<br />
A bit of research suggested an updated Atmega 8u2 firmware (the usb chip). (also the new boards appear as /dev/ttyASM0 instead of /dev/ttyUSB0 - update to the latest RXTX libraries.<br />
<br />
Borrowed from a forum post by stimmer on this <a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1286088093/30">thread</a><br />
<br />
<table align="center" border="0" cellpadding="4" cellspacing="0" class="bordercolor" style="background-color: #aaaaaa; color: #111111; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 12px; table-layout: fixed;"><tbody>
<tr><td align="left" class="windowbg" style="background-color: white; color: #333333; font-family: Verdana, sans-serif; font-size: 12px; font-style: normal; font-weight: normal;" valign="top"><div class="message" style="background-color: white; color: #333333; font-family: Verdana, Helvetica, Arial, sans-serif; font-size: 11px; font-style: normal; font-weight: normal; overflow-x: auto; overflow-y: auto; text-decoration: none; width: 993px;">
I saw that a new Uno firmware had been uploaded to the Arduino repository. I've been trying it out, it seems pretty good so far, tools menu and serial monitor are much more reliable and it only failed to program once. (Although the Duemilanove was never perfect either)<br />
<br />
I got the firmware from here:<br />
<a href="https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduino-usbserial/" style="background-color: transparent; color: #900000; font-family: Verdana, Arial, sans-serif; font-style: normal; font-weight: normal; text-decoration: none;" target="_blank">https://github.com/arduino/Arduino/tree/master/hardware/arduino/firmwares/arduin...</a>(click on the right firmware, then click raw, then save it)<br />
<br />
Reflashing the firmware on the 8u2 is a little tricky. <b>Don't try this unless you are prepared to risk bricking your board completely!</b><br />
<br />
You need the dfu-programmer utility:<br />
sudo apt-get install dfu-programmer<br />
<br />
Then follow the instructions here to get the Uno into DFU mode:<br />
<a href="http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10" style="background-color: transparent; color: #900000; font-family: Verdana, Arial, sans-serif; font-style: normal; font-weight: normal; text-decoration: none;" target="_blank">http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1285962838/10#10</a><br />
<br />
Then to flash the firmware, do this:<br />
sudo dfu-programmer at90usb82 erase<br />
sudo dfu-programmer at90usb82 flash --debug 1 Arduino-usbserial-uno.hex<br />
sudo dfu-programmer at90usb82 reset<br />
<br />
Finally unplug the USB plug, wait a few seconds, plug back in.</div>
</td></tr>
</tbody></table>
<br />
<br />
Also, a good page on the <a href="http://arduino.cc/en/Hacking/DFUProgramming8U2">arduino site</a><br />
<br />
Note, that to put reset the Mega 8u2 chip, the reset pins are a bit different: I found instructions <a href="http://www.wayneandlayne.com/blog/2011/02/16/fixing-linux-firmware-issues-on-arduino-mega-2560/">for resetting the mega chip</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.wayneandlayne.com/wordpress/wp-content/uploads/2011/02/arduino_mega_2560_dfu_jumpers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.wayneandlayne.com/wordpress/wp-content/uploads/2011/02/arduino_mega_2560_dfu_jumpers.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
My mega's accepted the sketches without problem, and both replicatorG and RepRap host connect well at 115200 baud.<br />
<br />
Might help if you're getting unreliable high-speed connections to the arduino and you've got a recent board (/dev/ttyACM0)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-75128810801742457502011-11-01T16:28:00.000+00:002011-11-01T16:28:58.188+00:00Arduino Mega board is toast!I have managed to blow my Arduino mega board.<br />
It stopped uploading, and there was a 'hot' smell - never a good sign. Unplugging everything, the arduino chip was very hot indeed.<br />
<br />
After waiting for it to cool, I found that plugging it into the USB socket - nothing else - started to make the mega chip warm up, and it got too hot to touch. :-(<br />
Another circuit board is sacrificed to the gods of knowledge and experience.<br />
<br />
Tracing things back, I wondered how it happened. My setup hadn't changed, I'd just been running heater and extruder tests - the steppers weren't plugged in, so it was unlikely to be them.<br />
<br />
Looking at the my heater board again, I realised that the output pin of the arduino was connected straight to ground through the MOSFET gate - no current limiting resistor. A bit of digging uncovered a possible problem - the design I'd used as a base (RepRap Gen 2/3) had the same circuit, but used current limiting Mosfets. I'd upgraded mine to larger ones, but checking the data sheet, the Mosfet gate acts a bit like a capacitor. Charging the gate could be done slow(with a resistor) or fast. A current of 2A was given as an example to charge the gate in 14nS.<br />
<br />
Oh. The arduino pins can only handle 100mA or so. Still, it only does that when it's switched on or off, so long as I wasn't switching it on and off thousands of times a second - like using PWM.... Damn.<br />
<br />
Looking back, it's surprising that it coped as well as it did - it should have gone up in smoke straightaway! I'm impressed it worked at all - it coped for several hours of testing. Each time it switched, the arduino pin was directly connected to ground - drawing a big current for a few mS, then when it switched off, the mosfet gate would discharge itself straight through the arduinio pin to ground.<br />
<br />
I have now redesigned my heater / Mosfet board to incorporate a 560ohm current limiting resistor (between the arduino pin and the mosfet gate), and also a pull-down 100k resistor between the Mosfet gate and ground. It should limit the current to 90mA, and make sure the gates switch off if the board isn't connected.<br />
<br />
I've also ordered a couple of new Ardunios - hopefully I'll be more careful with these...<br />
:-)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com2tag:blogger.com,1999:blog-262293474703579452.post-73323710245375193092011-10-30T20:58:00.000+00:002011-10-30T22:02:39.426+00:00Recycling!I've been using the laser toner method for a while to make my PCBs. It seems to work well for me, I print out the PCBs using a Samsung ML2010 laser printer, tape them to a cleaned copper board, then run them through a laminator twice. The heat fuses the toner to the board, and as long as your paper isn't too sticky, you can peel it straight off and etch.<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296096378/" title="Sticker backing PCB by renoirdana, on Flickr"><img alt="Sticker backing PCB" height="180" src="http://farm7.static.flickr.com/6045/6296096378_3f86608fb6_m.jpg" width="240" /></a><br />
I've been using this successfully, even for larger boards like my Arduino mega shield. The key variable seems to be the paper. I have the best results by cutting a square of sticker backing paper, using the stickers to stick it to the centre of a normal sheet of paper, then printing the PCB from Eagle. This works well, but I do need a sheet of stickers (like the A4 laser printing stickers) every time.<br />
<br />
Other people have reported success with tracing paper, or magazine paper. I grabbed some tracing paper (two types, Goldline 63gsm and Goldline 112gsm) paper and gave it a try. It printed well, but didn't stick too well - you need to soak the paper to remove it, and most of my toner came off with the paper. Maybe my laminator wasn't hot enough :-(.<br />
<br />
So, I'd run out of labels, my tracing paper experiments weren't working well - and then my eye fell on a discarded Farnell packing bill on my table. The Farnell packing receipts are printed on some sort of fan-fold sticker paper so that the address labels can be removed and stuck to the box. The whole bill is basically one big sticker! I cut a square, stuck it to a sheet of paper using the sticker I'd just removed, and ran it through the printer.<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296096880/" title="Farnell label by renoirdana, on Flickr"><img alt="Farnell label" height="495" src="http://farm7.static.flickr.com/6224/6296096880_ff2d706c1c.jpg" width="500" /></a><br />
<br />
Perfect result, first time! The toner transferred very well to the board:<br />
<a href="http://www.flickr.com/photos/56285539@N06/6295569047/" title="Farnell stickers work well by renoirdana, on Flickr"><img alt="Farnell stickers work well" height="226" src="http://farm7.static.flickr.com/6106/6295569047_58fcab5476_m.jpg" width="240" /></a><br />
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296103974/" title="Etched farnell board - success by renoirdana, on Flickr"><img alt="Etched farnell board - success" height="141" src="http://farm7.static.flickr.com/6032/6296103974_03fd9e2683_m.jpg" width="240" /></a><br />
<br />
The finished board (a SMT version of the tiny thermistor circuit) looks great and from the detail (on the lettering) this would work with much finer traces!<br />
<br />
I'll start saving up all my old shipping receipts instead of buying printer labels now....<br />
<br />
<br />
<br />
P.S. top tip - after the stickers have been 'laminated' and cooled, if you gently rub the back of the sticker with your thumb, a small 'bubble' forms that gently lifts the sticker backing away from the toner bit by bit. I get almost 100% adhesion with this technique.<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com1tag:blogger.com,1999:blog-262293474703579452.post-48518582814254913182011-10-30T20:26:00.000+00:002011-10-30T20:28:13.571+00:00Crimptastic!After a few days, my new crimping <strike>toys</strike> tools arrived in the post.
Here's a joint from a couple of years BC (Before Crimptool) :
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6295558295/" title="First attempt at crimp connectors by renoirdana, on Flickr"><img alt="First attempt at crimp connectors" height="277" src="http://farm7.static.flickr.com/6112/6295558295_9ab7954953.jpg" width="500" /></a>
<br />
However, that was before the RVFM HT-225D, which I got from <a href="http://www.rapidonline.com/Tools-Equipment/Ratchet-Action-Crimp-Tool-Ht225d-85-0262">Rapid</a>.
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296090400/" title="RVFM HT-225D by renoirdana, on Flickr"><img alt="RVFM HT-225D" height="156" src="http://farm7.static.flickr.com/6046/6296090400_07869e128d_m.jpg" width="240" /></a>
<br />
It has the correct 'B' shaped jaws to make proper crimp joints:
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6295560151/" title="B-shaped jaws by renoirdana, on Flickr"><img alt="B-shaped jaws" height="194" src="http://farm7.static.flickr.com/6110/6295560151_a4bde8b087_m.jpg" width="240" /></a>
<br />
To use this effectively, you need a set of crimp pins, and you need to carefully strip and trim the wire, like this :
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296092330/" title="Trimmed wire by renoirdana, on Flickr"><img alt="Trimmed wire" height="282" src="http://farm7.static.flickr.com/6237/6296092330_f2e10b5109.jpg" width="500" /></a>
<br />
Then you need to insert a crimp pin into the appropriate jaws - note you don't always need to remove them from the strip, I found them easier to handle by bending a single pin away from the strip.
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296091526/" title="crimp socket inserted by renoirdana, on Flickr"><img alt="crimp socket inserted" height="111" src="http://farm7.static.flickr.com/6223/6296091526_99437008bc_m.jpg" width="240" /></a>
<br />
Then, insert the wire : I marked a small dot with a sharpie to mark the appropriate depth:
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6295562297/" title="Ready to crimp by renoirdana, on Flickr"><img alt="Ready to crimp" height="195" src="http://farm7.static.flickr.com/6048/6295562297_53213210e8_m.jpg" width="240" /></a>
<br />
Pull the handles together until they're all crimped - rinse and repeat:
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296094742/" title="four pins in two minutes by renoirdana, on Flickr"><img alt="four pins in two minutes" height="311" src="http://farm7.static.flickr.com/6033/6296094742_12db2af804.jpg" width="500" /></a>
<br />
So much easier and more efficient than the manual pliers/solder method. They're not 'perfect' yet - according to the spec I've got a little too much insulation in there - but it's a damn sight neater than my first attempts a couple of years ago :-).
<br />
Completed Plug :
<br />
<a href="http://www.flickr.com/photos/56285539@N06/6296095760/" title="Completed plug by renoirdana, on Flickr"><img alt="Completed plug" height="239" src="http://farm7.static.flickr.com/6055/6296095760_778f9ef6a5.jpg" width="500" /></a>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com4tag:blogger.com,1999:blog-262293474703579452.post-79576978331412686582011-10-21T17:52:00.000+01:002011-10-21T17:53:40.241+01:00Greetings fellow b3tans!Amazing! 3-d printing is now officially mainstream - it's appeared in <a href="http://b3ta.com/newsletter/issue501/">B3TA</a>!Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-58458143197998446062011-10-20T21:31:00.001+01:002011-10-20T21:37:53.621+01:00Crimpin' - my styleI must admit I wasn't that familiar with <a href="http://en.wikipedia.org/wiki/Crimp_connection">crimping</a> before starting my RepRap. For the uninitiated, it's the method of attaching the wires to the various plugs to connect to the PCBs. The main connections are the 4-pin stepper motors and the 3-pin headers for the endstops. I also use a 3-pin connector for the thermistor sensor.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.societyofrobots.com/images/sbs_photoresistor_molex.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="190" src="http://www.societyofrobots.com/images/sbs_photoresistor_molex.JPG" width="320" /></a></div>
<a href="http://www.allpinouts.org/images/6/67/Connector_mb_fan_3pin.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://www.allpinouts.org/images/6/67/Connector_mb_fan_3pin.jpg" /></a>
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
The connector consists of some metal pins with tabs, and the tabs are crimped onto the wires. The metal pins then fit into a plastic housing that makes the plug.<br />
My early attempts involved squishing a bare wire between the tabs with some pliers. However, some of my crimped joints were not well attached: sometimes the pins would deform, so they didn't fit into the housing properly, and often the wire would either fall out, or I'd end up breaking some of the wire strands. I usually ended up squishing and then trying to solder them, often also melting the insulation.<br />
This caused a recent problem where my extruder stepper was not moving - I <a href="http://renoirsrants.blogspot.com/2011/09/one-step-forward.html">thought it was due to the firmware</a>, but it was actually a failing stepper connection - two of the wires had bad, intermittent connections.<br />
<br />
Using my obsession to understand every part of my 'rap, I did some digging. Mr Nophead had an excellent video which solved my immediate problems :-<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="http://www.youtube.com/embed/KEm2PuHBt4Y" width="420"></iframe><br />
<br />
Looking a little deeper, there are a multitude of articles on the subject : <a href="http://www.pinrepair.com/connect/">this article on pinball repair</a> has an excellent overview and good advice. The *key* point seems to be using the proper tools. Using the proper <a href="http://www.rapidonline.com/Tools-Equipment/Ratchet-Action-Crimp-Tool-HT225D-85-0262">crimping tool</a> makes a <a href="http://www.molex.com/tnotes/crimp.html">good crimp</a> joint easy. The Society of Robots <a href="http://www.societyofrobots.com/electronics_wire_connector.shtml">tutorial</a> also has a clear guide, and even our own <a href="http://forums.reprap.org/read.php?13,96314,96314">RepRap forum had a useful discussion</a>.<br />
<br />
Time to bite the bullet and get a proper tool. Although you can spend over a hundred pounds on a crimping tool, every manufacturer has a slightly different tool, several different sizes and styles, and most are expensive.<br />
After a bit more research, I found that the 'cheap' (<£15) <a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=150353">muti-size crimping tools</a> are only useful for automobile connectors (anything with three coloured dots on it - they are too large), 'bootlace ferrules' crimpers are also not suitable (wrong shape), and the telephone/RJ45 crimping tools are special. The 'molex' and other open crimping terminal styles we use are a lot smaller, typically described using wire gauges, e.g. 22-24AWG of 24-28AWG. However, I did find one reasonably cheap well-reviewed tool - the Multicomp <a href="http://www.farnell.com/cad/301355.pdf">HT225D</a> - available from <a href="http://www.rapidonline.com/Tools-Equipment/Ratchet-Action-Crimp-Tool-HT225D-85-0262">Rapid</a>(£20) and <a href="http://uk.farnell.com/multicomp/ht-225d/ratchet-crimping-tool/dp/1624832?Ntt=HT225D">Farnell</a>(£37). The correct tools have a small 'B' shaped indent, which bends the tabs back on themselves to tightly hold the wire. A properly crimped joint does not need soldering and is more than strong enough for RepRapping connections.<br />
<br />
Also worth noting is the huge variety of crimping pins, housings, gold/brass/tin platings, and huge number of options when you go looking to buy connectors. Note that certain pins fit certain housings - you need to make sure the pins, housings, sockets all come from the same range - there are a bewildering array - just see the <a href="http://www.molex.com/molex/products/group?key=wire_to_board_connectors&channel=products">molex</a> site! The two Molex ranges I found most applicable to RepRapping were the <a href="http://www.molex.com/molex/products/family?key=kk&channel=products&chanName=family&pageTitle=Introduction&parentKey=wire_to_board_connectors">KK</a> range (cheap and cheerful, already used for the stepper and range sensors) and the <a href="http://www.molex.com/molex/products/family?key=cgrid__sl_products&channel=products&chanName=family&pageTitle=Introduction&parentKey=wire_to_board_connectors#overview">SL</a> range. Both are available in the 2.54mm (0.1 inch) pitch that the RepRap boards use for the endstops and I use for my steppers.<br />
I personally prefer the SL crimping terminals (<a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1756733">16-02-0088</a>)- they look like they will connect better (holding from both sides) rather that the <a href="http://uk.farnell.com/molex/08-50-0032/crimp-pin-22-30awg-pk100/dp/9773789">KK terminals</a> that push one side against the housing. I also picked up some <a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1462791">3-way</a> and <a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1462821">4-way</a> housings for the terminals. According to the <a href="http://www.molex.com/molex/products/datasheet.jsp?part=active/0050579403_CRIMP_HOUSINGS.xml&channel=Products">Molex site</a>, they will use the <a href="http://www.molex.com/molex/products/listview.jsp?query=70058&path=cHome%23%23-1%23%23-1%7E%7EncCRIMPTERMINALS%23%230%23%23j&offset=0&autoNav=1&sType=s&filter=&fs=&channel=Products">70058</a> range of pins, which include the <a href="http://www.molex.com/molex/products/datasheet.jsp?part=active/0016020088_CRIMP_TERMINALS.xml&channel=Products">16-02-0088</a>.<br />
I went for the gold-plated terminals, as the header pins on my boards are already gold-plated, and the gold-plated terminals have a lifetime of 100 cycles (plugging and unplugging) - the tin ones only have 25 cycles. I also wanted some reasonably chunky wire for the steppers, so I got some <a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=150431">4-way 24AWG ribbon cable</a>, which determined the size of the crimp terminals (22-24AWG) I needed.<br />
I also picked up some male pins (<a href="http://uk.farnell.com/jsp/search/productdetail.jsp?SKU=1756730">16-02-0081</a>) - so I can make some wire-to-wire connectors. Most of my wires have awful twisted and soldered bodges where they're connected together - covered with heatshrink when I remembered to put it on before soldering, and insulation tape when I didn't. I'd like to replace my bodges with proper pluggable connections, particularly with the stepper wires.<br />
<br />
I hope this will fix my dodgy connection issues, and also will tidy my 'rap wiring up at the same time.<br />
:-)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com2tag:blogger.com,1999:blog-262293474703579452.post-39245764467293341622011-09-04T16:42:00.000+01:002011-10-20T21:43:17.556+01:00One step forward...I spent the last couple of days fiddling with software and firmware.<br />
I started with the 'official' RepRap host and firmware, but since I've got a complete mix of electronics (single Arduino mega, self-designed mega shield, separate extruder boards (X,Y, Z, E) and custom heater board), I needed to update all of the pin assignments and configuration files.<br />
<br />
I made reasonable progress, managed to get the XYZ axes working fine, but it refused to turn the extruder stepper. I tried various things, ( including heating extruder to 200C), but it refused to move. <br />
I then tried to get the latest host / firmware from git, but while doing this managed to mess up my java3d configuration slightly. Now, all I get is :<br />
<br />
<pre>DEBUG: Attempting to initialize Arduino/Sanguino [0.174s/87ms]
Exception in thread "J3D-Renderer-1" java.lang.UnsatisfiedLinkError: javax.media.j3d.NativeScreenInfo.openDisplay()J
at javax.media.j3d.NativeScreenInfo.openDisplay(Native Method)
at javax.media.j3d.NativeScreenInfo.getStaticDisplay(NativeScreenInfo.java:48)
at javax.media.j3d.NativeScreenInfo.isGLX13(NativeScreenInfo.java:36)
at javax.media.j3d.NativeConfigTemplate3D.getBestConfiguration(NativeConfigTemplate3D.java:67) </pre>
<pre>... </pre>
I've tracked this down to a missing j3d*.so file. I have tried a number of things (setting LD_LIBRARY_PATH, java.library.path, putting the .so files in the current directory, etc) but there is also a problem with 64/32bit libraries. Downloading latest versions of the libraries, etc also didn't help :-(. I think it is more subtle than just missing the .so file in the path.<br />
<br />
I switched to use replicatorG - nice program - but the 5d firmware still didn't move the extruder (after fixing some baud rate problems).<br />
<br />
Finally, I updated to the 'Sprinter' firmware - slightly easier to configure - and this, in conjunction with the ultimaker version of replicatorG, allows me to move the extruder stepper!! woohoo!<br />
<br />
Now, to test the heater/extruder, configure the parameters, connect up the axes...<br />
<br />
<b><span class="Apple-style-span" style="color: blue;">Edit:</span></b><br />
<span class="Apple-style-span" style="color: blue;">Oops. Nothing to do with firmware problems, just some dodgy intermittent connections on my stepper. Unplugging the mega during the firmware 'upgrade' wobbled the wire, making it work the next time...</span><br />
<span class="Apple-style-span" style="color: blue;">Nothing to do with the firmware versions!!!</span>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-22363704145341719922011-08-31T20:12:00.002+01:002011-08-31T20:12:12.186+01:00Back on the horse!After a long delay, I have finally got back to rewrapping!
<br />
I dusted off the darwin, tightened the bolts, and rubbed the rust spots off the rails (stored in the garage - not good!).
A couple of the acrylic joints had cracked, and a couple of the cross-bracing rods had come off. I tided and reaffixed as best I can. I spent yesterday and today re-plugging the gen2 stepper driver boards into my gen3/Arduino mega setup, and then fixing the firmware for my custom setup.
<br />
While uploading the firmware, I was getting a lot of errors -
<br />
<pre>Binary sketch size: 28098 bytes (of a 126976 byte maximum)
avrdude: stk500_paged_load(): (a) protocol error, expect=0x14, resp=0xa7
avrdude: stk500_cmd(): programmer is out of sync
</pre>
<br />
Although the upload still *seemed* to work, it was a little worrying. Occasionally, it would work OK, but almost every upload would report this error.
<br />
Checking the internet, one post mentioned interrupts causing problems. I know that interrupts are used in the firmware for stepper timing and extruder heater control.
I found that if I uploaded the 'blink' sketch first (nice, short quick sketch) and then the firmware, it uploads successfully without any errors!
<br />
YMMV :-)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-44674883274726219482011-07-31T11:38:00.000+01:002011-07-31T11:38:57.035+01:00Calibre, and Kindle, and books on the Calibre WebserverSad but true - I spent my friday night fiddling with PCs.<br />
<br />
I've got a Kindle - an excellent reader - and a bunch of ebooks I've downloaded from <a href="http://www.gutenberg.org/">Gutenberg</a>. I already use <a href="http://calibre-ebook.com/">Calibre</a> to load the ebooks onto the kindle, but I liked the idea of accessing the library over my wifi network. Calibre has a built-in web server, on port 8080. (Also delete the calibre web username/password, and convert all your books to MOBI or LIT formats).<br />
<br />
The Kindle browser is flawed though - it only connects over port 80 (HTTP) or 443 (S) :-(<br />
<br />
I already had apache running on my main server (Giles) on port 80, so time for some tweaking:<br />
<br />
I set up an alias for my server (in /etc/hosts/) :<br />
<pre>127.0.0.1 localhost
127.0.1.1 giles
<span style="color:red">192.168.0.11 calibre.giles.local</span>
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
</pre>192.168.0.11 is giles's static IP address. calibre.giles.local is my new virtual server name. <br />
<br />
Added an apache conf file to use a virtual host (/etc/apache2/conf.d/calibre.conf):<br />
<pre><VirtualHost *:*>
ProxyPreserveHost On
ProxyPass / http://192.168.0.11:8080/
ProxyPassReverse / http://192.168.0.11:8080/
ServerName calibre.giles.local
</VirtualHost>
</pre>This tells apache to route any traffic from calibre.giles.local to the calibre webserver (port 8080).<br />
<br />
Now, using a browser on giles, I can see the calibre server by visiting http://calibre.giles.local <br />
<br />
This works great, but only when I'm on giles - from any other machine, I would have to edit the 'hosts' file to add the DNS entry - and on the kindle that's not possible.<br />
<br />
OK, more tweaking:<br />
<br />
Installed dnsmasq (sudo apt-get install dnsmasq). This is a local DNS caching server - it caches the DNS records so it speeds up your browsing (fractionally) but more importantly, it also serves the local /etc/hosts file - so my new calibre.giles.local adress will be served to anyone using this DNS server.<br />
Changed the /etc/resolv.conf:<br />
<pre>nameserver 192.168.0.11
</pre>i.e. - get giles to use it's own dns server.<br />
<br />
Changed /etc/dnsmasq.conf to add :<br />
<pre>resolv-file=/etc/resolv2.conf
</pre>This avoids dnsmasq using itself to look up entries!<br />
<br />
<pre>server=194.168.4.100
server=194.168.8.100
</pre>These are the two Virgin Media cable DNS servers (my ISP): I could also have used any <a href="http://theos.in/windows-xp/free-fast-public-dns-server-list/">public DNS servers</a>.<br />
<br />
Restarting dnsmasq (service dnsmasq restart) to pick up the changes, I can test this :<br />
<pre>dig google.com </pre>gives me 9ms the first time, the 0ms the second - the cache is working.<br />
<pre>dig calibre.giles.local </pre>shows 0ms - it is in the hosts file.<br />
<br />
So, to make my entire network pick up the new DNS server: Login to my Apple Airport router, and go to IP (Internet) settings. Change the DNS list to have 192.168.0.11 first in the list.<br />
<br />
All my other machines on the network use the airport router as the DHCP server and gateway/DNS proxy.<br />
<br />
So:<br />
Kindle connects to the wireless network - gets the DHCP address and a DNS server of 192.168.0.1 (the AirPort router).<br />
Go to menu - experimental - web browser and type in "calibre.giles.local".<br />
Kindle asks the airport router DNS for the address.<br />
Airport router DNS asks Giles DNSmasq for the address. Found in local hosts file.<br />
<br />
Kindle now displays the calibre web interface. You can search for books/authors, download and read any book (click on the MOBI file) :-)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-3540530435888467592011-07-20T21:54:00.000+01:002011-07-20T21:54:54.780+01:00VNC problems in ubuntu?I've been using VNC to remote access my two Ubuntu Natty Narwhal machines, and having terrible trouble - the VNC screen not updating, to controlling properly, etc.<br />
<br />
It looks like the 3D and special effects play havoc with the VNC server - not displaying properly, etc.<br />
<br />
Try using <pre>gdmsetup</pre>- the 'login settings' manager under the administration menu, or go to the top-right switch icon and and click System Settings, then 'Login Screen'.<br />
<br />
Enter your admin password, then select 'Ubuntu Classic (No effects)' as the default session. Reboot or logout/login.<br />
<br />
This changes ubuntu to use the standard gnome menubar and disables the 3d and animation effects.<br />
I found that VNC worked much better with the classic menu and desktop effects off :-).Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com1tag:blogger.com,1999:blog-262293474703579452.post-61248091221696431532011-07-04T20:17:00.000+01:002011-07-04T20:17:56.185+01:00Multiple webcams on ZoneMinder (Part 4)Some success!<br />
<br />
The USB 3.0 route turns out to be a slight misunderstanding. The key factors involved are :<br />
1) Bandwidth required by each camera, and :<br />
2) Number of USB 2.0 controllers. <br />
<br />
It appears that USB 1.1, 2.0, and 3.0 subsystems are basically independent of each other. <br />
A USB 2.0 motherboard has a usb 1.1 and a usb 2.0 controller. The *total* bandwidth for the usb2.0 controller is 480M, and any 2.0 devices share this bandwidth (whichever USB port or hub they are on). USB 1.1 devices similarly share a single 1.1 controller (often labelled a legacy controller).<br />
<br />
The usb 3 hub I have seems to have a usb 3.0 hub + a usb 2.0 hub (+ probably a usb 1.1 hub).<br />
Connecting two 2.0 devices (direct, of through the hub) shares the bandwidth of a single 2.0 controller on the USB 3.0 card.<br />
<br />
Using the uvcvideo bandwidth quirks mode, I can connect two YUUV webcams to a single usb 2.0 controller - any more fail. This is true whether the port is a standard USB 2.0 hub in a 2.0 motherboard socket, or a USB 3.0 hub in a USB card.<br />
<br />
To connect more cameras, add more 2.0 controllers. These can be in a USB 3.0 PCI-e card, or a plain USB 2.0 PCI card, or anything else. Apparently the USB 2.0 controllers included on the usb 3 chips are slightly better as they don't have any other demands on them and only have to deal with the usb 2 traffic.<br />
<br />
<br />
NOTE : the PS3eye camera has a special 'bayer' mode that uses bandwidth more efficiently - if the driver can handle it. This allows windows users to plug in multiple PS3 eye cameras (see <a href="http://codelaboratories.com/forums/viewthread/450/">Code Laboratories</a> or <a href="http://www.ipisoft.com/">iPisoft</a>) I haven't found a similar linux driver yet.<br />
<br />
So far, I have been able to display 6 cameras simultaneously -<br />
4 x Cheap USB 2.0 webcams - 640x480 at 25fps - YUYV, PAL <br />
2 x PS3 eye cams - 640x480 at 12fps - YUYV, PAL - some breakup.<br />
<br />
I have two cams on a USB 3.0 hub, to a USB 3.0 PCI-E card.<br />
Two cams direct to motherboard controller ports.<br />
Two ps3 eyes on USB 2.0 hub to a USB2.0 PCI controller card.<br />
<br />
lsusb -t<br />
<pre>davidr@hgwells:~$ lsusb -t
6-1:1.0: No such file or directory
/: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 3: Dev 3, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 2: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/2p, 12M
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/3p, 12M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/8p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/5p, 480M
|__ Port 4: Dev 2, If 0, Class=vend., Driver=ov534, 480M
|__ Port 4: Dev 2, If 1, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 4: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 3, If 0, Class=vend., Driver=ov534, 480M
|__ Port 5: Dev 3, If 1, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 3, If 2, Class=audio, Driver=snd-usb-audio, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 1: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 5, If 0, Class=hub, Driver=hub/4p, 12M
|__ Port 1: Dev 6, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 1: Dev 6, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 4: Dev 7, If 0, Class=hub, Driver=hub/4p, 12M
|__ Port 2: Dev 8, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 2: Dev 8, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 3: Dev 9, If 0, Class=HID, Driver=wacom, 1.5M
davidr@hgwells:~$
</pre>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com2tag:blogger.com,1999:blog-262293474703579452.post-90862327422742591142011-07-03T16:23:00.004+01:002011-07-04T19:17:54.361+01:00Multiple webcams on ZoneMinder (part 3)<a href="http://www.zoneminder.com/wiki/index.php/Ubuntu_10.04_Server_64-bit_(with_ffmpeg,_etc.)">Alternative page</a> for ubuntu AMD64 / zoneminder:<br />
<br />
Webcam log:<br />
<br />
Install zoneminder<br />
<pre>davidr@hgwells:~$ sudo apt-get install zoneminder
</pre>Follow <a href="http://www.zoneminder.com/wiki/index.php/Documentation">normal instructions for a zoneminder .deb</a> installation:<br />
<pre>sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
sudo apache2ctl restart
sudo chmod 4755 /usr/bin/zmfix
zmfix -a
sudo chown www-data.www-data /usr/share/zoneminder/temp
sudo vi /etc/sysctl.conf
</pre>Add the following lines at the end of the file:<br />
<pre>kernel.shmall = 250000000
kernel.shmmax = 250000000
</pre>Pick up shared memory changes:<br />
<pre>sudo sysctl -p
kernel.shmall = 250000000
kernel.shmmax = 250000000
</pre>I have 4 identical cameras plugged in. The order of video0-video3 may change if other cams, etc are added. <br />
<pre>davidr@hgwells:~$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
</pre>Rather than use the video0 devices, there is a more fixed set of device links in /dev/v4l/by-id and /dev/v4l/by-path.<br />
NOTE: there is a bug in zoneminder that the device name is limited. For some of my cameras, the by-id or by-path was truncated, and zoneminder couldn't find it. <br />
<pre>davidr@hgwells:~$ ls /dev/video*
/dev/video0 /dev/video1 /dev/video2 /dev/video3
davidr@hgwells:~$ ls /dev/v4l/by-path/
pci-0000:03:00.0-usb-0:2.1:1.0-video-index0
pci-0000:03:00.0-usb-0:2.2:1.0-video-index0
pci-0000:03:00.0-usb-0:2.3:1.0-video-index0
pci-0000:03:00.0-usb-0:2.4:1.0-video-index0
</pre>So, to get around this problem, define my own paths:<br />
<pre>davidr@hgwells:~$ sudo mkdir /cam
davidr@hgwells:~$ sudo chmod 777 /cam
davidr@hgwells:~$ cd /cam
davidr@hgwells:/cam$ ln -s /dev/v4l/by-path/pci-0000\:03\:00.0-usb-0\:2.1\:1.0-video-index0 c1
davidr@hgwells:/cam$ ln -s /dev/v4l/by-path/pci-0000\:03\:00.0-usb-0\:2.2\:1.0-video-index0 c2
davidr@hgwells:/cam$ ln -s /dev/v4l/by-path/pci-0000\:03\:00.0-usb-0\:2.3\:1.0-video-index0 c3
davidr@hgwells:/cam$ ln -s /dev/v4l/by-path/pci-0000\:03\:00.0-usb-0\:2.4\:1.0-video-index0 c4
davidr@hgwells:/cam$ ls
c1 c2 c3 c4
davidr@hgwells:/cam$
</pre>Use a terminal window with <pre>tail -f /tmp/zmdc.log </pre>to check for any zoneminder problems.<br />
Open firefox to http:\\hgwells.local\zm to get to the web interface.<br />
<br />
Add a new monitor. On the source tab, set the source to:<br />
device : /cam/c1<br />
PAL<br />
YUUV<br />
width:320<br />
height:240<br />
<br />
I was able to get two cameras up so far: 3 and 4 fail with dmesg :<br />
[ 159.696321] usb 3-2.4: Not enough bandwidth for altsetting 3<br />
[ 172.716216] usb 3-2.3: Not enough bandwidth for new device state.<br />
<br />
<a href="http://www.linux-usb.org/usb2.html">Good info</a> on USB in linux<br />
<br />
* <a href="http://codelaboratories.com/forums/viewthread/450/">claim for 5 PS3 eye cameras with one USB3.0 card</a> *Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-62597746143438434532011-07-03T11:58:00.002+01:002011-07-03T15:55:08.996+01:00Multiple webcams on ZoneMinder<b><span class="Apple-style-span" style="font-size: large;">Part 2:</span></b><br />
Continuing the webcam saga (see <a href="http://renoirsrants.blogspot.com/2011/06/monitoring-3d-printer.html">part 1</a>)<br />
<br />
<span class="Apple-style-span" style="font-size: large;"><b>USB 1.1 and USB 2.0</b></span><br />
I was incorrect in my earlier post. Modern motherboards usually have two usb controllers: a USB 2.0 controller and a 'legacy' USB 1.1 controller. Devices on each port are automatically switched to the right controller, so the problem of one usb 1 device slowing down the whole usb system does not occur.<br />
<br />
I suspect something similar is implemented on most usb hubs - my USB 2.0 hub seems to cope fine with a mix of 1.1 and 2.0 devices.<br />
<br />
Due to the wording of the USB 2.0 spec, some USB 1.1 webcams are labelled as USB 2.0 - despite the fact that they only connect at 12Mb (usb1.1). This is the case for two of my older webcams - a Targus and a Creative Live! cam both only connect at 1.1 speeds.<br />
<br />
<b><span class="Apple-style-span" style="font-size: large;">USB 3.0</span></b><br />
Although Linux does have support for usb3 cards there is a bug in the current Ubuntu 'Natty Narwhal' kernel that means that USB 3.0 hubs may only be recognised as USB 2.0 hubs - you can see them using <br />
<pre>lusub -t</pre>connecting at 480M (usb 2.0).<br />
<a href="https://bugs.launchpad.net/ubuntu/+source/linux/+bug/783097">This post</a> suggested that a later version of the kernel would recognise the usb 3.0 hub properly. <br />
I re-installed with the latest alpha version 11.10 (Oneiric Ocelot) which includes a later kernel. It now recognises the hub as 5000M.<br />
<br />
<b><span class="Apple-style-span" style="font-size: large;">Webcam USB Bandwidth</span></b><br />
Some research on webcam USB bandwidth turned up a useful trick. Webcams request a whole load of bandwidth, usually more than they need. <br />
Symptoms were fairly easy to spot: Opening one camera with <br />
<pre>xawtv -v 1 -c /dev/video0</pre>and at the same time opening /dev/video1 in another terminal led to <br />
<pre>libv4l2: error turning on stream: No space left on device
VIDIOC_STREAMON - Unable to start capture: No space left on device
fps is set to 1/30
libv4l2: error turning on stream: Device or resource busy
VIDIOC_STREAMON - Unable to start capture: Device or resource busy
</pre><br />
<a href="http://comments.gmane.org/gmane.linux.drivers.uvc.devel/5510">This post</a> and <a href="https://www.linuxquestions.org/questions/linux-kernel-70/facecam-312-kernel-10-10-conflagration-help-853934/">this post</a> gave me some useful pointers. The uvcvideo kernel module can be set to ignore the requested bandwidth, and to calculate the right bandwidth. Try:<br />
<pre>sudo rmmod uvcvideo
sudo modprobe uvcvideo quirks=128
</pre>This will be reset every reboot. If this works, create the following file: <br />
<pre>sudo vi /etc/modprobe.d/uvcvideo.conf </pre>containing the line:<br />
<pre>options uvcvideo quirks=128</pre><br />
<b><span class="Apple-style-span" style="font-size: large;">My Hardware setup</span></b><br />
My new hardware - in case anyone wants to follow in my footsteps:<br />
<a href="http://www.amazon.co.uk/gp/product/B003MVJG8Q/ref=oss_product">Transcend PCI Express Interface USB 3.0 Dual Expansion Card<br />
</a><br />
<a href="http://www.amazon.co.uk/gp/product/B004M180H8/ref=oss_product">Tsunami SSU34 100mm USB 3.0 4 Ports Hub<br />
</a><br />
<a href="http://www.amazon.co.uk/gp/product/B002MUPQ46/ref=oss_product">Webcam with Microphone for XP Vista PC Laptop MSN Skype</a><br />
<br />
Output from lsusb :<br />
<pre>davidr@hgwells:~$ lsusb -t</pre><pre>/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
|__ Port 2: Dev 2, If 0, Class=hub, Driver=hub/4p, 5000M
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
|__ Port 2: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 1: Dev 3, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 1: Dev 3, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 2: Dev 4, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 3: Dev 5, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 3: Dev 5, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 6, If 0, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
|__ Port 4: Dev 6, If 1, Class='bInterfaceClass 0x0e not yet handled', Driver=uvcvideo, 480M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/8p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 1: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M
|__ Port 4: Dev 3, If 0, Class=hub, Driver=hub/4p, 12M
|__ Port 1: Dev 4, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 1: Dev 4, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 4: Dev 5, If 0, Class=hub, Driver=hub/4p, 12M
|__ Port 2: Dev 6, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 2: Dev 6, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 3: Dev 7, If 0, Class=HID, Driver=wacom, 1.5M
</pre><pre></pre><pre>davidr@hgwells:~$ lsusb</pre><pre>Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 003 Device 002: ID 2109:3431
Bus 004 Device 002: ID 2109:0810
Bus 001 Device 003: ID 05e3:0604 Genesys Logic, Inc. USB 1.1 Hub
Bus 003 Device 003: ID 090c:937b Feiya Technology Corp. Silicon Motion Camera
Bus 003 Device 004: ID 090c:937b Feiya Technology Corp. Silicon Motion Camera
Bus 003 Device 005: ID 090c:937b Feiya Technology Corp. Silicon Motion Camera
Bus 003 Device 006: ID 090c:937b Feiya Technology Corp. Silicon Motion Camera
Bus 001 Device 004: ID 046d:c049 Logitech, Inc. G5 Laser Mouse
Bus 001 Device 005: ID 05f3:0081 PI Engineering, Inc. Kinesis Integrated Hub
Bus 001 Device 006: ID 05f3:0007 PI Engineering, Inc. Kinesis Advantage PRO MPC/USB Keyboard
Bus 001 Device 007: ID 056a:0013 Wacom Co., Ltd Graphire 3 4x5
</pre><div><br />
</div>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com7tag:blogger.com,1999:blog-262293474703579452.post-78718468145998121932011-06-26T15:35:00.002+01:002011-07-03T11:07:15.647+01:00Monitoring a 3D PrinterI have tidied my new workshop and I am starting to play with 3d-printing again.<br />
<br />
One of the ideas I've been thinking about for some time is remote monitoring of the printing process. Many prints can take several hours to complete and I don't have enough confidence to leave it alone for that long. Jumping up and down to check it every few minutes would quickly get annoying, so I wanted a way to control and monitor it from a web interface.<br />
<br />
My plan is to use a few webcams to provide pictures of the bed, print, and overall mechanics, and an emergency stop button. Looking around, the best solution for webcam streaming on Linux (Ubuntu) is <a href="http://www.zoneminder.com/wiki/index.php/Main_Documentation">ZoneMinder</a> - it can cope with streaming multiple webcams. I used apt-get to install it and there are some extra configuration required in the <a href="http://www.zoneminder.com/wiki/index.php/Main_Documentation">documentation</a>. I can also point a couple of cameras out the window as a home-made CCTV/security solution.<br />
<br />
After a bit of fiddling, I was able to get streaming webcam from my PS3 eye webcam: but the other three webcams refused to stream. This was a little odd, since I could happily get pictures using cheese, kamino, xawtv, and they all seemed to connect properly as /dev/video devices and appeared as v4l2 (VideoForLinux) devices. All drivers seemed OK and installed.<br />
<pre>xawtv -c /dev/video0 -v 1 <span class="Apple-style-span" style="font-family: Times; white-space: normal;">can provide useful information, such as the supported colour palettes.</span></pre><br />
Checking the zoneminder logs ( appearing in /tmp):<br />
<pre>tail -f /tmp/zmdc.log
24/06/11 22:14:03.046389 zmdc[2171].INF [Starting pending process, zmc -d /dev/video3]
24/06/11 22:14:03.047635 zmdc[2171].INF ['zmc -d /dev/video0' starting at 11/06/24 22:14:03, pid = 2869]
24/06/11 22:14:06.224901 zmdc[2171].ERR ['zmc -d /dev/video0' exited abnormally, exit status 11]
</pre>And I was also getting messages in <br />
<pre>dmesg</pre><pre>[ 1929.678445] gspca: bandwidth not wide enough - trying again
[ 2529.745525] ohci_hcd 0000:00:0b.0: leak ed ffff880036a43730 (#85) state 2
</pre>Checking the USB devices looked OK:<br />
<pre>davidr@hgwells:~$ lsusb
Bus 002 Device 008: ID 046d:c049 Logitech, Inc. G5 Laser Mouse
Bus 002 Device 007: ID 056a:0013 Wacom Co., Ltd Graphire 3 4x5
Bus 002 Device 006: ID 05f3:0007 PI Engineering, Inc. Kinesis Advantage PRO MPC/USB Keyboard
Bus 002 Device 005: ID 0ac8:307b Z-Star Microelectronics Corp. USB 1.1 Webcam
Bus 002 Device 004: ID 05f3:0081 PI Engineering, Inc. Kinesis Integrated Hub
Bus 002 Device 003: ID 093a:2600 Pixart Imaging, Inc. Typhoon Easycam USB 330K (newer)/Typhoon Easycam USB 2.0 VGA 1.3M/Sansun SN-508
Bus 002 Device 002: ID 041e:4053 Creative Technology, Ltd Live! Cam Video IM
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 006: ID 05ac:1293 Apple, Inc. iPod Touch 2.Gen
Bus 001 Device 002: ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
davidr@hgwells:~$
</pre><br />
but checking the USB tree shows that the 3 problem devices are only connecting in USB 1.1 (12M), and the one working device at USB 2.0 (480M).<br />
<pre>davidr@hgwells:~$ lsusb -t
1-5:3.0: No such file or directory
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci_hcd/8p, 12M
|__ Port 2: Dev 2, If 0, Class=vend., Driver=zc3xx, 12M
|__ Port 4: Dev 4, If 0, Class=hub, Driver=hub/4p, 12M
|__ Port 2: Dev 6, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 2: Dev 6, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 3: Dev 7, If 0, Class=HID, Driver=wacom, 1.5M
|__ Port 4: Dev 8, If 0, Class=HID, Driver=usbhid, 12M
|__ Port 4: Dev 8, If 1, Class=HID, Driver=usbhid, 12M
|__ Port 6: Dev 5, If 0, Class=vend., Driver=zc3xx, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
|__ Port 1: Dev 2, If 0, Class=vend., Driver=ov534, 480M
|__ Port 1: Dev 2, If 1, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 1: Dev 2, If 2, Class=audio, Driver=snd-usb-audio, 480M
|__ Port 5: Dev 6, If 0, Class=still, Driver=, 480M
|__ Port 5: Dev 6, If 1, Class=vend., Driver=usbfs, 480M
</pre>Damn. It looks like I forgot the rule about mixing usb 1 and 2 devices - <a href="http://www.physicsforums.com/showthread.php?t=212253">Plugging usb 1 and 2 forces everything on that hub to run as USB 1</a> (UPDATE : false).<br />
<br />
Mixing around the ports, I still had problems. As a better solution, I've ordered a PCI-E USB 3.0 card and usb3 hub. Each port should happily accept a 2.0 webcam, and should have plenty of bandwidth.<br />
I usually use ebuyer.com, but in this case amazon.co.uk were a lot cheaper! (Usb3.0 card for £10 - hub for £20)<br />
<br />
UPDATE:<br />
It seems that the other cameras I had were, in fact, usb1.1 - (even though a couple were labelled as USB 2). A later experiment with four identical USB 2.0 cameras had similar results.<br />
The main problem does seem to be the USB bandwidth. Apparently cameras 'reserve' USB bandwidth (sometimes more than they use) and the usb 2.0 480Mb limit quickly gets used up. I'll post again after testing with USB3.0 (5Gb)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-64487298967485185832011-03-31T20:32:00.006+01:002011-03-31T21:57:41.930+01:00Andtec Builders ReviewRecently, we have had our house extended. Since there are lots of people complaining about builders on the internet, I thought I would redress the balance by posting a review of a positive experience we've had with <a href="http://www.andtecbuilderstrowbridge.co.uk/">Andtec Builders</a>.<br />
<div style="float: right;"><a href="http://www.flickr.com/photos/56285539@N06/5550427902/" title="After"><img alt="After" height="180" src="http://farm6.static.flickr.com/5227/5550427902_be1208e7a1.jpg" /></a><br />
After</div><div style="float: left;"><a href="http://www.flickr.com/photos/56285539@N06/5202013187/" title="Before"><img alt="Before" height="180" src="http://farm6.static.flickr.com/5123/5202013187_2d2b1d132f.jpg" /></a><br />
Before</div><br />
Andy (Owner of Andtec Builders) was recommended to us by a family friend. We had some plans drawn up by an architect, and we got three builders including Andtec to quote.<br />
<br />
Andtec quoted the lowest price: but they had several jobs on, and we'd have to wait several months until they were free. One builder was slightly more expensive (within a few percent) but available now: and one quote was significantly over (40% higher).<br />
<br />
We decided to wait for Andy based on the recommendations.<br />
<br />
A few weeks before, we met with Andy and talked through the project. Andy had experience with the local area and identified a problem with the foundations specified : our house was built on 'made up' ground and they'd have to dig down a long way to lay the foundations on the 'real' ground level (as specified in the building regs). The original architect was unable to make the changes to the plans but Andy confirmed the problem and found an architect that was able to design a floating raft foundation - a reinforced concrete slab that would do the job.<br />
<br />
The original estimate for the work was about 3.5 months : Starting mid november, should have the external walls complete by Xmas, roof on by end Jan, internals done by end Feb. <br />
<a href="http://www.flickr.com/photos/56285539@N06/5231138633/" title="IMG_0038 by renoirdana, on Flickr"><img alt="IMG_0038" src="http://farm6.static.flickr.com/5162/5231138633_2a31317eb2.jpg" width="200" /></a><br />
The existing garage disappeared very quickly and work on the foundations went well - it was a bit muddy during the excavations but was a lot better once the concrete slab had been poured. Although the work was in front of the door, Andy made sure we had safe access to the house and worked around our many comings and goings :-).<br />
<br />
Work on the external walls was delayed a little by extreme weather - during December, we had a very cold snap (-15C at times) and they went to some lengths to keep working - gas heaters, insulation shelters and tarpaulins to try and warm the bricks so that the mortar could set properly without freezing. I know it was cold - we handed out hot tea, and when we collected the mugs a couple of hours later, one was half-full of solid ice! They valiantly worked through the freezing weather - Andy, Jez (the brickie) and George (labourer) only stopped working the week before christmas, where the snow was a few inches deep and couldn't be melted by the salt. In total, several days were lost due to the weather.<br />
<br />
January went well - the floors and roofing went on and a few days into February the roofing was done and the scaffolding was coming down. Once the structure was secure, the work knocking through into the main house began. <br />
<br />
We had three walls removed, with steel beams inserted, and an extra door through into the hall. This is the most intrusive part of the build : for the first couple of months, most of the work was outside, and didn't really impact on our daily life. My wife is not well, and is at home all the time. Andy went to some effort to try and organise and schedule jobs to minimise the impact on the household, including leaving the kitchen working as long as possible. Luckily, the new kitchen was in part of the new extension, so Andy was able to put in the new kitchen before ripping out the old one, making the transition much easier than it otherwise might be.<br />
This part of the build also went well - although it's inevitably a bit dusty :-).<br />
<a href="http://www.flickr.com/photos/56285539@N06/5438820546/" title="Finishing"><img alt="Finishing" src="http://farm6.static.flickr.com/5132/5438820546_6db5dfd38e.jpg" width="200" /></a><br />
Plastering and finishing was good - we asked Andy to do several extra jobs, which he quoted for and added to the scheduled monthly bills. We asked him to plaster the old kitchen ceiling and replace several internal doors, and to lay a wooden floor throughout the downstairs. <br />
<br />
All in all, we were very pleased with <a href="http://www.andtecbuilderstrowbridge.co.uk/">Andtec builders</a> and their work. Andy and all the staff were polite and professional at all times, and Andy was always happy to discuss and answer questions about any part of the work. <br />
<br />
The estimates and scheduling of the job was excellent : Despite the slippage due to the weather, the work was completed according to the early schedule. The additions to the work (installing a new kitchen, flooring, and extra internal work) all went according to estimates.<br />
<br />
Professionalism was excellent : They turned up at 8am every day and worked until 4pm. When they were unable to work (due to the snow) we were informed by phone. Because there was a lot of work, if a particular job could not be done (for example due to tiles not arriving) they continued with other work and rescheduled around problems. Someone else commented that they were very tidy - although it was a building site (literally) it was organised well. <br />
All building regulations, inspections, and certificates (gas, electric work, etc) were all present and correct. Estimates, contracts, changes to the contracts and scheduled bills were printed and very clear and supplied on time, so we always knew what was asked for and how much it would cost. <br />
<br />
Andy was polite and helpful at all times. Several times specific decisions had to be made (Front door style, positions of sockets, tiles) and Andy gave us options and time to allow considered decisions before ordering or installing.<br />
<a href="http://www.flickr.com/photos/56285539@N06/5550425534/" title="Badger (badge) by renoirdana, on Flickr"><img alt="Badger (badge)" height="300" src="http://farm6.static.flickr.com/5016/5550425534_854234887a.jpg" /></a><br />
Along with the building crew, Andy often brought 'Badge' with him. Badger is a lovely border collie, well trained, smart and very friendly. Badge was quite at ease with all the heavy machinery, and would only come in when invited, and didn't jump up or bother anyone - very well behaved. He even made friends with one of our cats (the other two kept well away!).<br />
<br />
I would happily recommend <a href="http://www.andtecbuilderstrowbridge.co.uk/">AndTec builders</a> to anyone in or around Bath, Frome and Trowbridge. <br />
<a href="http://www.flickr.com/photos/56285539@N06/5549842359/" title="IMG_0164 by renoirdana, on Flickr"><img alt="IMG_0164" height="250" src="http://farm6.static.flickr.com/5267/5549842359_fb497cc93a.jpg" /></a><br />
Thanks, Andy.<br />
<br />
Lots of photos of the build in-progress on my <a href="http://www.flickr.com/photos/56285539@N06/">flickr feed</a>.Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com1tag:blogger.com,1999:blog-262293474703579452.post-8790898078013609012010-07-13T12:37:00.003+01:002010-07-13T13:11:34.047+01:00Sentries report bearings to the south west. Thousands of them.Well, 53 to be exact.<br /><a href="http://picasaweb.google.co.uk/lh/photo/YYMYMEKkoQjxGxTcQcbkyQ?feat=embedwebsite"><img src="http://lh5.ggpht.com/_0cXEbOQKR88/TDomRhxotQI/AAAAAAAABl0/RVJb6HYqzkY/s400/IMG_1715.JPG" /></a><br />I've been looking around to collect Mendel parts for a little while, intending to reproduce from my BfB Darwin. I've picked up <a href="http://renoirsrants.blogspot.com/2010/02/new-toys-baby-steppers.html">four nema17 steppers</a>, built myself some stepper drivers and electronics, and I'm now looking for the mechanical parts. On the parts lists are a significant number of bearings, which can be quite pricey.<br />Luckily, I found <a href="http://reprapkit.com/shop/">RepRapKit.com</a>, based in the UK, and ordered myself <a href="http://reprapkit.com/shop/bearings/">a complete set of bearings for less than 20 quid</a> - much cheaper than everywhere else I've looked so far. Excellent service - I had a couple of emails with him and he seems like a really nice friendly chap. Parts were ordered and dispatched quickly, and delivered next day. I got 51 smaller bearings and two M8/skate bearings (including enough to make a geared/stepper extruder), they all look good and turn well. The store is selling ABS and bearings so far, and is looking to expand into extruders and other RepRap bits.<br /><br />I also got round to blowing the dust off my BfB Darwin. It needs several bolts tightening and some general maintenance, and I disassembled the three stepper motors, covered them in plastic bags and tape, and ground out some proper flattened shafts using my dremmel. Note : metal filings from filing or grinding are not good inside a precision engineered bearing, and since they're highly magnetic, it does tend to attract the dust.<br /><a href="http://picasaweb.google.co.uk/lh/photo/lxvp26vPbnH6pyNbwT7uoQ?feat=embedwebsite"><img src="http://lh5.ggpht.com/_0cXEbOQKR88/TDomQqdsoOI/AAAAAAAABl0/jLYbjq-vA4U/s288/IMG_1710.JPG" /></a><br />Make sure the bearings and motors are nicely covered (with blutack/tape/plastic bags) otherwise the dirty bearings will seize or grind away very quickly.<br /><br />I'd had a go at filing the shafts back during the initial assembly, but didn't have the right tools - I did have a few problems with the axes slipping at times. Once it's all back together, it should be fine this time.Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-25969254732192114272010-06-25T21:48:00.005+01:002010-06-25T22:01:10.142+01:00Heater board completeI've completed and soldered my heater board.<br /><a href="http://picasaweb.google.co.uk/lh/photo/hZIrPop67iDSRECSsR78zw?feat=embedwebsite"><img src="http://lh5.ggpht.com/_0cXEbOQKR88/TCT4eqxKHkI/AAAAAAAABjo/loc9J14oynw/s400/IMG_1695.JPG" /></a><br />There are 8 PWM outputs from my reprap shield which are boosted using 54A MOSFETS. These should happily drive my extruder heater, heated bed, fans, extra motors, whatever.<br /><br />I've posted the files to <a href="http://www.thingiverse.com/thing:3423">thingiverse</a>. I've also added my <a href="http://www.thingiverse.com/thing:3424">single-sided stepper driver files</a> to a thing as well.<br /><br />I now have four working stepper drivers, one mega shield, and a completed heater PWM board. Only a couple of thermistor sensors, and I'll have a complete set of electronics for a mendel :-)Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-55428021790495052902010-06-19T22:30:00.006+01:002010-06-20T15:54:54.465+01:00RepRap host software on MacJust a quick note to anyone trying to get the RepRap host software to run on a new Mac (Mac OSX 10.6.3).<div> I downloaded the <a href="http://reprap.org/wiki/DriverSoftware#Installation">software from the wiki</a> and unzipped it.</div><div><br /></div><div>To get it to work, I had some problems trying to make it accept a classpath. Eventually I did the following:<br /><br /></div><div>Make a directory ~/Library/Java/Extensions</div><div>Copy any files with *.jar and *.jnilib extensions to that directory.</div><div><br />The librxtxSerial.jnilib file supplied in the reprap software didn't seem to work. I found one at<br /><a href="http://iharder.sourceforge.net/current/java/">http://iharder.sourceforge.net/current/java/</a> and I replaced it with this newer one.<br /><br /></div><div>Go to the reprap host software directory in a terminal window (you need to be in a directory with the rr-logo-green-url.png file in it). </div><div><br />type 'java org.reprap.Main'</div><br />This brings up the main reprap windows on my mac, and I was able to load and slice a .stl file. YMMV :-)<div><br /></div><div>UPDATE:<br />As pointed out by Tony, this is not the most elegant solution. It doesn't help that I was looking at the 'mac-experimental' version from last year, rather that re-building from source :-( oops.</div><div><br /></div><div>I also found out why I was having problems with the classpath :<br /><pre>java org.reprap.Main -cp $CLASSPATH </pre> is NOT equivalent to <pre>java -cp $CLASSPATH org.reprap.Main </pre></div><br />Doh!<br />This is usually true of any other command-line program, but any arguments AFTER the classname are passed to the class Main() method. I blame late-night programming :-)<br />Ignore all the java/extension rubbish, just use instructions from <br /><a href="http://tonybuser.com/reprap-host-on-osx-snow-leopard">http://tonybuser.com/reprap-host-on-osx-snow-leopard</a><br /><br />A command line that also works is <br /><pre> java -cp "*" org.reprap.Main </pre>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com1tag:blogger.com,1999:blog-262293474703579452.post-38098484524552134802010-06-09T06:45:00.002+01:002010-06-09T06:48:50.769+01:00First Thingiverse submission!Rather than try and re-create thingiverse <a href="http://sites.google.com/site/renoirsrants/reprap/arduinomegashield?pli=1">manually</a> , I posted my RepRap Mega Shield to Thingiverse.<div><br /></div><div><a href="http://www.thingiverse.com/thing:3308">Renoir's RepRap Arduino Mega shield</a></div><div><br /></div><div>Enjoy!</div>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com0tag:blogger.com,1999:blog-262293474703579452.post-1094919660311304172010-06-07T20:36:00.002+01:002010-06-07T20:53:05.733+01:00Apple service and board PDFsA few weeks ago, I bought myself an Apple MacBook Pro :-) and I've been really happy with it. However, a few days ago, I had terrible trouble trying to load the Ardunio software - segment faults and Kernel Panics (serious errors!) all over the place. <div>After a bit of debugging, I tracked it down to a single command - 'java -d32' which would cause a segmentation fault or bus error straightaway. A bit more investigation led me to the Apple Hardware test - which reported a 4MEM error, indicating a bad stick of ram :-(.</div><div><br /></div><div>I dropped into the apple store today, expecting a delay as they had to send my nice new MacBook off, or at least swop out the ram. The apple 'Genius' was very helpful, and confirmed the bad ram - or possibly a logic board - and went off to speak to the manager. </div><div>However, 10/10 for service - despite the fact that I'd been using it for 6 weeks, they arranged a swop for a brand new machine right away! They even copied everything over to the new machine! I picked up my 'new' pc, opened the lid and everything was exactly as it had been on the old machine. I am now a very happy Mac customer :-) - that is an excellent example of customer service. </div><div><br /></div><div>Also produced some PDF files for the Mega shield - available with the eagle files on the<br /><a href="http://sites.google.com/site/renoirsrants/reprap/arduinomegashield?pli=1">Eagle files for Renoir's RepRap Mega Shield</a> Page.</div>Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com1tag:blogger.com,1999:blog-262293474703579452.post-19030010108762382872010-06-04T18:42:00.004+01:002010-06-04T19:16:24.657+01:00Renoir's Mega Shield builtI've been soldering and building and I've finished my mega shield!<br /><table style="width:auto;"><tbody><tr><td><a href="http://picasaweb.google.co.uk/lh/photo/FRwcJ1tlPpnR779ZdMbGGg?feat=embedwebsite"><img src="http://lh3.ggpht.com/_0cXEbOQKR88/TAk6ttdTHoI/AAAAAAAABho/xM4SU4ZaixY/s400/IMG_1689.JPG" /></a></td></tr><tr><td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="http://picasaweb.google.co.uk/renoirdana/RenoirsMegaShield?feat=embedwebsite">RenoirsMegaShield</a></td></tr></tbody></table>The build went well. I 'tinned' the copper pads (using some plumbing flux and a tiny bit of solder), which made the soldering a bit easier. Using a tip (from ladyada?) I converted some standard header pins to some through-pins by pushing them through using the flat on a pair of pliers, three or 4 at a time:<br /><table style="width:auto;"><tbody><tr><td><a href="http://picasaweb.google.co.uk/lh/photo/tWbMY1UNYoqYtLNwFjrrRg?feat=embedwebsite"><img src="http://lh3.ggpht.com/_0cXEbOQKR88/TAk6rK4RBqI/AAAAAAAABho/KxHRAQcYRGg/s288/IMG_1679.JPG" /></a></td></tr><tr><td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="http://picasaweb.google.co.uk/renoirdana/RenoirsMegaShield?feat=embedwebsite">RenoirsMegaShield</a></td></tr></tbody></table>Once I'd fixed the pins, I could put them through into the arduino and check the alignment - OK. I left the pins partially pushed in to maintain the position, and soldered a single pin from each row:<br /><table style="width:auto;"><tbody><tr><td><a href="http://picasaweb.google.co.uk/lh/photo/feribc4a5j_BQX34qogaag?feat=embedwebsite"><img src="http://lh3.ggpht.com/_0cXEbOQKR88/TAk6sBWh5II/AAAAAAAABho/uLt1SGrpYz0/s400/IMG_1682.JPG" /></a></td></tr><tr><td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="http://picasaweb.google.co.uk/renoirdana/RenoirsMegaShield?feat=embedwebsite">RenoirsMegaShield</a></td></tr></tbody></table>This held them in place when I removed the mega and soldered the rest.<br /><table style="width:auto;"><tbody><tr><td><a href="http://picasaweb.google.co.uk/lh/photo/hQoE81M8X0Nqja_7Ow3Qaw?feat=embedwebsite"><img src="http://lh4.ggpht.com/_0cXEbOQKR88/TAk6tNyKvsI/AAAAAAAABho/k8hHIRLTxJM/s288/IMG_1687.JPG" /></a></td></tr><tr><td style="font-family:arial,sans-serif; font-size:11px; text-align:right">From <a href="http://picasaweb.google.co.uk/renoirdana/RenoirsMegaShield?feat=embedwebsite">RenoirsMegaShield</a></td></tr></tbody></table>I've now got 10-pin IDC headers for X,Y,Z, and extruder (A) - and a spare (B) using header pins as I ran out of sockets. There's a space for the 20-pin interface connector from the generation 4 designs, and a whole set of +5v/GND/analog in headers for temperature probes, extra sensors, etc. Along the top is an I2C 4-pin header, and similar +5v/GND/digital I/O headers for servos, TX/RX comms, and some PWM pins. 8 PWM outputs are taken to a separate 10-pin IDC header that is intended to go to a MOSFET power driver board to drive the heater and heated bed (coming soon).Anonymoushttp://www.blogger.com/profile/10046079586632841601noreply@blogger.com3