PnP frame – Aluminium cut

2020 and 8020 extrusion. wow it is big. big because while travel is 800×600, you need a fair bit each side of the travel.  The single bits of 2020 on top are the top table supports- three tables. Not shown are the bracing plates , guideway mounting plates.


Image | Posted on by | Leave a comment

component rotation…

On Friday I investigated reported forum issues of not being able to rotate a component with the component on the end of the hollow stepper with sufficient accuracy and resolution.
I set up a job to test this on a basic driver with 1/16 stepping capability.

In all, as in the documentation , there is a periodic sequence between full steps.
Most certainly, in 1/16 mode, I’ll go into 1/32 resolution for the discussion :
you  might get something like 2/32, 2/32 , 1/32, 1/32, 3/32, 2/32, 2/32, 1/32,1/32, 1.32, 3/32, etc .  Sometimes the errors was less than 1/16.

In all cases, the full step is preserved . That’s why microstepping is still accurate over multiple microsteps for a integer number of full steps

1/8 stepping similar- (using 1/16 to demonstrate) 2/16, 2/16, 2/16, 1/16, 1/16, 3/16, 2/16 etc

The different sizes (8,17,23s I had on hand) behaved all differently. Under load with inertia, the 23s where right on 1/16 precisely. On my 6040Z with planet cnc controller- driver, even 1/32 steps were near perfect. So,  different behaviour with different loads.

Which is expected- with no load they are a unloaded and hence underdamped system.

The datasheets say +/-5 % of a full step. OK that us 0.05 * 1.8 = 0.09 degrees. Or 1/20 of a full step. And that is about what I am seeing approx. Maybe a little worse.

Another thing I noticed- behaviour is different going forwards or backwards = a 1/32  step forward in 1/16 mode (under stepped)   might be 3/32 backwards  from the same location- so there is opportunity to iterate to get the right step.
So what is required ?
To get a 20 x 20 LQFP144 down, I want placement better than 1/5 of a pad width (0.35mm)  so 70um..

The outer pins are on a 22mm square – 15.55mm radi circle-  a circumference of 97.7mm.
So, 70um on that is 97.7/0.070 = 1395 steps around the circle or 360/same = 0.257 degrees.

0.257 degrees  is 1/7 step. So I think we are OK. People have reported bad steps in 1/8. So this required more investigation.

In OpenPNP- I wonder if there is enough certainly for the placement estimation ?
In signal processing world, I would take multiple snapshots, and then do multiple estimations and as a starting point, just average the estimations (yes, sure you can get alot more rigorous about the sort of estimation you generate).

I think the direct stepper control should be sufficient. There are a few mitigation strategies for interpolation/ iterative solutions I think. especially if the up vision is involved. You’d need a 2000 step encoder on the stepper shaft to otherwise see what was going on- and that could be printed fairly easily for a largish circle.

The alternative is a reduction drive and a belt , a 1:3 would do it nicely.
If we said the GT2 belt uncertainly was 50 micros, then a simplistic way so look at how big a sprocket we need is  if we need say half of our 0.257degrees with is 0.128 degrees, this is 2801 steps of 0.05mm (belt error)  an a circumference of 140mm (70 teeth at 2mm) .
That would be likely be plenty. Less would likely suffice.
With a 12 tooth drive, say 40 teeth takeup, 1/8 steps would be more than  sufficient.

Is this super resolution required for all components- no- I don’t think do, anything up to about 10×10 should be fine even with +/- 1/8th precision steps.











Posted in Pick and place | 1 Comment

Head prototypes

latest head design


The intended placement of the two cameras is visible, also
Belts are not shown, have not figured out how to do belts in Fusion360 yet…




Posted in Pick and place | Leave a comment

Pick and place Update page

I added a bit more last night on my PnP story, particularly items on up and down vision, and feeders. i also added a bit more  on stepping resolution, particular belt drive calcs that show when microstepping is using, the torque is in the toilet. The belt system needs lots of  torque from time to time at slow speeds to overcome stiction .



