Cheap recognition & pick & place & reflow oven solder machine for tiny PCBs - Page 1
Forum section: electronics / projects

author: eneuro
author_rank: Super Contributor
timestamp: July 04, 2015, 01:46:58 pm
content: People from LinuxCNC project helped me sometime ago therehttp://www.linuxcnc.org/index.php/english/forum/49-basic-configuration/27846-cartesian-g-code-to-cylindrical-machine-coordinate?limitstart=0to develop and implement my customEneurokinsmodule for LinuxCNC RTOS, to be able drive a few axis CNC machine in setup like in this concept shown belowUsing LinuxCNC and my kinetics module I'm able control this machine eg. with G-code and use for other tasks too, like creating parabolic mirror molds, which was th emain purpose do to something like this but in bigger scale.Now it is time to bring this concept to reality and I'd like my cheap recognition & pick & place & reflow oven solder machine for tiny PCBs to be controled by LinuxCNC RTOS.Recognition of SMD elements taken from reels or tubes and placed on (probably blue electricity conductive grounded) plate on top of steel machine bottom main plate mounted using strong neodynium magnets.While for reflow soldering we don't need place elements at great precision, since melt solder paste surface tension will place them in exact pads position, I hope I will be able using my LinuxCNC kinetics module and visual camera system position at least SO8 and 1206 packages at right placesI have no pressure to finish this project quickly-I know it will be many interesting challenges there, but it would be nice to automate at low cost assembly of decent size but most of the time small PCBs at homeMy additional requirement I'd like to achieve in final solution is to be able reflow PCBs in nitrogen atmosphere to avoid oxidation and to be able be probably more flexible with thermal profile, since dangereous oxidation could be limited in comparision to reflowing in modified DIY toaster ovens which do not support nitrogen atmosphere during reflowing PCBsWhat do you think, using nitrogen atmosphere in reflowing oven has any advantage over normal reflowing in air?Anyway I started design my small reflow oven with nitrogen atmosphere support in mind, so I do want test such reflowing process, so looking now for thermal profiles maybe more optimized for nitrogen atmosphere soldering, if such exists ?We'll see what happends, see you later

author: eneuro
author_rank: Super Contributor
timestamp: July 04, 2015, 02:44:39 pm
content: Apropos nitrogen atmosphere reflow soldering interesting comparision from thereEffects of Solder Reflow Conditions on the Assembly of Electronics Packaging and Printed Circuit BoardsbelowIt will be interesting and maybe worth to try to use nitrogen in reflow oven, since N2 reflowed joints looks much better in those tests above

