Ryzen7 and Xilinx Vivado and B350+

I’m putting a Ryzen system together for evaluating the AMD work. It’s important to support the Intel competition. My system is a 1700  on a B350+ Asus , 128GB M2 SSD, 4 xGB DIMMs 2400. 8GB? this is a cheap eval. If I like it, I’ll stick 32GB in it.

Tried to install Debian 9 AMD64  net install. The installer chooses the wrong network driver  . It’s an RTL 8168 etc. So I downloaded the Non-Free firmware Debian image, 3.4GB, and that installed just fine.

Ran up Vivado 2017.3 on it. Copied over  a Windows project directory,  and Vivado was not happy. All the MIF file paths are screwed up. For some reason, VIvado is on the windows install storing the full path including the drive name when pointing to the MIF files ? WTF Xilinx ??? so, there would be a script to write to fix that up.  Still, the Vivado install worked like a charm – good one Xilinx !  It ran just fine, all the graphics and boxes all works as it should. Hooray Java.

OK, so that runs OK. Linux and Vivado and Debian will work for people.

Time for windows 10 pro. Installs OK. Geez there is alot of fluff now in a Windows install.  Can’t we just have a Pro install without the cheese please MS ?  Finally, after the endless reboots and updates I install Start-Is-Back, Opera, Ryzen Master , Vivado , Lasoo.

I run a few Vivado runs.
Compare box is Haswell… i5-4690k, turboing to 4 GHz, 32GB dual channel DDR3 1600 MHz  and it benches Synthesis- 4:21, Implementation 5:29.

Still getting my head around The Ryzen Master Utility, and BALANCED/High performance mode etc. .

OK, Using ProcessLasoo to lock Vivado to Upper CCX cores 8-15…

general.Maxthreads=8 (was =4 for i5-4690k).

So 1st run 3.6GHz:  5:22 6:20. 3.6GHz (1.25V)

2nd run 3.8 GHz:  5:07, 6:32 (1.25V).  slightly better synthesis.

3rd run 4 GHz :  4:47 , 6:11  (1.35V). The heat came up along way on this one (48 deg C) (ambient 23). synthesis still 9% faster , implementation 11% faster on Haswell
…another run at 4 GHz  : 4:46 ; 6:10…….so that’s real.

Conclusion is that Zen slightly slower than Haswell,  clock for clock ….approx even with 2400 versus 1600 memory.

The 2400 memory wont go any faster without overclocking voodoo which pro users are not going to bother with I think . Might get some 3200 memory and see how the benchmarks compare. I slowed he memory down to 2166, went about 8 seconds on synth and impl, or ~3% (for a 10% reduction- although the RAS/CAS timings got  faster 14 14 14 instead of 15 15 etc)

On the other hand, the computer didn’t become useless when implementation really started cracking the whip – a full 4 cores, 8 threads left over to run other stuff, no problem.

Ran a mixed PRIME95 all thread stress test, with the supplied-with-the-CPU stock cooler, 1.35V, 3.9GHz, got a 46 deg C ambient rise.. Not bad. With a liquid cooler, would be no issue.  Went to 4 GHz stress test-  crash, did same with 1.4V no problem, but got too hot (>70). So there is room to experiment…











Posted in electronics | Leave a comment

Paste jetter – inkjet lessons

I ordered my Piezo actuator today. My Piezo actuators came from  http://www.piezodrive.com/    I got a -30>>150V actuator type SA050520.  Have been learning about making small features, including  EDM

The block that houses the delivery chamber will be temperature controlled I’ve done alot of reading, including this short gem http://doc.utwente.nl/58366/1/thesis_Wijshoff.pdf

drawing below from the above thesis :


Other required reading..

Particularly figures 6,7 and 8 showing  the Thixotropy


Posted in Pick and place | Leave a comment

random thoughts toward a successful paste dispenser.

These are RANDOM thoughts out loud, right now….there are a few things that need to be done to make the paste dispenser work, I have studied the various syringe/ auger constructions, their claims over others etc etc extensively.

rough drawing……



simpler Visio-dispenser

MK1 will be direct syringe pressure type.
the syringe types need a bit of work- a combination of the below :
0) needs temperature stability/control
1) no air piston- direct piston driven by lead screw/stepper. no air anywhere .
2) pressure in the chamber needs to be monitored . have to figure this one out. something on the wall that provides pretty reasonable consistency. I am thinking resistive or similar sensor on the walls of the pressure chamber.
3) pressure into the chamber by a piston is easy to increase by pushing the piston down, but on the withdrawal which is important has to be done without introducing air.