Posted in Pick and place | Leave a comment

Rpt linking using CODEC2

The PCB is designed for linking  analog radio repeaters by  using David Rowe’s CODEC2  speech codec codec2. It takes audio from an analog repeater audio output (ideally the FM detector so that it can  measure SNR) , and encodes this into digitized speech, then sends to via a link radio as FSK  – using a the mic or ‘packet’ input.

It also has an analog input from the link radio, and performs the reverse function- decodes  CODEC2 FSK data, turns it into analog and drives the repeater audio input.

It also will perform the usual repeater control and repeater audio turnaround and ident.

The plan is to use Codec2 at 3200 bps  to start with, but an an option incorporate my own extensions (and increased codec2 bitrate) by increasing both numerical and temporal precision.

On the modem, AC coupling will  used and  8b10b encoding (or something else when I get into the modem ) will ensure no LF/DC issues at a 20% bit rate cost. My experience is stay away from the LF with stock PLL radios. Don’t try and modulate much under 250Hz from the mic/VCO mod input. The newer fractional mod radios are a bit different. Brady O Brien commented on the error propagation issues of 8b10b, and he is right, I will certainly have to come up with something better. I have a green field.
Maybe I’ll go DQPSK OFDM if there is enough horsepower left over… dunno.

There is a ‘link’ SPI port on the PCB so that multiple PCBs can be linked together and share compressed data for a ‘system’.


I wanted to make this cheap . Basic BOM should be less than $30 …So it is a little modular- you can put everything on or very little on.  I have used nothing smaller than 0603 size , and I also have landed it on a double sided PCB to return proto and pcb costs.  Having a fast processor on a double sized board takes alot of care with bypassing and ground bounce, and putting too many breaks in the ground plane in critical spots.  In fact in commercial world it would be false economy to spend 4 hours extra painstaking time  dealing with the 2 sided approach when I could spend an extra $150 during proto and use a 4 layer… I would be happier on 0.8mm FR4 but I think 1.6mm FR4 will be better suited to the audience.  The 0.8mm thick PCB would be about half the via inductance.

I am using the Cortex M7 (STM32F) as it is a real ‘ball tearer’ in the processor department . It is a little more complex to use in the memory department than the ‘F4 oh but the speed… Also the usual stuff is there- USB programming, JTAG, opto isolated interfaces for PTT/ signalling, GPO. A few extra jumpers, pins brought out, 8x LEDs.

It is designed to fit in an off the shelf Hammond extrusion box # 1455J1202 box

I started off with using the internal ADC, DACs for all the analog IO. I used  Cauer filters to get nice flat group delay over the passband, while giving me just the right amount of aliasing protection.  I used a 5 section on the analog inputs because these could see up to 8-10kHz of audio with relatively low sample rates (32k),
The Cauer (Elliptic filter) enables me to get a nice flat group delay and passband, important. A butterworth or cheby wouldnt cut the mustard.

But as I started laying out the PCB with all those filters (4 x quad opamps) , wow that’s alot of passives…. So I went down an alternative route.

I used a cheap $3 codec chip . Why ? Well they have a sigma delta stereo ADC/DAC, and the sigma-delta converter means I can essentially forget about the need for aliasing filters.  Viola nearly no analog circuitry !
This also means I have lots and lots of SNR and dynamic range which is better to handle the various IO….

The STM32F7 processor has a really nice new peripheral- a ‘proper’ audio codec interface, – the SAI. … not the half baked I2S like it used to have. Now DMA is easy, 24 bit audio is easy etc etc.

There is the option for using the switched mode supply or an analog LDO for the 3.3V.

So I spent a full day and a half on it and it is ready to go… (yes I do this for a living).

Tooling strips are on it if anyone wants to have them machine loaded but I will just put them components on myself for the two I need.


Now I have thought of one more thing to add….

A GPS receiver might be handy for those that want it… So that, there is the potential for time-stamping received audio so that at the other end, multiple signals can be voted upon with different link latencies. OK I will try and jam one of those on one corner.

