was successfully added to your cart.


K40 Laser cutter

By | Carpentry, Electronics | No Comments

K40 Laser and Cohesion 3d mini review part 1

This is a journal of my experience with the K40 Chinese laser. I bought this after the need to produce small bespoke ply components for some of my other projects. Realising a UK machine was well out of my price range my attention was brought to the K40 through EBay.

After much research, I realised there was a great community surrounding these machines and a wealth of additional knowledge regarding upgrades and tuition. So, I took the plunge and ordered one. I paid around £289 including a free waist belt? Wtf? from a Chinese seller that had a warehouse in Germany. Around 3 days later the waist band turned up…ive no idea why they do this but my guess it’s something to do with customs/duty? Initially I thought id been conned but emailed the seller who said the laser would shortly follow…around the 7th day it did…This is my K40 Story.


Box arrived well wrapped and protected – it looked like the box had taken a couple of knocks in transit but all looked ok inside…

Now upon inspection I discover a catalogue of faults and damage…as I almost expected this and was capable of fixing lots of it I didn’t take this up with the seller. If you’re not prepared to get stuck in and fix these up…id suggest not buying one, you absolutely get what you pay for here and some of it is really eye opening.

Firstly, relief that the tube appears to be well protected and there are no visible cracks…before powering the machine up I discover..

  • Out of square gantry that I can only guess is a manufacturing defect and not damage/twist etc
  • Bent controller off stand easily fixed by removing and bending back.
  • All the hex screw heads were sheared off from my guess of overtightening cheap metal.

The general quality of the machine is very poor but what do you expect from a sub £300 laser that’s equivalent would cost thousands in the UK.


Pay some thought to where you are going to keep your laser. You will need at least 4 plug sockets, relatively close to natural ventilation and a level work surface with spare room for your laptop/tools etc. Im a carpenter so I easily knocked up a table with some scrap ply. A nice job to do when your waiting for your machine to arrive.


Please, Please visually check all of the connections under the chassis lid I noticed some of mine had come loose and there was a live wire drifting about from one of the switches. The terminals should ideally be covered in lots of silicone. EARTH EARTH EARTH! The next important step is to earth the machine the PSU kicks out I believe around 20-30 thousand volts and you don’t want that mixing with your ticker. I ran an earth cable back from the earth screw on the back of the machine into the earth of the socket that the laser is plugged into. (If this is wrong please advise) Ive heard of people using external earth rods?

Air and Water

The next job was to get the ancillary (pump and air assist) extras up and running. I searched the house for a convenient water container and settled on a 20l coolbox. I drilled three holes for the inlet, outlet and power in the lid and placed the pump inside the box and filled with two thirds with tap water. Yes, I know you’re supposed to use distilled water but I didn’t have any and I have no patience J

I started the pump and kept an eye on the laser tube expecting to see leaks as the water flowed through…no leaks but plenty of air bubbles. I was worried this was a sign of cracks in the tube but after trying numerous methods of getting rid of these some violent shaking and tilting almost vertically of the machine and they all disappeared.

I fitted a 3d printed air assist nozzle brought from Ebay to a cheap aquarium pump total cost about £30 including the telephone coil hose. If you look in the top left corner of the cutting bay you can see a small hole to thread the hose to exit the rear of the housing and attach to your pump. I then plugged the pump into the Lasers rear plug sockets.


The air extraction unit provided with the machine is a joke…so is the method of pulling the air through the cutting bay. I’d heard of many methods of dissembling the gantry to remove the annoying air duct, cutting the rear of the machine and peeling back the metal to pull it out. Or you could do what I did and just dived straight in with a 4” grinder and cut it straight out. There will be sparks everywhere as they bounce of the inside of the cutting bay but don’t worry keep your goggles on and you’ll fly through it no time J

Now…I am very likely to be just cutting wood/mdf so I believe the best method of extraction is to leave the lid open and use air assist, im not too bothered about the smell of burnt wood in the workshop. Please don’t do this if you are cutting acrylics as ive heard it gives off a very toxic fume.

And please if you’re keeping the lid open use laser safety goggles!!

Now I was ready to test fire the laser….

Software and laser testing/mirror alignment

CorelDraw and the CorelLaser plugin were the most clunky awful programs to use. After being used to Illustrator and CAD I knew I wasn’t going to get on with these. Why on earth do you need to plug a USB cable in to use the software!!??