A withdrawal is required as part of the cycle. Many system have problems with voids created. A vac created may not pull back the fluid reliably and as desired, so that needs to be worked on. there may need to be the vac created by the retreating piston PLUS another means to pull the fluid back up the needle. Perhaps an opposing (with hole in the middle) piston at the bottom of the chamber to push the fluid back up. Surface tension will permit the fluid in the nozzle also to assist pulling the fluid back up (and avoid any voids- that’s the idea- no voids are to be created.
There are other means to push/pull the fluid.   Constricting a channel of sorts (squeeze) or expand- the fluid needs to be pulled up the nozzle.
It’s hydraulics, also.  Hydraulic systems are using push , pull…..Must remember. if only the piston moves back, we are relying on the vac and the surface tension to pull everything up. the question is for example, if the pressure chamber was full, that’s alot of fluid to pullback on vac and surface tension. So I think there needs to be assistance of sorts. maybe there are ribs or something on the walls that move, I dunno, but I will start thinking.  if there is pullup (by vac due to piston pullback) AND pressure from the bottom of the chamber UP (by another piston) then we can avoid voids in the main chamber and only the small quantity in the nozzle needs to be pulled back up the nozzle, not a large volume up the chamber.
Perhaps…. deforming the walls , changing the shape of the entire chamber with a crush, or a expansion would provide useful methods, also,

IE use a piston for movement  of fluid to ensure the chamber stays pressurized, but also use deformation of the chamber for dispensing. Epiphany : If  a large surface area of the chamber deforms  this is acting on a much larger  surface area than the end of a piston.
such a deformative wall though is a difficult thing to build . The pushing piston is required to keep the deformation chamber  full, as the deformation chamber has finite breathing ability.  so the deformative chamber for dispensing is a  hard but interesting option.

Either the chamber (stock) or the applicator (needle ) could be deformed..There is a good supply of piezoelectric actuators around, time to learn about them…
Air or fluid could be used to deform a container, also, like a bladder or sealed container inside a container to squeeze or open the contents.

now we have good pressure and release control and pressure sensors, when the dot is deposited, best performance is a precise delay before the precise pullup.
Distance to Z=0 is going to have to be known to at least half the dot size- at least 0.1mm , so there will need to be a very precise distance sensor and height control of the head.

The 32 gauge auger system that is designed for 01005s and it is successful, uses a 0.1mm nozzle internal diameter.  I will start with that size.
There will need to be multiple devices to be able to deposit with reasonable speed on a mixed PCB- IE different nozzle sizes. Watching on my air dispenser dispensing through a 0.1mm nozzle, there is at least a 1/2 of a second for the dot to be let go- IE takes a while for the small amount of surface tension, presumably because the area is very small, takes time to let go. Pull up too fast and the blob is not reliable, the head pullup needs to be slow. So the smaller dots end up being quite time consuming to put down.

I read that the surface tension and behaviour  changes quite a bit with temperature so the chamber paste AND the PCB surface will need to be temperature controlled.  No use dropping carefully controlled paste onto an icy PCB.

To summarize :
VERY accurate control of Z height  with better than 10um movement resolution .
Piston compression from one end of the chamber
Piston compression from the other end of the chamber..
Deformation of the chamber or applicator (needle)

another idea is that once the paste is moved into the applicator (needle) this area could be sealed off from the stock chamber.(rotating / sliding ) , constriction of the applicator etc) and the applicator could then be deformed by a fast pulse (IE a piezo actuator or solenoid) . This way the only way for the paste to go is out the needle.

ideas…ideas.. a solenoid smacking into a deformable wall would work…
if there was a sub chamber from the main stock chamber like a hollow block that had the applicator on it and it was sealed from the stock chamber, an deformation actuator could be one or more of the walls of this stock chamber. I think for success, the pushing force needs to be applied over a very large area  to volume ratio. Not just over a small area of the volume.
Additionally, if there is a separate deformation chamber to the stock chamber, a pull-back motion in the stock chamber may not be required.

In fact, ipso facto, if the paste is pumped in, there might really be no need of a piston/ construction bladder for the stock chamber.

Constriction of the duct  between the stock  and delivery chamber can be simplified. A duck valve. (thanks Robert)

OR just constrict the stock chamber (for delivery and pullback)  and have no separate delivery chamber.This solves the problem if refilling the delivery chamber without ooze.
The thing is, the small chamber removes a whole lot of fluid the pulse has to be transferred through.. so perhaps another valve is required on the delivery needle.

My guess if the bigger the volume getting squeeze, the more  low-pass the delivery behaviour. and the harder to control over temperature and paste variation…

Might use ultrasonics to measure density, voids, pressure.
Like three transducers in a 120 deg  arond… 1MHz transducers…


No need to go crazy with piezo though, voice coils, solenoids they all work.
golly there are all sorts of piezo things




Posted in Pick and place | Leave a comment

Guides arrived…


From “Jiean Robot” in Zhejiang, China. “Zhejiang Sikete Technology co ltd”
Very easy to deal with Chinese company, good customer service, understood my needs, able to customize, and 7 day delivery once TT received. Well priced also, about USD400 each approx .