author: eneuro
author_rank: Super Contributor
timestamp: July 05, 2015, 11:41:10 am
content: Investigating now decent quality USB microscopes t range below $100.Just wonder if this USB microscope (probably mentioned in one of @EEVblog videobloghttps://www.eevblog.com/forum/blog/eevblog-566-cheap-usb-microscope-reviews/)~$80 Vividia 2.0MP Handheld USB Digital Endoscope/Microscope with 12.0mm Tube Diameterhttp://microscopes.mobi/product/vividia-2-0mp-handheld-usb-digital-endoscopemicroscope-with-12-0mm-tube-diameter/is much better then this much cheaper one?~$30Supereyes B005 0.1X ~ 200X Handheld USB Digital Microscope Endoscope Loupe Otoscope Magnifier with 11mm Tube Diameter Tripod LEDhttp://microscopes.mobi/product/supereyes-b005-0-1x-200x-handheld-usb-digital-microscope-endoscope-loupe-otoscope-magnifier-with-11mm-tube-diameter-tripod-led/I'm looking for something like this quite compact microscope, in aluminum tube I guess.Second is 2 times cheaper that this priced at ~$80, and since I will provide my own CNC machine mechanism to control this video camera, maybe this chaper could be not so bad-of course forget about bloody, useless tripod they gave for freeI'd rather wanted they kept this tripod and gave me beter shipping price, since weight will be 2-3 times lower without this tripod-whatever it isMaybe someone uses this second USB microscope?It has manual control of magnification, but by adding small stepper motor it should be easy automate this too and keep everything quite compact

author: eneuro
author_rank: Super Contributor
timestamp: July 06, 2015, 11:39:45 am
content: Bottom machine plate circular ruler ready to prototype testTried to divide 360 DEG angles to 10th parts, but it might require testing in local CNC manufacturer to get proper resolution, to be able sense those marked angles.For the moment printing on paper at 600 dpi to make quick mechanical prototypeIt is parametrized in C++ CAE software and I can output in DXF CAD to laser cut and grave this bottom round plate where amchine will roll around PCBs put inside

author: eneuro
author_rank: Super Contributor
timestamp: July 07, 2015, 09:26:57 pm
content: This is my third hand in this project - new EdozaurIt is not moving for the moment, but maybe, when will be made of aluminium or stainless steel (aluminium is cheaper in local manufacturer) ?I think, it could be nice to have two USB microscopes and make image analysis of two independent images in realtime: one of spare parts lying somewhere in the working table corner, and another one to pick & place parts on PCB.Preprocessed spare parts and its overall positions send to main visual camera to quicly access recognized and labeled parts for PCB assemblyAnyway, I expected more from professional A3 laser print service, but I've got from my 600dpi PDF encoder main angle ruler printed on A3 normal paper instead of one pixel width lines... blobs.. dotsHopefully, three pixel line looks better, but it is also affected by this printer postprocessing or something else? Maybe they changed printer resolution to safe printer ink?Even simple cross mark made of 1 pixel 5mm length lines was affected by this strange printerWhat caused change one pixel in thickness 600dpi lines to change into dots in this bloody printer?However, it looks like it shouldn't be a problem if PCB ruler were made, since I have 5mm arc divided into 10 sub degrees each one degree of 360 total, so copper golden ruler marks should be easy done if needed.Time to ask CNC laser guys from local factory how do they see laser grooving in aluminium or stainless steel plate something like this....but it shouldn't be any problem for today laser technologyPrecision cutting and grooving with the Laser MicroJet

author: eneuro
author_rank: Super Contributor
timestamp: July 08, 2015, 02:32:51 pm
content: OK, it is time to make a few bipolar steppers drivers with optional optical encoders for this motor from old DVD-RWto have decent vertical axis (Z) control in my CNC machine similar to this one made by someone elseEven USB camera works, but of course I need a little bigger working area, so horizontal and angular CNC movement will be controlled by bipolar stepper motors but by means of additional mechanicsMicro CNC Machine In Use As USB Camera Part 3 Of 3

author: Berni
author_rank: Super Contributor
timestamp: July 16, 2015, 10:05:28 am
content: Interesting project. I been thinking of getting a entry level CNC and possibly moding it to be a PnP at a later time.I have that USB microscope and its pretty good. You get 640x480 video from it and gets you up to 30fps if there is a lot of light. The viewing angle on it is pretty narrow so no need to get super up close with it. For the price its a great PnP camera.

author: eneuro
author_rank: Super Contributor
timestamp: July 22, 2015, 02:40:56 pm
content: Quote from: Berni on July 16, 2015, 10:05:28 amThanks for quick review of this USB microscope-it looks like at this resolution 640x480 OpenCV image processing should be really fast on average CPUs (NVidia CUDA can be used for more demanding tasks).Hopefully, I've busted this crappy paper office where those doggy dot line printputs from 600dpi were madeI've tested the same in other project on my home old ink printer and no problem what so ever, so probably bloody printers are set to save ink etc-didn;t check its output resolution, but another 1mm spaced rulers looked also so awfull, so forget about their printing services-I've found better one.Now I'm working on tricky pickup tool which will be tested in manual mode with those anique magnifying lens for the momentHowever, those lenses provides decent magnification, so no problem what so ever to manipulate by hands SMD 0805 parts, eg. tiny LEDs, etc.It doesn't mater which camera will be used in final design, I think the most tricky module is pickup tool, since I want visual camera be on top in Z axis, so I believe in that my concept will work-talking with laser guys in local factory if they were able cut prototype for me to hold three medical needlesYep, I want use not one needle but three for some reason... with 3 phase 3 separate silicon pumps powered by simple DC/BLDC motor.

author: eneuro
author_rank: Super Contributor
timestamp: July 22, 2015, 09:20:12 pm
content: While waiting for USB microscope, tried to use old web cam at 640x480 which I've put on top of those atique lenses I've bought today for... $1and... yeah I've got what I've expected since this web cam creates really bad video, but I was supprised that I've got decent magnification of small 74HC595 in S016 package even in really bad light conditions (no custom leds around those lens yet, just room ambient light).Anyway it will be interesting to compare with USB microscope images, since this is 640x480 resolution too, but of course very bad quality image, but still might be helpfull.If I had to choose between using this setup to assembly board just looking on big HD screen or do it... without any magnification or by looking into those lens itself using only one my eye, of course I'd prefere place parts using this setup.That is interesting-even such "zero" cost setup (if we replace this bloody red reflective foam with blue one) could allow do it in a much more comfortable way.I think I will make very simple mechanics to hold those temporary lens and pickup tool below just to see if I were able assembly any prototype PCB in manual mode but not holding pickup tool in my hands, which is "pain in the ass" and require a lot of effort to place part at right angle-stop breathing in final moment when we trying place our small part in right placeCan't wait to automate this

author: Berni
author_rank: Super Contributor
timestamp: July 22, 2015, 10:09:36 pm
content: Yeah the cheep microscope gives a lot better image quality than that. I would show you a few example images but i am away from home on holiday right now.

author: eneuro
author_rank: Super Contributor
timestamp: July 23, 2015, 12:18:19 pm
content: Yep, just used this crappy web cam with those lens to estimate comfortable magnification and it looks like 10x should be fine since I can scale screen image to have exactly 10x magnification, so something which has 1mm on screen I know that has 0.1mm on PCB, so... I can use this setup to measure small SMD parts when creating custom footprintsAnyway, visited today local steel stores and found quite interesting things which will be used in main frame design-among others square steel pipes and bearings with screws to hold them while rolling over steel frameScrews quite nice fits into those bearings, so I can now design in my CAE software main frame of this CNC machine itself and output a few STL elements to visualize this concept in Blender animation to see how it works before I will make final cuts to weld main frame.

author: ez24
author_rank: Super Contributor
timestamp: July 23, 2015, 06:33:13 pm
content: +1 from a fan. Not much response however, just one. Keep the progress coming.

author: eneuro
author_rank: Super Contributor
timestamp: July 24, 2015, 07:56:46 pm
content: Quote from: ez24 on July 23, 2015, 06:33:13 pmI have a few projects in parallel now, but some subsystems modules will be shared between them, so slowly but many things at onceToday I was working on light buttons with cool button backlight and ambient light sensing on .. one MPU pinI've in mind this interesting automatic micro laser soldering with help of micro solder wire feeder-trying to figure out if maybe I could use spot welder instead of laser to do something similar?Anyway, probably thermal imaging camera is a must to be able control solder pads temperature, because of probably not possible calculate exact amount of spot pulse energy to achieve given temperatures?However, since we know solder wire diameter and assume that lets say a few mm of solder wire is heated, than maybe we could try estimate amount of electric energy needed to heat up pad and part pin to recomended temperature?That is interesting and for sure I will make experiments with spot welding (at least parts heatsinks) as soon as I have CNC machine main frame ready and visual camera live monitoring working...

author: eneuro
author_rank: Super Contributor
timestamp: July 31, 2015, 08:22:24 pm
content: Local CNC company made decent job and bearing perfectly fits into aluminium 8mm plate with a very little help of hammer and wood to place bearing insideHowever, they struggle with laser gravering in aluminium, so probably final product will be made in different manufacturer, but for prototype it is fine.Bearing to alumminium connection successfully tested.Aluminium plate is quite cheap-need to calculate thermal expansion, but there is not needed huge precision in PCB parts placement, so anodized aluminium should be fine and nice finish available after anodizing

author: C
author_rank: Super Contributor
timestamp: August 01, 2015, 01:46:55 am
content: encoder main angle rulerIn place of accurate lines, how about using how a optical mouse measures movement.C

author: eneuro
author_rank: Super Contributor
timestamp: August 01, 2015, 01:06:43 pm
content: Quote from: C on August 01, 2015, 01:46:55 amIt is quite good idea, but I'd like to have also lets say milimeter lines like those shown on template above, which can be easy transfered using thermal tranfer method on aluminium plate to be able to have absolute position (angle) and optical measurements in space between milimeter lines.I've one optical mouse with almoust dead connection to PC USB (broken cable) so I need to make its teardown and probably replace with brand new, so it might be interesting to try reuse its optics to make those more precise measurements, however probably it will not be possible keep absolute angle position using only mouse optical measurements, so I thought that having something like absolute position determined by additional milimeter scale encoder easy to build will help know at least absolute angle position and then use substeps to achieve higher resolution

author: C
author_rank: Super Contributor
timestamp: August 01, 2015, 02:40:44 pm
content: An optical mouse reads changes in surface. So use some sandpaper to scratch the surface and fill the scratches with paint or ink. From what I have read a optical mouse has few pixels. A video camera could be better.Then treat your good hardware like it is very bad and use it with your video camera to self calibrate, build a calibrated scale using motion. When in motion your mass prevents fast changes. If you started close to center while marking the table with a ark that has a pattern, you could then use the video reading that pattern to make a more accurate pattern outside of first. Each added arc could be better. You might even add some mass to make this better during cal.I think LinuxCNC has a way to calibrate out poor lead screws, might help here also.Second idea, when laser cutting the disk you might want to not make it a circle. You could have the laser cut a pattern on the rim. A saw tooth for example but sine wave could be more accurate for the laser to create. You could add amplitude modulation of sine wave to add information. Then use optics to read.C

author: eneuro
author_rank: Super Contributor
timestamp: August 03, 2015, 09:21:14 pm
content: Quote from: C on August 01, 2015, 02:40:44 pmSometimes it is cheaper not to laser cut toroidal dish, but use CNC machines and they can make it cheap from aluminium plates, etc, so that is why I decided rather than creating complicated edge shape (other than simply circle) just add ruler to aluminium dish at the edge.While dish can be made using different methods, ruller manufacturing depending on project can be made even using thermal transfer and anodizing, which in the case of aluminium could be advantage since we can create mechanicaly strong painted layer leaving masked encoder ruler pure aluminium, etc:Type III: Hard Coat Anodizinghttp://www.anodizeusa.com/anodizing-systems-hard-coat.phpUsing my strong magnifier glassand old by usefull Pentax camera which focus (F3.2) at macro mode nicelly fits into those magnifing opticsI've made today futher investigation, why printed at 600dpi ruler (1mm spacing at the edge) has such bad printed resolution, while created PDF looks very welland it looks like this is because of OpenCV line thickness one point black (1) line on top of 3 point wide grey (127) creates those black dots effects on thermal transfer paperHowever, 3 point in thicknes edge circle line is fine, so probably simply by changing ruler lines thickness to 3points @ 600 dpi and total black color should resolve an issue and allow make easy thermal transfer to aluminium plate since I'd like those aluminium plates additionally anodized, so it might workI have a project now where 1mm precision encoder will be fine, so it can be reused in many other projects too if this trick with aluminium anodized 1mm encoder worksBTW: Even without USB microscope it looks like thos setup with magnifing glass and Pentax digital camera should be fine to manually pick & place SMD parts, since its optics fits quite well and I'm able see 1mm spaced line with a lot of dots between them at decent resolution

author: tonyarkles
author_rank: Regular Contributor
timestamp: August 03, 2015, 10:45:31 pm
content: Instead of tick marks, you may be able to use a gray-coded line and gain absolute positioning as well!

author: eneuro
author_rank: Super Contributor
timestamp: August 04, 2015, 12:49:05 am
content: Quote from: tonyarkles on August 03, 2015, 10:45:31 pmYep, probably I will add gray-coded black/white fileds too, but only up to 4 steps to be able decode rotation direction change:Code:./gray_test: Number of steps: 4./gray_test: step: 000 binary: 00 gray: 00./gray_test: step: 001 binary: 01 gray: 01./gray_test: step: 002 binary: 10 gray: 11./gray_test: step: 003 binary: 11 gray: 10..../gray_test: step: 000 binary: 00 gray: 00./gray_test: step: 001 binary: 01 gray: 01./gray_test: step: 002 binary: 10 gray: 11./gray_test: step: 003 binary: 11 gray: 10...since absolute encoding of lets say 360 degs/300 mm require 9 bits, but in the case of 4 steps only 2 bits (sensors), so it can help keep absolute position accurate and still use only 2 sensorsI mean, I do need have mm/degs tick marks too in some projects, but 4 steps gray-code will allow detect direction changes and small missed position reads within those 4 steps

author: eneuro
author_rank: Super Contributor
timestamp: August 04, 2015, 07:49:03 am
content: I've changed ruller thickness and now it should be nicely printed on thermal transfer paper:Now need to add somewhere here 4 steps gray-code. Probably 1mm squares to identify ruller mm lines easy and still to be able have cleary visible mm spaced tick for visual eye inspection and measurements

author: eneuro
author_rank: Super Contributor
timestamp: August 04, 2015, 09:27:28 am
content: Ok, I've implemented 2-bit gray-code (4 steps) to mm ruller and now it should be easy determine rotation direction change and count degs/lengthI can easy output those images at higher DPI, but I will test 600 dpi first for one of the projects where 100mm in diameter ruler like this shown above will be used.

author: eneuro
author_rank: Super Contributor
timestamp: August 04, 2015, 03:14:13 pm
content: Finally something usable-now laser printer made decent job and designed ruller with 2-bit grey-code fields clear visible:Lets try transfer this image to aluminium plate, so probably it will be good idea remove bearings and use hot iron plate to heat this aluminium plate like in classic old school thermal transfer methodThere are very high temperatures outside this week so hard aluminium anodizing will require special setup, while low temperatures needed during this process, but cold ice needed now to survive those tropical temperatures, so it will be fun to try anodize this thing with ruller thermal transfered to one aluminium plate sideBTW: Maybe someone has idea howto convert PNG/JPEG (100% quality) to gerber files acceptable by prototyping machines to make also PCBs with silver/golden ruller on black PCB mask ?I've some idea-output from my CAE software something like ruller footprint acceptable by GEDA tools and... apply to dummy schematics and use classic GEDA tools to create PCBs and export to greber files, but maybe there is more strightforward way to do so-pNG/JPEG to gerber at high lets say 1200 DPI ?Yep, it could be nice output also encoder photodiodes/leds 0805 footprints with a few passives to create fottprint for encoder control PCB, while I need fit exactly into this ruler shape and it could be nice do it in my own software without messing with other PCB design tools and need to draw those PCBs by hand for different rullers diameters, etc...

author: eneuro
author_rank: Super Contributor
timestamp: August 04, 2015, 09:00:42 pm
content: It looks like this 2-bit gray-code works very well-I've implemented sensor bits gray-code conversion to movement position and succesfully in this simulation sensed position change 4 steps in positive direction, than back to start 0 position, than one step in negative position, back to starting position at the endTricky simplification of logic bit operations on sensed gray bits using MPUs XOR, AND, OR, NOT register operations gave nice symetric formulas to determine movement directions, which means only a few fast logic sensor bits operations needed to figure out whether increase/decrease current position based on previous sensor bits and new readingsIt is time to design PCB itself with photodiode/leds to feed light sensors 2 bits to MPU pins-software is ready to update movement position using this 2-bit gray-code light sensing concept

author: eneuro
author_rank: Super Contributor
timestamp: August 05, 2015, 01:52:29 pm
content: I've played a while with thisMVSIS: Logic Synthesis and Verificationsoftware while I'was also looking for hardware implementation of finding movement direction based on 2-bit gray-code light sensors data and was able simplifygray2movefunction to: two XOR2, two NOT1 and two AND2 operations, which means it could be easy implemented in hardware with the help of shift register and additional clockYeah, those tools MVSIS/SIS in two commands simplify truth table to something I've shown aboveJust wanted to proof that I didn't made mistake when simplified this by hand, however I'm supprised that those advanced tools didn't changed:Code:(not A) and (not B) or (A and B) -> not xor(A,B)which allowed reduce number of MPU operations and I've noticed this myself today, but probably those tools coud do it if we maped this to such XOR gates, but I'm new tomvsisand I do not know howto map this automaticaly to given logic gates.Anyway, tested NXOR(A,B) and it leads to (~A&~B | A&B) as well as I've got the same movement positions, so it is fineCode:$ ./test_nxora: 0 b: 0 nxor(a,b): 1 (~a&~b | a&b): 1a: 0 b: 1 nxor(a,b): 0 (~a&~b | a&b): 0a: 1 b: 0 nxor(a,b): 0 (~a&~b | a&b): 0a: 1 b: 1 nxor(a,b): 1 (~a&~b | a&b): 1

author: eneuro
author_rank: Super Contributor
timestamp: August 05, 2015, 08:24:15 pm
content: I had a fun to play withABC: A System for Sequential Synthesis and Verificationavailable for downloadhereand while it was designed based on experience onSIS/MVSIS(has smilar commands) after changinggenlibcell library to support only NAND2 and INV1 gates (I've removed XOR while trying implement this logic only on NANDs) I've got nicely visualised network of NANDs, eg. I could use thosePDF: 74HC00D Quad 2-input NAND gatesI do not know why this ABC synthesis software crashes when tried map using only NAND2 gates instead of INV1 (inverter with one input output), but it doesn't matter, since those INV1 gates can be easy replaced by one NAND2 with its inputs tied, so it looks like five small 74HC00D SO14 (Quad 2-input NAND) should do the trick and "calculate" movement direction in pure digital CMOS NAND implementation of this gray2move functionI need add D flip-flop or shift register to store previous 2-bits of light sensor readings, but it could be fun if it worked with pure NANDs implementation-I didin't check if this graph of NANDs gives correct output direction bit values, but probably ABC software did it rightOf course using XOR gates could simplify this function as shown above, but I tried generate pure NAND version based on 74HC00D's

author: eneuro
author_rank: Super Contributor
timestamp: September 10, 2015, 05:24:28 pm
content: After some brain storm on this threadLow Cost Pick and Place Machine, I've finally found better solution for rotating XY plane around Z axis and steel ring for base like this below will be used:Side view below: about 15mm high and 22mm wide, with 0.329 meter radius and weight... 5.5 kg, not for cheap China post mail, but... quality must weight-not too much plastic crap in this cuctom prototype PnP machine with additional feader machineIt has ~68 cm diameter, but when we assume that only 0.5 m (( 50 cm) will be usable, than we get working piece area comparable to.... 80 PCBs at size 5cm x 5cm, 320 PCBs at size 25mm x 25mm each while total working area is >0.2 m^2Probably at this point you might have no idea how it will work, no problem I will post when prototype rotating horizontal axis in XY plane and vertical in Z axis will be installed with bearings, while I'd like to use it as soon as possible for manual SMD PnP.I design this with those linear motion motors in mindYaskawa Linear Motors in Motionand probably not only one but two PnP heads on one transission line to speed up two times PnP assembly, thanks to linear motors advances in linear transmission lines, but due to the investigated possible patent pending two head version will not be shown on YT for the moment-only one head version

author: eneuro
author_rank: Super Contributor
timestamp: September 10, 2015, 08:55:20 pm
content: Today, I want make teardown of... optical mouse, since as we can see it has quite advanced signal processing builtin and maybe this thing could be usefull for precision positioning, while gray code encoder used for fast movements to find position.Understanding Optical MiceI need make custom encoder for my PnP base shown above and considering different options, while for the moment I'd like to make working prototype not low cost but... cheap, really cheapOne of the simpliest one is print gray code of encoder on paper and make thermal transfer or even glue and protect from water, etc.Probably I will try something like this, but I will also create pseudorandom noise with limited lets say 64 levels of gray on paper with black gray encoder pixels to help optical mouse sensor recognize precision movements betweem 1mm spaced gray encoder black coloured dataThose sensors even a few years ago has quite high 500 fps in their builtin cameras, but maybe someone hacked those cameras to get not CPI as output but its pixels itself?How many pixels it is?I never tried hack this and it now looks interesting, however of course microscope camera with CV could also be an option-I mean I have gray code encoder, so microscope camera reads this code between each 1mm spaced places, but than makes measurememts in its own pixels of this 1mm space between gray code data and determines fraction of milimeters, so with help of CV we could make fast linear movements and still be able to make precision positioning based on calculated offset from the centre of CV camera and processed milimeters boundary black lines.So, I will play with this mouse for fun only, since it looks like it can't help too much detect gray encoder boundaries without direct access to its pixels, so probably I will have to look for more professional optical encoder solutions for this ring XY rotation around Z axis, like those used in ink jet printers, etcHowever, now realized, that if I had CV available in assembly head, than PCB could be marked and CV system could make those tiny position adjustments based on image processed position of those markers.It will be a challenge to get decent precision positions while rotating my PnP assembly head along this ring around Z axis, but for the moment I've smallest SMD parts 0805 and SO8 packages on test PCBs to automate its assembly, so not huge precision needed.Yep, folks hacked those tiny optical mouse camerashttp://www.bidouille.org/hack/mousecamOptical mouse camhttp://spritesmods.com/?art=mouseeyeYour Mouse Is A Terrible Webcamhttp://hackaday.com/2014/01/14/your-mouse-is-a-terrible-webcam/Who cares, if we were able make some processing of this data without sending to PC image, but prcessed output -positionQuoteDecent quality image from optical mouseYeah, teardown time

author: eneuro
author_rank: Super Contributor
timestamp: September 10, 2015, 09:40:27 pm
content: This is a monster in many of optical mouses which we are looking forADNS-2610 Optical Mouse SensorNice 400cpi @ 12*0.0254m= 0.3048 [m/s] (30 cm/s motion)QuoteSample typical circuit block diagram, so now we have idea what we have to salvage from our optical mouse to keep it working in prototype

author: eneuro
author_rank: Super Contributor
timestamp: September 11, 2015, 09:00:14 am
content: I've made quick teardown of old A4 Tech OPTO 815 mouseN1165 marked SoC (shown in datasheets as C1165-011) in the middle:Unfortunatelly there is no nice ADNS-2610 with acess to raw sensor image data, but biggerC1165-011 USB Optical Mouse SoC, which looks like doesn't provide on its pins access to raw sensor image under mouse, but outputs directly to USB its position and buttons state, so it is useless to compute absolute position.Anyway, this mouse had wire at the front, so I've drilled hole at the back and fixed problems with connection, so not this optical mouse better fits my needs, while still hate those bloody RF wireless mouses, when its battery deplates and is useless just in the middle of the jobThis ADNS-2610 is difficult to source , so we'll try visual camera module instead.

author: eneuro
author_rank: Super Contributor
timestamp: September 11, 2015, 01:20:19 pm
content: After thinking a little bit, I realized that maybe in this quick cheap version I could try use thisSPCP168A Description USB Optical Mouse SoCwhich I've found during teardown of another failed (more modern ) cheap optical mouse, which works (left mouse button failed) and which is nice probably IR LEDs diode is used, since when tried connect to PC at Linux XWindows, than cursor still of course works perfectly and no redish light comes from the bottom of this thingI wasthat there is only a few elements on this PCB and it looks like easy to reverse engineering circuit, redraw new PCB when needed and desolder, while it is strange, but difficult to find this IC SPCP168A in any databases... how is it possible that chip from 2010 datasheet is not available for sourcing?It has very simple example circuit, so it could be usefull in a few more my projects too, but where to source this IC? Maybe someone knows what is going on with this IC?It looks like PCB layout is similar and very simple too with a few caps and resistor:Not too much there, so I will try desolder Z axis (scroll buttton) encoder and.. replace with my own which will read position on this half meter ring shown above, so it might be a little bit tricky, but with the help of desoldered oryginal element and this SoC optical mouse datasheet seams doableIt has nice lens holder with light (IR?) guides, so I will cut everything around this PCB and salvage with bottom plastic cover.Additionally, failed left mouse button, can be replaced with another working middle button, so there will be more place to put there my custom encoder with photodiodes to detect printed black/white lines (1mm spacing for first tests) pattern below and synchronize with read XY positionIf it works, maybe even gray encoder will not be needed, since probably this Z axis tracking hacked should count quite reliable black lines spaced by white the same width, but it need to be tested and compared with this Z axis limits and sampling rates, but 1m/s rotation not needed around Z axis on ring-assembly head holder will have its own stepper motor for fast rotation of taken PnP partAnyway this SoC can be used to send back to PC controll software position on ring using this integrated USB driver, so that is fine and I will try write some Linux code to be able adjust its default 1000 CPI XY resolution, which is not so bad.Datasheet says it has by default 1000 CPI, but I have to ensure and test if Linux driver is capable maybe to switch to higher resolution available, but 1000 CPi looks fine-we'll have CV microscope cameras in assembly head, so this encoder will be used to make small adjustments to place parts in exact position calculated from computer vision system analysis of exposed copper/silver/gold pads on PCB, so maybe this encoder build from failed optical mouse might work for us

author: eneuro
author_rank: Super Contributor
timestamp: September 11, 2015, 06:31:42 pm
content: I've made some art work and now my PnP (CNC) machine encoder in Z axis rotation along steel ring looks betterI've reinforced with hot glue USB connector wires which were not protected in any way and could easy be cracked-it were floating inside this optical mouseFixed problem with left mouse button, by replacing with good wheel button and removed this Z axis wheel encoder, which send on two pins some pulses to SoC Z axis pins as ex[ected from example general circuit shown above..Now, we need examine this Z axis part with wheel installed inside and try rotate and see what kind of pulses might be created in each direction, to be able design similar detecting printed black/white pattern.I could do it while powered in real USB socket before disassembling this, but it must be simple On/OFF, I guess and shouldn't be too many supprices-it is simple circuit powered from USB +5VIt is time to design machine horizontal axis with this encoder installed, since its vertical Z movements will be controlled for the moment by... DVD ROM laser diode holder with its bipolar stepper motor to get quicly some result and help in manual SMD PnP to see something doing borin tasks like moving parts from one place to another with vaccum pump

author: eneuro
author_rank: Super Contributor
timestamp: September 12, 2015, 08:05:27 pm
content: Trying upgrade this PCB, by adding additional status diodes, since it looks like this schematics fits very close to layoutTested in XWindows (Linux) that indeed this SoC has ability to add DPI switch, which switches between 1000CPI and 1600DPI-it works by pressing this black puch button, but it is possible also to add LED indicator for this, so I will try do it since, instead of LED i can use optocoupler internal dioded if needed and try to switch to 1600DPI using small MPU, which will "press" this DPi switch button and check on status LED if it is changed.However, according to schematics (from SoC datasheet) linked above, we need to ad 2.2k resistor and when checked tracks, I will have to cut part of one track to insert this additional resistor, since in current design they didn't prepared PCB for this CPI LED status feature (or I missed something), but additionally something like power diode can be easy added, so I will add green for power status and yellow to test this DPI switch modes.BTW: When we calculate what 1600 DPI means it is 25.4mm/1600 ~ 0.016 mmNot so bad, for precise adjustmentsFighting with this Z-axis encoder, since when tried probe desoldered, unfortunatelly I can't see any shorting to ground on two of its pins, so I do not know, not sure what kind of encoder signal is send-2 bit gray code or something else-it is not described in this SoC preliminary datasheet.That is interesting, that there are some pattents around this Z-axis encodingMouse-associated Z-axis encoderhttp://www.freepatentsonline.com/6285355.pdfWe'are too lazy today to investigate this after 60km bike trip between hills, so I someone have some idea what we could expect from those two pins when wheel mouse (Z-axis) is uses let us know, to complete quite succesful teardown and rapair of failed optical mouse button, with additional enhancements of this tiny PCB by adding resistors and LEDs to unpopulated pads on this PCBUpdate: Probably it can be 2-bit gray code in this optical mouse Z-axis.Interesting usage of three mouse buttons and wheel belowCNC control with a mouse (pseudo pendant)QuoteThere is no wheel no more, but MPU can be used and additional step up/down buttons connceted to its pins, than MPU will output correct 2-bit gray code,so we can choose axis and eg. by holding up/down buttons make 1mm auto increments every 1 second, etcYep, we'll try 2-bit gray code as inputs to those those ZA/ZB SoC pins, without loosing time on oryginal optical mouse wheel Z-axis encoder

author: eneuro
author_rank: Super Contributor
timestamp: September 13, 2015, 03:36:29 pm
content: PCB was upgraded to support CPI LED (yellow) and PWR led (green):After power up CPI led (1000) is off and mouse movements slower than when DPI is pressed and optical mouse switched to 1600 CPI-software reads more counts per the same distance (inch), so screen cursor movement looks faster, since probably its driver do not know that DPI button was pressed.So, when we'll need this higher 1600 CPI resolution this experiment showed that we need add tricky circuit, which will read this CPI LED status and "press" automatically DPI button, until CPI LED is ONPrinting tomorow custom encoder background on A0 paper to see if this optical mouse Z axis SoC pins Za/Zb feeded with this data will track machine rotation around Z axisUpdate: There is ~2.3V on those ZA/ZB between ground, and when tried short with 1k resistors cursor seams to scroll text in terminalI wrote small MPU software to generate 2-bit gray code on ATTiny85, so I think I will add support for incremental steps on two other, so pressing them should move this whel cursor up/down, so it could be quite interesting interface to select movement axis, then make 1mm steps in both directions. Using additional pin we can toggle steps multiply by lets say 10x so in this mode 10mm (1cm) steps like in many CNC manual control devices

author: eneuro
author_rank: Super Contributor
timestamp: September 14, 2015, 12:51:51 pm
content: QuoteYep, idea of using MPu between any rotational encoder and enhanced SPCP168A optical mouse PCB, was good, since when connected my development ATTiny85 MPU powered from mouse PCB USB (4.3Vz to provide a few mA of currents-now realized that I've BOD at this range enabled on this MPU.. Ups) it looks like eg. in PDF viewer software scrolling works fine in both directions, but seams that scrolling is update when ~ two gray code steps are made-not step by stepI've used 2-bit gray code like this below and had a few cycles set (worked fine with 16 steps -4 cycles).Code:./mpu_gray_test: Number of steps: 4./mpu_gray_test: step: 000 binary: 00 gray: 00./mpu_gray_test: step: 001 binary: 01 gray: 01./mpu_gray_test: step: 002 binary: 10 gray: 11./mpu_gray_test: step: 003 binary: 11 gray: 10./mpu_gray_test: step: 000 binary: 00 gray: 00./mpu_gray_test: step: 001 binary: 01 gray: 01./mpu_gray_test: step: 002 binary: 10 gray: 11./mpu_gray_test: step: 003 binary: 11 gray: 10./mpu_gray_test: step: 000 binary: 00 gray: 00./mpu_gray_test: step: 001 binary: 01 gray: 01./mpu_gray_test: step: 002 binary: 10 gray: 11./mpu_gray_test: step: 003 binary: 11 gray: 10./mpu_gray_test: step: 000 binary: 00 gray: 00Direction is randomly choosen to simulate machine rotation changes during its operation, but it was strange, when there were no full 4 step cycles (multiply), than maybe PDF viewer buffers or makes averaging while scrolling, since I was not able make scroll each step by stepIt is timesoftware which will read those mouse movements and output raw data from mouse not postprocessed, but AVR MPU itself powered with a few mA looks like can do this job, but I will add 3.3V voltage regulator, while I wouldn't like to mess with existign one on this PCB, while I might want do other more power demanding tasks, so I will take only USB 5V power to have the same ground on MPU with this oryginal SPCP168A PCB, so MPU closes Z axis wheel two pins to ground via additional resistor and now I will and my custom encoder light sensors and make PCB to read real machine encoder data, than try write a few lines of code to create in OpenGL and Blender virtual 3D model, so we should be able see on HD screen machine model 3D view in parallel with real working machine to test how amchine axis encoder data is translated by softwareSo, close have something usable.Probably I will use LinuxCNC realtime OS, since I'd like to have G-code manual mode support, etc...

author: eneuro
author_rank: Super Contributor
timestamp: September 14, 2015, 09:00:17 pm
content: QuoteUsing under Linux command below we were able find input device file associated with another optical mouse with wheel:Code:$ cat /proc/bus/usb/devicesCode:I: Bus=0003 Vendor=093a Product=2500 Version=0110N: Name="PIXART USB OPTICAL MOUSE"P: Phys=usb-0000:00:1d.0-2/input0S: Sysfs=/devices/pci0000:00/0000:00:1d.0/usb2/2-2/2-2:1.0/input/input8U: Uniq=H: Handlers=mouse1 event8B: PROP=0B: EV=17B: KEY=1f0000 0 0 0 0B: REL=103B: MSC=10This allowed us grant read permisions to input device/dev/input/event8which with a few lines of C code detects mouse movement events and outputs time when it happens and relative position x/y changes and wheel Z axis changes, which as expected for small slow scrolls are in +/-1 steps, so some software (like PDF viewer) might buffer those changes and calculate accumulated position, but we have nice wheel Z axis increments/decrements in the case of oryginalTraceroptical mouse, so now we can test quality of MPU gray code generated using Z axis wheel simulator shown aboveNow, we can design mechanical axis, cut prototype in steel, add bearings, main rotation encoder and fun part begins, when real machine movements will be translated to Linux XWindows custom control software, thanks to aaccess to USB optical mouse data

author: eneuro
author_rank: Super Contributor
timestamp: September 15, 2015, 08:19:56 pm
content: There is no mine PnP on YT so far, but we are looking what kind of DIY PnP folks does.This one has decent speed, but it looks like... all those CNC machinesYoutube - DIY Pick and Place Machine ProjectWe'll see how my concept will work in practise, but its axis are dead simple and similar to this fast PnP 3 axisUltra Fast Pick & Place Robot - FANUC's New Three-Axis Delta Robot Packs Small BatteriesI was thinking about using three such arms instead of four, but it looked like four arms are needed to position picked part in space, however as we can see it works fine with three arms too, so definitelly I need creat 3D model in my CAE and try simulate something like this, since... yep it is really ultrafast and could work with my feeder machine conceptBTW: Concepts changes from day to day, but well I want make it really cheap and outperform at least myself in SMD pick & place... which will be rather easy since... handling those bloody tiny SMD parts and manual positioning is horribleStill rotation around Z axis and simplier two axis instead of shown three axis might work as well for me, since I do not need such ultra fast PnP like shown on video above, but this machine uses the same three arms, which means design one, let manufacture three and have PnP readyAs simple as it is and... fast

author: eneuro
author_rank: Super Contributor
timestamp: September 16, 2015, 09:14:49 pm
content: We decided make something similar to this and mechanical parts seams to be easy to manufacture, but control electronics and motors might be a little bit tricky, but we like challengesOur machine will be ~60cm height and ~70cm width when arms positioned like in image above.Ordered steel balls in local bearings supplier expected delivery time in one-two days, so can't wait make prototype axis using custom made spot welder for such "fireworks"I'm working on mathematical modeling of those three axis movements with arms ~50cm (half meter) long.This numeric simulation will give us idea of needed steppers resolution to achieve decent assembly head accuracy in the range of 1mm-0.1mm in first prototype with CV help to make more precise adjustments based on at least 10fps image processing to fine tune assembly head positioning, which seams doable while I was able use OpenCV with 30fps live augmented video camera objects detection, etc, not mentioning huge speedups when GPU Nvidia support accelerated CV will be implemented for critical parts of PCB pads/pins/vias image processing .Since we estimated our machine arms size, CAE simulation will also allow estimate expected workpiece area size-it can be also done using basic geometry analysis

author: eneuro
author_rank: Super Contributor
timestamp: September 18, 2015, 06:54:02 pm
content: Steel balls are in my hands right now, so it is time try change them into PnP machine assembly head holder, like in concept photo aboveWe need 12 such balls:Connected in pairs, those steel balls will create 0.500m long arms holdersWhile, we know its dimensions, prototype arms and assembly head holder can be designed and welded.Steel, copper, nice in touch wood-no crappy cheapy plastics