I went straight ahead and ordered a cohesion 3d mini from here http://cohesion3d.com/cohesion3d-mini-laser-upgrade-bundle/

Before ordering I did do one test cut in Corel Laser and I was really pleased to see the laser cleanly cut through 4mm laser ply. I am presuming the I don’t need any mirror alignment so im going to skip over this but there is a great tutorial here if you need to do yours.

Cohesion 3d upgrade

I ordered my board from the US and it arrived 3 days later in the UK with a £25 customs charge. Nothing you can do about that but just be aware. I read as much documentation as I could from this great wiki here. The board doesn’t exactly just swap out for the old one…or at least in my case. There seems to be several different PSUs on the laser and you need to define which is which. My PSU has the screw terminals some have JSTs. You can see my setup here.

My Cohesion settings json file contents below –




Size Menu

X-length: 300 mm
Y-length: 200 mm
Laser Beam Diameter: .15 mm
Cutting Mat Thickness: 0 mm
Air Assist Noxzzle: Disable

Default Import DPI

Generic SVG: 72
Inkscape: 90
Illustrator: 72
Bitmap: 300


Optional entries (Opt) are ignored for now
Concatenate Raster x Moves: Disable
Start G-code: Opt
Laser ON Command:Opt
Laser OFF Command: Opt
PWM max: 1
Homing sequence: G28.2
NOTE: G28 will not home corrctly insure you use G28.2
End Gcode: Opt
Travel Moves: 100 mm/s
LaserTest Power: Opt
LaserTest Duration: Opt

Tool Menu

Safety Lock: disable
CNC Cam: Disable
My JSON backup file for LaserWeb




By | Arduino, Electronics, Engineering, Surfing, Weather | No Comments

Featured on instructables here http://www.instructables.com/id/WAVEbuoy/

The WAVEbuoy is a arduino lamp connected to the internet that displays the current wave height of any of the National Data Buoy Centre’s wave buoys.

This lamp is currently connected to the Sevenstones Lightship buoy that gives an indication of swell approaching Cornwall in the UK. The lamp can also be connected to any surfing location covered by magicseaweed.com

RED – High surf alert

GREEN – Medium swell

BLUE – Low swell

Parts needed:

  • Arduino UNO & Ethernet shield
  • Light bulb like this one Link
  • 3 Colour RGB SMD LED Module Link
  • Breadboard
  • Jumper wires

The case….its up to you how you encase it. Im a carpenter by trade and i had the ability to use some scrap pieces of oak. You could house it in all sorts of ready made boxes or lamps. The white dome on top is a light bulb that i have cut in half.

Ubidots ISS

By | Electronics, Engineering, Programming | No Comments

I discovered the really cool ISS live stream recently. I thought it would be good to show my son on his raspberry PI and make an alert light/sound when it was over our home see if we could see it.

I looked at making a Google map with their API then discovered Ubidots. An Internet of Things innovation for maker. Not knowing a thing about CURL i followed some of their examples in the docs and thought id document my progress here.

Step 1. Open an account and follow these tutorials here http://ubidots.com/docs/get_started/quickstart/tutorial-collections.html NOTE* I tried and failed using the CURL Windows package install and use Cygwin to execute the commands. This allowed me to get a basic understanding of Ubidots.

Step 2. I then moved on to http://blog.ubidots.com/live-tracking-the-international-space-station where i plan to develop the code to trigger a light or sound when the ISS  is nearby our given location. The original code is below and i didn’t really know where to start with it,  i emailed Ubidots support who replied super quick that it was a python script that would need to be run locally with Python 2.7 which you can download here

Step 3. Once you have installed Python on your machine (mine was Windows) You have to install an additional ubidots API client package from here. I again used Cygwin as it just seems to work better using this command.  If you are copying and pasting the command remember to omit the dollar sign!

$ pi install ubidots==1.6.1

Step 4. Sign up for an account at Ubidots and get your API key found in your profile in the left hand menu. Make a note of this

API Key 364d3bd15af284a95a4cc0cd4fd907bf25301366
Token ftL4B1gzPmFzoch08ZaVs4elPYMDym

Step 5. Open up Cygwin and request a token by using this command. Make a note of it in Notepad* Ive noticed you can request an auth token when viewing your API key in your profile too

curl -XPOST -H "X-Ubidots-ApiKey: fee9a80a51d6523cd41bbec803b9f97850e7673a" http://things.ubidots.com/api/v1.6/auth/token