Photo is before the mounting plates go on to interface the rails and the extrusion.

Well I think I went a bit  too big !   NSS95 for the dual X rails and a smaller NSS75 for the Y gantry. The idea is X gantry has to support (and accelerate )  the Y guide and the gear.
Motion specs for the 75 and 95 are the same, just the loading. In hindsight, NSS75 all round would have been fine.  I went with the ’95 because they were only about 15% more .

75 guide is 7.5 kg, and ’95 is 12.5 kg. Lots of extra Aluminium plate…The 75 guide (Y) is 600 travel. The X is 800 travel,
The guides come with photo-interrupter limit and home switches and cables that can be put on either side of the guide.

There is 780 between the supports so the head on the Y can be quite wide (in Y) and still run full travel.

They are silky smooth… I have run them up with a motor and they scared me….

Posted in Pick and place | Leave a comment

PnP : On stereo imaging and more focus

I had in my plans for two cameras in a stereo scopic setup for down vision so I could figure out depth and distance to things on the table .

However. doh! , I was playing with my fancy PointGrey camera last night and realised I don’t need two cameras, I just need to take a image, and move the camera and take another image ! and I can move the camera with sub pixel accuracy in the FOV.

And then, another obvious penny dropped.  Image de blurring and refocussing  (enhancing depth of field) can be done with a series of images takes when a camera moves in a plane tangential to the object. I read that many  years ago .

And of course I can move my down (and up) camera and take multiple shots.

So a bit of searching and googling later reveals google have done it for Android






Posted in Pick and place | Leave a comment

OpenPNp multithreaded directions..

added here  from my post in the forum..

I had a chat to Jason about this a week ago.. essentially…
after component pickup, Open PNP motion thread tells motion-controller (external)  to go to the target location (PCB place)
motion thread blocks on image processing thread.
image processing thread is also blocked at this time.
motion controller takes care of getting the UP camera in the right place and takes the exposure.
motion controller then sends signal to PC (say a char on a serial  port) and this unblocks the image thread
image thread now unblocked processes image, and comes up with a new offset for the placement and rotation.
Image thread posts this new info to the motion thread and blocks-
motion thread unblocks and updates the new target positon to the motion controller , and also updates rotation.
motion thread blocks waiting for ‘on station’ signal to come from the motion controller, and the placement ensues.
of course there various things that might happen different if we are placing a big component  where we most likely need to STOP over the camera and have afew goes at rotation, putting the part down, picking it up again, rotating etc to get that right- but that’s not often (for hard parts) .
and also if people  have a camera that requires everything to be stationary, slightly different but similar events occur.
However my idea is basically to decouple the motion and image processing so that the machine can be on its way while the images are being worked on..
of course if the image was bad, or the uncertainly level by the image processor was low, then it is going to have to tell the motion thread to send the head back to where the camera is (or sent the camera to it or something)
Of course this having to have another look at the component and moving the head back  to the camera etc is a great advantage of flipping a mirror in the way and looking at the component that way.. I just have not yet found a good way of doing that for multiple nozzles. More thought required.

Posted in Pick and place | Leave a comment

L6470 ST stepper driver

Wow, this baby is complex.
Read this first…L6470 presentation

I bought two eval kits from digikey/mouser $25 each. (mouser: 511-EVAL6470H-DISC )
It  has a USB interface, JTAG interface and some buttons. The eval software for the board is  comprehensive. There is alot to this chip- it is NOT for the non engineering types.

It is not just a fancy bridge driver, it is a stepper /motion control ‘co-processor’ you tell it where you want to go and it goes and manages it… SPI interface…

In a nutshell- on my steppers this chip is smooth. I mean REALLY smooth on microsteps.
it uses Voltage Mode drive (rather than current mode drive) with BEMF compensation, and from my non stepper standpoint, voltage drive is much preferable for driving this sort of device.

I have steppers clamped to my steel bench for eval, so any vibration gets amplified through the bench…. I tested steppers with inertial load, and without.

The results are chalk-and-cheese against my other stepper drivers 8825, 6620 etc.This chip does not want to do anything BUT microsteps. I found compared to the other drivers, the microsteps were pretty much within the 5% of a full step tolerance.

and, as expected, the microstep performance was vastly improved by having some sort of load on the shaft. This is why i think the component rotation application is going poorly for some users  – no load and undamped resonances and vibrations. IE needs a chunk of steel on the shaft.
(And even worse with the abrupt current mode chopper drivers I am used to_

Its a good eval kit (Discovery kit), but before you start, you MUST read at least the eval datasheet, the eval software manual, upgrade the software on the board etc.

Then you MUST READ (because results will be disappointing otherwise)  AN4144. I say again. MUST READ.

Then be sure to read AN4241, UM1691, AN3991, then, optionally, AN4290, DT0055, DT0056.








Posted in Pick and place | Leave a comment