(updated) GPS receiver now in…..





Posted in comms | Leave a comment

Cyclist’s Black Box

A road cyclist’s next problem after he is hit by a motorist  is that the motorist gets away scott-free when fault is theirs.  I’ve been stewing on this project for 3 years now, lacking the time and money to put it into reality. Sooner or later I think I will probably get swiped and I want court admissible evidence to back up my story. So now is the time.


I am looking for general interest to find out whether I am just a bit too serious about all this, or if there is a genuine need for such a device that I have to this point produced a concept prototype.

The functionality is as follows :

  1. High quality video and audio for 5 seconds before and 5 seconds after the impact. 25 frames per second progressive video provides for highly granular history.
  2. All movements 5 seconds BEFORE and 5 seconds AFTER  the impact are recorded in high detail (by accelerometer)  so that the direction the cyclist was hit from, the impact force, and the trajectory post impact are all available for analysis and re-creation.
  3. Impact detected by 3 axis accelerometer triggers the storing into memory of the previous 5 and next 5 seconds of video, audio and acceleration forces.
  4. GPS for location and time fix
  5. Encryption of evidence in flash to prevent data tampering.
  6. Minimal video compression to provide for high zoom without degradation of image.
  7. To be located underneath saddle between saddle rails- this is probably the most solid part of the bike and is also rigidly attached to the rest of the bike (important to transfer forces accurately)
  8. Size – about 2 x matchboxes (or less) and waterproof.
  9. Battery life : 12 hours. charge via non-contact charger .
  10. two tiny cameras with 180 deg lens take care of side and rear impacts
  11. forward looking 180deg FOV  camera  (1/2″ cube) must be located up front – no other way to get a good forward look.
  12. No on-off switch- movement activates system.
  13. Single ‘trigger’ button to take care of stationary altercations.
  14. Price sell for $250 or less ? I am not trying to make any more out of this, I would like though to see justice for riders that have been killed by motorists.

Recently,  devices with low enough power consumption have become available to make this a reality. In order to compress the video with virtually no compression artifacts (so that, for example a license plate can be zoomed in) , a large amount of memory must also be provided.  This memory is always storing the past 5 seconds of action, and is written to flash memory upon the trigger.  This memory requirement puts a base on cost and complexity. There are chips like Ambarella in the Go-Pro that can do the compression almost well enough but with too high a power consumption, and also there is a $250K pay-to-play up front fee for this sort of device. I choose a Xilinx FPGA which I can develop for a moderate cost .

I have considerable experience with all the electronic development aspects of this project, I possess all the expensive tools to make it go  but I lack skills in selling the concept, so I am all ears when it comes to suggestions partnering. I’ve built a basic prototype but to progress this I would like to see what interest there is.

What is important is the ability to present the data and it be beyond a reasonable doubt that it is accurate and untampered. I suspect a motorist, knowing that if an impact with a cyclist went to a court of law, if the evidence was to be so solid, they make a greater attempt to avoid the incident.

Maybe Garmin or someone will take it on, not sure, I’d be happy to talk to anyone who would like to bring this to fruition.

Posted in Cycling | 6 Comments

Stabilised universal references for precision radio work

I developed a GPS stabilised frequency reference that goes about disclipining an oscillator in a different way than most.  It can also function as a stand alone WSPR beacon.
The power point file is available on this site named ddsref.ppt  (link below)


We will get a bunch of boards loaded for sale in the next few months. I have a handful of V1.0 blank PCBs (double sided, silkscreened , masked) if anyone wants them.

Additionally, Inspired by other’s work, (VK3WRE/VK3ZYC), I will develop a very small and thin low noise DDS clock generator that uses a 10 MHz input and provides auto switchover to internal. It can generate ANY frequency for any radio.  This can work in conjunction with any external timebase, 10 MHz being a standard. It will also fit in an FT817 without removing other plug in boards.

demo setup for universal frequency reference – $4 oscillator is on the lower LHS.

Posted in comms | 10 Comments