Step 6. Go to Ubidots and create a new source, call it something like ISS tracker. Then create a variable of that source named Local Distance. Hover over the ‘I’ circle on the top right of the box and make a note of the variable ID 54c9552b76254241a053980e

For control variable – http://translate.ubidots.com/api/postvalue/?token=sbyKW29lNkm1YlM2haxxvEl10EfCUxrF04gw9c1eBiLrq6CGYRAZgqAwRTBn&variable=54ca56747625421b373d7bd3&value=1

Step 7.You now have the crucial info to set up your alert. Replace the api = ApiClient value with your API key. Replace the = api.get_variable with your variable ID above

Change the my_lat = 42.3581 my_long = 71.0636 to your location heres an easy way to find them out http://www.latlong.net/


By | Arduino, Electronics, Engineering, Surfing | No Comments

SURFalert is my first standalone Arduino project to help visualise a surf forecast for any location covered by Magicseaweed. The standalone system (doesn’t need to be connected to a computer) uses a open source Arduino controller and Ethernet shield to connect to the internet parse some XML data and display the current and forecasted conditions using a series of different coloured LEDs.


By | Electronics, Engineering, Surfing | No Comments

WAVEcopter is a fully waterproof multicopter frame that I have constructed mostly from readily available and cheap electrical parts. My reasons for building it were to gain a new perspective on surfing photography, do aerial surveying of event sites, and to satisfy my general fascination with robotics and aviation.

Swell Dials

By | Arduino, Electronics, Engineering, Programming, Surfing | No Comments

This is an arduino project to visualise ocean data wave height/swell period & local wind from any surfing location on magicseaweed

Simple Client Parsing sketch
 Arduino 1.0 version
#include <String.h>
#include <SPI.h>
#include <Ethernet.h>
#include <Servo.h>
Servo swell;
Servo period;
Servo wind;
byte mac[] = { 
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
char serverName[] = "festivalnet.co.uk";
EthernetClient client;
int swellval,periodval;
String readString = String(3);
void setup()
  if(Ethernet.begin(mac) == 0) { // start ethernet using mac & IP address
    while(true) // no point in carrying on, so stay in endless loop:
  delay(2000); // give the Ethernet shield 2 second to initialize
void loop()
  client.println("Refresh: 86400");
  if (client.connect(serverName, 80)>0) {
    client.println("GET http://magicseaweed.com/syndicate/rss/index.php?id=1&unit=uk ");//If a connection is made get in the desired page
    //client.println("GET http://festivalnet.co.uk/surf.rss");
  if (client.connected()) {
    if(client.find("Swell :: ")){//look for first rating and store the result to day1
      swellval = client.parseInt();
      swellval = map(swellval,0,12,0,180);
    if(client.find("@ "))
    {//look for second rating and store the result to day2
      periodval = client.parseInt();
      periodval = map(periodval,0,14,0,180);
    {//look for third rating and store the result to day3
      char c = client.read();
          if (readString.indexOf("NNE")>=0)
          if (readString.indexOf("NE")>=0)
          if (readString.indexOf("ENE")>=0)
          if (readString.indexOf("E")>=0)
          if (readString.indexOf("ESE")>=0)
          if (readString.indexOf("SE")>=0)
          if (readString.indexOf("SSE")>=0)
          if (readString.indexOf("S")>=0)
          if (readString.indexOf("SSW")>=0)
          if (readString.indexOf("SW")>=0)
          if (readString.indexOf("WSW")>=0)
          if (readString.indexOf("W")>=0)
          if (readString.indexOf("WNW")>=0)
          if (readString.indexOf("NW")>=0)
          if (readString.indexOf("NNW")>=0)
          if (readString.indexOf("N")>=0)
    else {
      client.stop();//else disconnect


Here is the illustrator file for the gauges that im planning to be laser engraved https://www.dropbox.com/s/kqlo390j8pi5dgo/guages.ai?dl=0

To test the design I printed the dials onto t-shirt transfer paper and ironed them on to some 18mm MDF that i had lying around.


I also added a LED to blink once optimum surfing conditions are happening


Rear view of the mdf showing cutouts for the 3 x Tower Pro micro 9g servos, the wind direction indicator is a FSR90 continuous servo to allow 360 rotation.


It is still in development and ill update progress here