My Diligent Pynq FPGA Board

It’s been a while since I posted on here but wanted to start a new topic off. I recently was lucky enough to Roadtest out a Digilent Arty S7 FPGA development board on behalf of Farnell/Newark Element14.  Well that got me really interested although I found the Verilog/VHDL aspects quite difficult….then I became aware of the Pynq board. This board apparently can be programmed using Python to describe the blocks and this is what I want to talk about on this blog.


Arduino Nano – test

Due to piling boxes of electronic components, cables and other assorted tech stuff up on my shelf I suffered from a large amount of it sliding off and falling over my work space. One of the main victims was my Arduino Nano which had several of the header pins bent.

After straightening out I uploaded a simple test code to make sure the unit still worked:

 Turns on an LED on for one second, then off for one second, repeatedly.

This example code is in the public domain.

void setup() { 
 // initialize the digital pin as an output.
 // Pin 13 has an LED connected on most Arduino boards:
 pinMode(13, OUTPUT); 

void loop() {
 digitalWrite(13, HIGH); // set the LED on
 delay(1000); // wait for a second
 digitalWrite(13, LOW); // set the LED off
 delay(1000); // wait for a second


Making a 3D Printer (cheaply) – Linear Bearings

This page is to record all my detail and findings on using linear bearings (good or bad).

Using 8mm rod salvaged from old printer/scanner:

This rod measured 7.98mm diameter.Its leading edge was chamfered and it was lightly oiled with a low viscosity oil.

Cheap Ebay LM8UU 8mm bearings.   There was a high level of friction which decreased after working the bearing back and forth. This however grooved the 8mm rod. I raised this with the Ebay seller who instantly offered me a refund and said they would inform their suppliers…top marks to that seller. A few days later whilst inserting the rod for other tests I ended up with some small ball bearings in my hand !

Hot Melt Glue.    I extruded holt melt glue from a gun directly onto the 8mm bar and when it had set I gave it a sharp tap to free it. Initially it seemed to work really well with little friction. However when left standing for an hour or so the friction increased dramatically. After it had stood overnight I couldn’t budge one of the test pieces. I can only assume the glue absorbed some of the oil and swelled. After freeing up the friction dropped back down again.

Glass Fibre and Hot Melt Glue.   Wrapping a small amount of glass fibre plasterers scrim (which is what I had available) around the rod, making sure the self adhesive side faced out, I was then able to add a layer of hot melt glue. This worked well and didn’t appear to ‘swell’ up like the pure hot melt glue bearing did. I also made a test pice by potting the above sleeve into a short length of copper pipe using epoxy resin.

Polyethylene (PE) Sleeve.   I took some from an old milk carton as I know that stuff has a low friction coefficient. I initially tried wrapping a slither tightly around the 8mm bar and adding hot melt glue. This didn’t stay tight and the hot melt glue didn’t adhere to the PE very well. I tried super glue….which didn’t take at all (that’s a good sign).

Then I tried heating the PE after wrapping around the 8mm bar. This was in varying degrees of success and needs looking at further. The PE melted on some to make a good bond to the layer below. Sometimes on cooling the PE sleeve was too hard to move.

My last attempts were using a sleeve of PE wrapped around and melted using a hot blade (heated in a candle flame). This held the PE slither at the correct tightness to the 8mm bar. I then wrapped around some glass scrim (as that stuff doesn’t stretch) and coated that with some hot melt glue.

This sleeve has low friction and doesn’t have any noticeable play. and other notes to follow.

The rest of my 3D Printer build can be found here


Making a 3D Printer (cheaply) – pt 2

The parts ordered from Ebay kept arriving and the only bits still outstanding are the 8mm steel rod which unfortunately is needed quite early on.

I cut an old sheet of 15mm Medium Density Fibreboard (MDF) to make the frame and a large base sheet and used wood glue, screws, clamps and Gripfill to joint it all together. As MDF has very little strength to resist splitting when screws are driven into the sheet side on I made sure all were drilled with a suitable pilot drill. I also used very coarse thread screws – they were plasterboard/drywall screws. I also added some 4″x2″ sawn timber to add weight and stiffness to the frame. To add further stiffness I added some triangular fillets to the back of the frame (as seen below).photo_2017-02-22_15-08-07

I had planned to use simple aluminium angles to hold the 8mm smooth bars at the correct height but soon realised that fixing them directly to the baseboard would give me little allowance for fine adjustments. I realised that the original Prusa i3 with its threaded rod was the way to go…but I didn’t have access to a printer to make the corners. Instead I decided to use some old scrap 25mm box section steel (bit rusty) to make the corners. These looked like this:


I ensured the bottom face was filed perfectly flat. Then I measured from the bottom face to centre punch and drill the holes. As the steel is about 2.5mm thick I drilled each face rather than drill through both faces (as this can cause the drill to wander). The final holes are 10mm diameter to accommodate the 10mm threaded rod. The shorter bars are 250mm and the longer ones are 500mm. I bought the threaded rod from a UK shop called Toolstation

I still need to slot the tops to accept the 8mm smooth bar – which still hasn’t arrived.

The whole frame for the Y-axis, loosely assembled, looks like this:


I’ve also started to look at the print bed – I’ve used a square of 15mm MDF for a start and mounted the 15mm pipe clips on all four corners.

I had a 8mm rod from an old scanner and chamfered the end and lightly oiled it before putting it into one of the LM8UU linear bearings. I was upset to find they didn’t run anything like as smoothly as I would have hope or though they should. After a few passes they became easier to move but I then noticed the rod was getting badly grooved. Searching the internet it would appear this is a common problem – I wish I had bought some bronze bushes instead. Therefore, trying to keep the costs down I tried to improvise a linear bearing. I made one from hot melt glue and it seemed to work fairly well (centre/right below).


I also tried wrapping some glass fibre skrim around the rod and them adding hot melt glue. This also had a lower friction than the LM8UU bearings. Finally I tried potting hot melt glue into a short length of copper pipe. These were accurate and at first appeared to move freely. However after being left for a hour the friction increased vastly and they were difficult to move at first until the friction was broken. I wonder if the hot melt glue absorbs the oil off the rod and expands slightly ?

Also see Part 1 of this build






Making a 3D Printer (cheaply) – pt 1

Aim: to build a 3D printer with my daughter. We don’t currently have one, don’t know anyone with one and have never used one…therefore we might have a few difficulties to overcome but here goes.

I had already heard about the great RepRap movement and straightaway decided to utilise that vast community to ensure our build was cheap and easy. Looking at the RepRap wiki pages we soon decided on the Prusa i3 and looked at how it was built. We particularly like the box frame version as shown in the picture below ( from the RepRap wiki by Bitflusher ) see


This would be a really good start as we have a half used sheet of MDF that needs using up. We scoured Ebay and Amazon for the bits we needed always thinking of alternatives. Our plan is to cobble together a working printer and then print to parts to improve it – a self-improving 3D printer. Parts orders so far are:

  • 8mm steel bar
  • GT2 belts and 2x 12 tooth pulleys (X and Y axes)
  • 10x LM8UU Linear Bearings (for X,Y and Z slides)
  • 2x 624ZZ bearings (for X and Y tensioners)
  • 5x NEMA17 stepper motors
  • 1x RAMPS 1.4 system, Arduino and LCD display
  • 40W/12v ceramic heater (for hot end)
  • Thermistor
  • 1x 1.75 to 0.4mm brass nozzle
  • 1x M6 Pneumatic connector (for hot end)
  • Some 4mm OD and 2mm ID Teflon tubing
  • 1x 16T GT2 pulley
  • 1x 60T GT2 pulley
  • 1x 180mm GT2 belt
  • 1Kg of PLA filament (1.75mm black)

We still need:

  • A decent 12v Power Supply
  • Heated Bed
  • Assorted bolts, nuts, screws, threaded bar

The first few bits have already turned up….


Ideas so far are:

  1. to use a large piece of MDF sheet as a base for the 3D printer, to use wooded blocks as risers to take the two Y axis smooth rods.
  2. to finely sand to a polish the cheap, mild steel rods. Ensuring they are chamfered and oiled prior to inserting into the linear bearings.
  3. 15mm plastic pipe clips are ideal for holding the linear bearings.photo_2017-02-18_16-46-02.jpg
  4. can’t get the geared cogs built for the extruder….so will try to use some more GT2 pulleys to creat the precision and torque required.
  5. using the ready-made RAMPS is far easier and cheaper than designing, etching PCB, building and programming up my own.
  6. going to try to make most of the hot end from scratch.
  7. going to make the extruder from scratch using scrap metal/wood and making our own hobbed bolt as required. Plan to case harden it.

Every part for the Prusa i3 can be bought but doing so will likley add lots to the overall cost.

Will keep taking photos of construction and posting here should anyone like to also make their first 3D printer as cheaply as possible.

 Please also see my other progress blogs for this project by clicking here

Update On 2016 Starburst Lights

Happy New Year.

Adhering to my ‘low cost’ approach I ended up wiring the lights with a mismatch of old electrical cable and 8-core alarm cable, terminal blocks and insulating tape. All units were run using 5v from several linear regulators (7805).

I’d put my lights up early and had about two weeks before Christmas. It was around the two week time that, after some foggy and cold weather, I noticed a single, end of line pixel was remaining illuminated. I could turn the mains supply to the regulators off easily and that cleared the fault only for it to come back minutes or hours later. Finally the fault cleared completely which was strange. With the units secured into the tree with Jubilee Clips I just lived with the fault rather than get the ladder out, fiddle with them and make the fault worse.

A few days between Christmas and the New Year another star developed a faulty pixel, but this was nearer the start of its run of 10x pixels and took most of that leg out. Again I could turn the power off and back on and often it reset properly.

A few days after new year I climbed up, marked the offending positions with red tape and then took all the units down, dried them off indoors and tested again. They all work fine. I then removed some of the silicone to inspect the joins but they too look OK still.

One of the faulty units was a version where I painted all bare connections prior to the silicone sealant 2nd coat. The other was the initial black silicone/clear silicone version. I can only assume for both that water/moisture ingress caused the fault. Flexing the wire doesn’t replicate the fault so it likely wasn’t a dry joint.

The Best Bits

Having a family stop at the end of my garden one evening to say their children really liked the lights.

When up the ladder taking them down a lady slowed her car down, wound the window down and told me how much she/they had enjoyed looking at them each night.

For Next Year:

  • Add extra weather protection – perhaps a clear tubing over the top.
  • Actually spend some money on the power supplies and distribution cables/connectors.
  • Make some more units – 3+1 wasn’t enough !
  • And although I liked the unmanaged approach of self-contained units I missed being able to change what they did once they were up and running. Therefore next year I may change them into DMX512 controlled lighting. Coupled with the fantastic Vixen 3 software I could so a similar starburst, synchronise the stars, change the colours to match etc. To this end I’m already looking at testing out some RS485 comms chips from Texas instruments.


Christmas Fireworks

I’ve done it, I’ve actually managed to make three of those new Starburst units. They run the same code but with an additional line in each compile of the assembly to run the random number generator again.stars_tree

I’ve posted a video on Youtube here which shows the three starbursts, along with last year’s star effect (and the fact I can’t operate/edit a camera very well ! )

I hope you enjoy it.

I’m trying to make some other more basic stars to add extra colour/effect. These will be using RGB strip LED and illuminate as one single star.

I refined my build technique as they progressed and found black gloss paint was a good way to seal around the WS2812 LED PCB dies prior to mounting with clear silicone sealant…..but only the next month will prove how well that has worked.