Author Topic: Cheap recognition & pick & place & reflow oven solder machine for tiny PCBs  (Read 20163 times)

0 Members and 1 Guest are viewing this topic.

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
People from LinuxCNC project helped me sometime ago there
http://www.linuxcnc.org/index.php/english/forum/49-basic-configuration/27846-cartesian-g-code-to-cylindrical-machine-coordinate?limitstart=0
to develop and implement my custom Eneurokins module for LinuxCNC RTOS, to be able drive a few axis CNC machine  in setup like in this concept shown below

Using 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 places  ;)

I 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 home  :popcorn:
My 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 PCBs 8)

What 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  :-/O
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
Apropos nitrogen atmosphere reflow soldering interesting comparision from there Effects of Solder Reflow Conditions on the Assembly of Electronics Packaging and Printed Circuit Boards below


It 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   8)
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
Investigating now decent quality USB microscopes t range below $100.
Just wonder if this USB microscope (probably mentioned in one of @EEVblog videoblog https://www.eevblog.com/forum/blog/eevblog-566-cheap-usb-microscope-reviews/ )
~$80 Vividia 2.0MP Handheld USB Digital Endoscope/Microscope with 12.0mm Tube Diameter
http://microscopes.mobi/product/vividia-2-0mp-handheld-usb-digital-endoscopemicroscope-with-12-0mm-tube-diameter/

is much better then this much cheaper one?
~$30
Supereyes B005 0.1X ~ 200X Handheld USB Digital Microscope Endoscope Loupe Otoscope Magnifier with 11mm Tube Diameter Tripod LED
        http://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 free  :-DD

I'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 is  >:D
Maybe 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  8)
« Last Edit: July 05, 2015, 11:43:13 am by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
Bottom machine plate circular ruler ready to prototype test ;)

Tried 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 prototype


It 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 8)
« Last Edit: July 06, 2015, 11:42:45 am by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
This is my third hand in this project - new  Edozaur  ;)


It 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 assembly 8)

Anyway, 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.. dots  :palm:

Hopefully, 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 printer  :-\


What 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 technology
Precision cutting and grooving with the Laser MicroJet
« Last Edit: July 07, 2015, 09:31:54 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
OK, it is time to make a few bipolar steppers drivers with optional optical encoders for this motor from old DVD-RW


to have decent vertical axis (Z) control in my CNC machine similar to this one made by someone else  >:D

Even 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 mechanics ;)

Micro CNC Machine In Use As USB Camera Part 3 Of 3
« Last Edit: July 08, 2015, 02:39:24 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline Berni

  • Super Contributor
  • ***
  • Posts: 5010
  • Country: si
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.
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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.
Thanks 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 made  :palm:
I'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 moment ;)

However, 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 needles  ;)
Yep, I want use not one needle but three for some reason... with 3 phase 3 separate silicon pumps powered by simple DC/BLDC motor.
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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... $1


and... 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. :popcorn:
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 place  :-DD

Can't wait to automate this  :)
« Last Edit: July 22, 2015, 09:22:42 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline Berni

  • Super Contributor
  • ***
  • Posts: 5010
  • Country: si
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.
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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 footprints  8)

Anyway, 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 frame ;)


Screws 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.

12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline ez24

  • Super Contributor
  • ***
  • Posts: 3082
  • Country: us
  • L.D.A.
+1 from a fan.  Not much response however, just one.  Keep the progress coming.
YouTube and Website Electronic Resources ------>  https://www.eevblog.com/forum/other-blog-specific/a/msg1341166/#msg1341166
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
Keep the progress coming.
I have a few projects in parallel now, but some subsystems modules will be shared between them, so slowly but many things at once ;)

Today I was working on light buttons with cool button backlight and ambient light sensing on .. one MPU pin  :popcorn:

I'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...
« Last Edit: July 24, 2015, 07:58:42 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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 inside 8)


However, 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  :-/O


« Last Edit: July 31, 2015, 08:24:44 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
encoder main angle ruler
In place of accurate lines, how about using how a optical mouse measures movement.

C
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
In place of accurate lines, how about using how a optical mouse measures movement.
It 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 ::)
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline C

  • Super Contributor
  • ***
  • Posts: 1346
  • Country: us
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
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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.
Sometimes 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 Anodizing
http://www.anodizeusa.com/anodizing-systems-hard-coat.php

Using my strong magnifier glass

and old by usefull Pentax camera which focus (F3.2) at macro mode nicelly fits into those magnifing optics

 I'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 well
and 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 paper  :palm:


However, 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 work  :-/O

I 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 works  ;)

BTW: 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  8)
« Last Edit: August 03, 2015, 09:29:35 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline tonyarkles

  • Regular Contributor
  • *
  • Posts: 118
Instead of tick marks, you may be able to use a gray-coded line and gain absolute positioning as well!
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
... you may be able to use a gray-coded line ...
Yep, probably I will add gray-coded black/white fileds too, but only up to 4 steps to be able decode rotation direction change:
Code: [Select]
./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 sensors  8)
I 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  ;)
« Last Edit: August 04, 2015, 12:54:30 am by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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  :popcorn:
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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/length  8)

I 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.
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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 method  :popcorn:

There 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 side  :-/O

BTW: 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...
« Last Edit: August 04, 2015, 03:23:40 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
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 end  8)


Tricky 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 readings  :-DMM

It 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  :popcorn:
« Last Edit: August 04, 2015, 09:03:39 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 

Offline eneuroTopic starter

  • Super Contributor
  • ***
  • Posts: 1528
  • Country: 00
I've played a while with this MVSIS: Logic Synthesis and Verification  software while I'was also looking for hardware implementation of finding movement direction based on 2-bit gray-code light sensors data and was able simplify gray2move function 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 clock  8)


Yeah, those tools MVSIS/SIS in two commands simplify truth table to something I've shown above  ;)
Just 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: [Select]
(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 to mvsis and 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 fine  :phew:
Code: [Select]
$ ./test_nxor
a: 0  b: 0  nxor(a,b): 1  (~a&~b | a&b): 1
a: 0  b: 1  nxor(a,b): 0  (~a&~b | a&b): 0
a: 1  b: 0  nxor(a,b): 0  (~a&~b | a&b): 0
a: 1  b: 1  nxor(a,b): 1  (~a&~b | a&b): 1
« Last Edit: August 05, 2015, 02:00:28 pm by eneuro »
12oV4dWZCAia7vXBzQzBF9wAt1U3JWZkpk
“Let the future tell the truth, and evaluate each one according to his work and accomplishments. The present is theirs; the future, for which I have really worked, is mine”  - Nikola Tesla
-||-|-
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf