Planet Nottinghack

19 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

Tigris and Euphrates counters

The digital version of Tigris and Euphrates keeps track of how much power each token has connected to it. I wanted to make similar counters for the physical version of the game, they needed to be the same size as the existing tokens but able to display the numbers 0-19.I've made gaming counters previously and I didn't really like the deep recess down to the numbers so I went back to the drawing board when designing these. 

The top layer has to be as thin as possible so it's made from 0.8mm birch. The magnet has to be stuck into a layer underneath and the numbers have to be drawn on a ring attached to a third layer to bring it back up to the same height. The tokens were painted in the appropriate colour and then engraved lightly which left the wood slightly stained in the right colours. (svg here)

by (Martin Raynsford) at 19 February 2017 09:22 PM

18 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

Tigris and Euphrates Monument 2

While looking up the original monuments for the Tigris & Euphrates game I discovered the game is due to be released again with slightly different monuments. I made a series of Aztec style monuments for the game instead. The walls for the steps were made using 0.8mm birch and the steps from 6mm poplar (svg here)

by (Martin Raynsford) at 18 February 2017 08:58 PM

16 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

Tigris and Euphrates Game play

With a range of new pieces all that was left to do was play a game. The counter tokens work surprisingly well you just have to remember to modify them each time you lay a new tile but it quickly becomes habbit. The aztec temples go well on top of the existing tiles and quite literally add a new dimension to the board.

by (Martin Raynsford) at 16 February 2017 02:16 PM

15 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

Tigris and Euphrates Monuments

We bought the Tigris and Euphrates board game for a friend but it was missing the monuments, move forward 14 months and I finally got round to laser cutting a replacement set that look like the originals. These were cut from 12mm ply and painted to the right colours, they're functional but I should have done a better job on painting. (svg here)

by (Martin Raynsford) at 15 February 2017 09:12 PM

Lampshade Adaptor Ring

The laser is useful even for silly little things like this lampshade adaptor. It's an ikea lampshade and I've totally failed to buy an adaptor on my last two visits, this time I finally got one and it disappeared in the car on the way home. 2 minutes of drawing and cutting later and I've solved the problem. Should have done this ages ago :)

by (Martin Raynsford) at 15 February 2017 08:30 PM

14 February 2017

Iain Sharp

LushOne Synth – Briefcase Install

Just a short video about the installation of my LushOne synth system in a briefcase to make a really neat, and unique, portable modular.

by Iain at 14 February 2017 03:01 PM

06 February 2017

Steve Barnett hackergotchi for Steve Barnett

New Site With Pelican Static Site Generator

You may noticee that this site now looks completely different.

I decided that I was bored of paying for an AWS instance to host WordPress, and restarting PHP when it crashed, and so on. I also got tired of the massive stall when my tiny AWS instance struggled to create a new post.

I've been thinking about writing my own static site generator for a while, but I didn't want to commit the time to it when there are more interesting projects and it's something that's been done before.

After a bit of research I decided I'd try out Pelican. I'm a fan of Python anyway so I'm right at home editing the config files and I know what I'm doing if I need to make any tweaks. I've played with reStructuredText when writing documentation at work so I know the appropriate syntax for writing content too.

Even better it supports importing from WordPress. I did have to make a few tweaks to remove some markup that didn't convert correctly. Fortunately that was a one off job and it became trivial with the aid of some simple vim macros.

There are probably a few more issues I need to sort out but I'm happy enough with the current state of the site that I've switched it over to the Pelican version.

There's no commenting supported yet. I might bring over the archived comments at some point by appending them to the appropriate posts. If I decide to enable comments again I'll probably try out Disqus unless I find a better alternative.

I'm currently hosting this on GitHub pages. We'll see how that pans out, but I like git and it's free, so seems like a winner so far!

I realise that I've namechecked a bunch of marmite software that will make some developers howl with joy and others with rage. Maybe it's for the best that there is no comment system yet!

by moop at 06 February 2017 08:57 PM

05 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

Hex Terrain Fulfilment

I have alluded to being pretty busy recently but I have now finished and here are the fruits of my labour. I have done the fulfilment for the Hex Terrain Toolkit for the very successful kickstarter campaign. 260 sheets of Poplar plywood cut into toolkits ready for shipping to backers. Changing the wood over every 15 minutes for the last 3 weeks has been long and tedious but there is quite a sense of accomplishment when you complete something like this.

by (Martin Raynsford) at 05 February 2017 05:14 PM

01 February 2017

Martin Raynsford hackergotchi for Martin Raynsford

DIY Heng Lamp

I was quite taken by this Heng Balance lamp I saw on kickstarter so I decided to make myself one. I wrote an instructable about the process and sharing the files. It's pretty straight forward and now it sits happily on my wife's desk.

by (Martin Raynsford) at 01 February 2017 08:39 PM

21 January 2017

Martin Raynsford hackergotchi for Martin Raynsford

Pi Case Take 2

Here is my first shot at a Raspberry Pi case, I took the mechanical drawings from the Pi website and used it to calculate the positions of the mounting holes and overlapping items. The Pi is held into the case with some screws (that aren't really necessary) I put some nice rounded corners onto the top and the whole top cover just clips into place so no screws.

The HDMI holes could be smaller and the power connector hole could be smaller too. It doesn't have GPIO slots yet but I'll add those as and when I need them. Now to get playing with RetroPie

by (Martin Raynsford) at 21 January 2017 02:44 PM

20 January 2017

Martin Raynsford hackergotchi for Martin Raynsford

Rasp Pi Case

I'm slowly catching up with the cyber and I now own a Raspberry Pi 3. I knocked up this case and put it into my machine to see what I liked/disliked about it. It's taken from a thingiverse case and it feels like it scaled wrongly but it's functional.

I've been cutting a lot of parts for someone else recently, running the machine for 12 hour days. Eventually I shall have photos of the massive stack of material building up in the garage but for now I keep squeezing these little projects in between other cuts. Now I'm off to make my own case.

by (Martin Raynsford) at 20 January 2017 09:37 PM

16 January 2017

Martin Raynsford hackergotchi for Martin Raynsford

Christmas Light winder

I've got a couple of strings of WS2811 LEDs that I use for Christmas lights. They've been floating around the garage since I took them down at Christmas and they keep getting tangled up so I thought it would be handy to cut a couple of winders that I can wrap them round. There are definite improvements that could be made but I only had one shot in a busy week of laser cutting so they came out pretty well.

by (Martin Raynsford) at 16 January 2017 08:39 PM

01 January 2017

Martin Raynsford hackergotchi for Martin Raynsford

Carcassonne Cults with drawing

I always said I wouldn't do any Carcassonne expansions after the main set took me 200 hours to draw, but I always wanted to try the Cult expansion tiles and I had a few hours free while waiting for the new year. For those that know Carcassonne cloisters have an unfortunate habit of clustering together. The cult acts exactly the same as a cloisters but if you place it next to a cloisters the first person to complete gets all the points and the other person gets nothing.

It was just a manual trace and draw operation which I did with all the other tiles but I thought it might be interesting to screen cap the process so here is the video of me drawing the tile in inkscape and you can see exactly what goes into it. It's 90 minutes of drawing compressed down into 5 minutes of video. If this is interesting for anyone then please let me know and I'll happily do some more drawing videos like it.

by (Martin Raynsford) at 01 January 2017 07:32 PM

30 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Seed Packet with Print Alignment

The kids grew some pretty epic sunflowers over the summer and we harvested the seeds to grow some more next year (third year running actually). We decided to share the seeds with people for Christmas and I laser cut a load of packets to go with them. The details were printed onto the paper with a standard laser printer, as you can see from the close ups the cut lines were incredibly close to the printed lines. The trick is to let the laser cut a hole to show you where to put the sheets of paper.

by (Martin Raynsford) at 30 December 2016 10:08 PM

25 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Cephalopod Dice Game

I ran across this game called Cephalopod on the Mark Steere Games website. It's a fun two player game that doesn't take too long to learn. I built the play area with indents to hold the dice in location and I build a tray underneath large enough to hold all 48 die, I put a little spacer into the tray to fill the void where the 49 die would be and to stop them rattling around. (svg here)(rules here)

by (Martin Raynsford) at 25 December 2016 10:35 PM

23 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Merry Xmas Everybody - Slate

Slate is one of the materials that I knew could be laser engraved but I just never got round to doing it (I've had some slate coasters for years but we have a functional old table and don't use coasters). So when I was asked to do a house sign I jumped at the chance. It's a simple design but it came up lovely. I even marked where the holes should drilled (but decided not to drill it myself). The best thing is that I was sent 2 pieces of slate in case of accident and I got it right first time so now I have my own piece to play with (or leave on the shelf for years with the coasters).

by (Martin Raynsford) at 23 December 2016 10:01 PM

21 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Christmas Baubles

I wanted to up my game and make some really fancy tree decorations this year. Laser cutting is very popular this year but a lot of the designs you can buy are just cut straight onto laser ply. I opted for real woods this year, 3mm thick, Spruce, Bass and Mahogany. I test these in ply and then cut them in wood and realised that the best way to make them stand out would be multiple woods in each design. With 3 base colours I could also mix and match a few designs.  (svg here)

As you'll have noticed the blog is a bit slower than it used to be while I work upon the vanillabox but there will be good things coming in the new year, so until then merry Christmas and a happy new year. 

by (Martin Raynsford) at 21 December 2016 09:20 PM

19 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Rotational Symmetry Line Drawings

I recently saw someone using the Amaziograph app for the iPad, it allows you to create drawings with rotational symmetry and people were making really fancy doily shapes by swiping their finger across the screen. I knew it would lend itself well to line art but as I investigated these apps I discovered they were all raster based and wouldn't easily give vector artwork that could be cut so I had to find another way. 
It's fairly straight forward to replicate in Inkscape. Inkscape allows you to clone an object and the clones all update when the original changes. I drew a simple line and then cloned it dozens of times, arranging them all with rotational symmetry. As I modified the base line, all the other lines updated and these interesting patterns grew in complexity. The drawing was already vectored so it was easy to get it across to the laser. The whole pattern was cut in a single laser line so I filmed the process too. (svg here)

by (Martin Raynsford) at 19 December 2016 10:15 PM

11 December 2016

Matt Little hackergotchi for Matt Little

Solar Torch Workshop with EWB Nottingham

IMG 20161026 152624

Here are some photos from a DIY 'Build a Solar Torch' workshop I ran for Engineers Without Borders Nottingham.

There were twenty participants and they all built a small torch which runs from solar power, hopefully learning skills including soldering and mechanical design.


by (Matthew Little) at 11 December 2016 04:52 PM

Off-Grid workshop with EWB Sheffield

IMG 20161207 141922 sm

I have run a number of solar photovoltaic and off-grid power hands-on workshops and I recently ran another solar PV workshop with EWB Sheffield.

Engineers Without Borders UK (EWB-UK) is a student run organisation trying to connect engineers with the field of international development. They do this through placements, training and outreach programs.




by (Matthew Little) at 11 December 2016 03:14 PM

Martin Raynsford hackergotchi for Martin Raynsford

Cross Box Puzzle

About a week ago I made this puzzle box as a prop for a LRP event, I've kept it back just in case someone saw it in advance. It's a great little build and a good puzzle, I won't expand on the details yet because I may be working with the creator to make more puzzle boxes via kickstarter but in the meantime you can get an idea of it from this video (and that's enough breadcrumbs if you really want to know more).

by (Martin Raynsford) at 11 December 2016 02:48 PM

07 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Knuckle Dusters

I end up making some pretty odd things with the laser and these 'Bump & Grind' knuckle dusters rate pretty highly. It's LARP related (obviously) so they're made of foam to be soft enough to wear. They still need latexing and they're probably too small for anyone with sensible sized hands but the joy of the laser is that you can scale things up easily.

by (Martin Raynsford) at 07 December 2016 10:50 PM

04 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Christmas Tree Star

Eli and I spent the week slowly making a death star model. It's largely paper mache and paint but we did laser cut some cardboard baffles to go inside the middle of the sphere. We even wrote an Instructable about it.

by (Martin Raynsford) at 04 December 2016 08:48 PM

01 December 2016

Martin Raynsford hackergotchi for Martin Raynsford

Cobbled Streets

A lot of my friends are into wargaming so I tend to get asked questions about how I would do things. In this instance somebody had engraved a section of cobbles like this for use as a road, it took 25 minutes and he was keen to do it faster (and therefore cheaper). I suggested it would be better as a low power cut with the laser out of focus, this would give you wide lines that would look like an engrave. The equivalent cut took 7.5 minutes, over 3 times faster. 

Defocusing the laser is a straight forward process, I simply put varying thicknesses of material under the height tool and set the laser up as usual. In this instance I achieved a suitable line thickness when the laser was 6mm out of focus.

I built the cobbles into a Z shape which can tessellate easily but also makes it harder to spot where the overlap pattern is, especially if you mirror and rotate the pattern as you go along. If you'd like to use this cobble pattern in your own designs, please feel free (svg here)

by (Martin Raynsford) at 01 December 2016 11:38 PM

29 November 2016

Martin Raynsford hackergotchi for Martin Raynsford

Denim Sample

Dominic and I just attended the first Kitronik Teacher Evening to help demonstrate laser cutting and laser cut stuff. I was looking for some cheap materials I could have for a sampler and I remember seeing that you can laser etch onto denim. A sacrificial pair of jeans and 10 minutes later I had etched this pattern onto the surface of the material. It's quite impressive how much colour contrast you end up getting.

by (Martin Raynsford) at 29 November 2016 09:55 PM

25 November 2016

Martin Raynsford hackergotchi for Martin Raynsford

Sliced Skull

There are a couple of laser sliced cardboard skulls online but none that seem to be sharing the files so I decided to make my own for the Kitronik teacher evening. I found a 3D model of a skull in the Autodesk library and used 123D make to slice it in the desired direction. The result was slightly lopsided because the software slices from left to right rather than the middle outwards so I took the first 14 layers and mirrored them to make sure my skull was truly symmetrical. The whole thing was cut from corrugated cardboard 5mm thick (svg here)

by (Martin Raynsford) at 25 November 2016 02:43 PM

Tim Marston hackergotchi for Tim Marston

Spaces within parenthesis in emacs

There’s lots of opinion about coding styles and which is best. I prefer one that helps you read the code. And, to that end, I prefer to have spaces inside parenthesis, like this:

for( int a = 0; a < 20; a++ ) {
    dump( data[ a ] );

Call me a heathen if you like, but it’s how I roll!

And it’s how I set out to configure emails to help me roll…

Unfortunately, emacs’s electric-pair-mode doesn’t do this sort of thing and can’t be configured to, either. There are two problems. The first is that electric-pair-mode doesn’t allow for conditions as to when it will insert a pair. So, I could add a pair of spaces, (?\s . ?\s), to electric-pair-pairs so that it would automatically insert a second space, but it would do this for every space I typed. The second problem is that electric-pair-mode does some white-space skipping internally, which I think would be problematic. :(

So I did it the old-fashioned way and added my own functions:

(defun my/c-mode-insert-space (arg)
  (interactive "*P")
  (let ((prev (char-before))
        (next (char-after)))
    (self-insert-command (prefix-numeric-value arg))
    (if (and prev next
             (string-match-p "[[({]" (string prev))
             (string-match-p "[])}]" (string next)))
        (save-excursion (self-insert-command 1)))))

(defun my/c-mode-delete-space (arg &optional killp)
  (interactive "*p\nP")
  (let ((prev (char-before))
        (next (char-after))
        (pprev (char-before (- (point) 1))))
    (if (and prev next pprev
             (char-equal prev ?\s) (char-equal next ?\s)
             (string-match "[[({]" (string pprev)))
        (delete-char 1))
    (backward-delete-char-untabify arg killp)))

They can be bound in c-mode and c-mode derivatives like this:

(add-hook 'c-mode-common-hook
          (lambda ()
            (local-set-key " " 'my/c-mode-insert-space)
            (local-set-key "\177" 'my/c-mode-delete-space)))

by edam at 25 November 2016 11:33 AM

06 November 2016

Martin Raynsford hackergotchi for Martin Raynsford

Halloween Costume

Halloween feels like a long time ago, but I did make Eli a costume for the night. I copied the rocket man costume that's been floating round the internet. The rocket pack was made from 2 coke bottles and the turbines on the top were laser cut and painted. The fabric for the flames was all laser cut into flame shapes and then sewn onto a spare pair of trousers.

For further house decoration I laser cut some eyes into cardboard and rolled them into tube shapes. A glow stick inserted into the middle of the roll illuminated the eyes and I placed them in the hedge row. Finally I programmed a string of neopixels to give a few flashing effects and that really brought the clown face to life.

by (Martin Raynsford) at 06 November 2016 07:38 PM

02 November 2016

Steve Barnett hackergotchi for Steve Barnett

RetroChallenge 2016/10 - One bodge to fix them all

It's two days past the deadline, but I found an extra moment to work on my SD card interface today and I have it working!

I switched the clock output to the SD card from SH_CLK to /SH_CLK to move the rising edge of the clock to a point where the output from the shift register is stable, and now it works nicely.

It's always a one character fix!

This eliminated the critical timing that the Bus Pirate was have gotten away with but my circuit did not.


0x95 and a response

SPI Decoder

Once I had this working I checked that the 74HCT595 was clocking the data coming back from the SD correctly. Since my test program soft resets the rc2014 when it finishes I was able to check this from BASIC.

Reading back the response

Now that this is working I need to write a (less messy) program to fully initialise the SD card and switch to fast mode. Once that is done I will verify the schematic by rebuilding the circuit on stripboard from the schematic, before designing a proper PCB for the circuit including a proper SD card socket.

There are also a couple of potential minor hardware improvements to investigate:

  • As noted in my last post that it's likely that I can get rid of the second 74HCT374 and switch to just using the simple edge trigger circuit.
  • Fast mode should be pretty optimal when used with the Z80 OTIR instruction to write many bytes of data from memory straight to an IO port, however for reading data from the card I currently need to alternate writing 0xff and then read the result back with with an IN instruction. I can use the INI instruction to automatically keep track of where the read bytes should go in memory but I can't use the INIR instruction which would be faster. Some extra logic to (optionally) trigger a write after a read would allow me to use INIR to read blocks of data with the implicit write priming the input shift register with the next byte after each read.

Finally, here's the final schematic:

Final Schematic

Even though I didn't quite get it done within the deadline I can call this RetroChallenge a success (it was definitely good motivation).

For bonus points I managed to use exactly all the gates in the 7400 quad NAND and 7404 hex inverter that make up my glue logic.

Now it's probably time to start reading the CP/M BIOS Alteration Guide!

by moop at 02 November 2016 09:35 PM

01 November 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10 - Tools

During Retro Challenge I needed a way to run machine code on my rc2014, as BASIC was incapable of the performance needed to initialise the SD card in bitbang mode.

I didn't (and still don't) have an EEPROM burner when I first got my rc2014, and although the version of BASIC in the stock rc2014 ROM does support the USR() function it appears to jump to a hardcoded address within the ROM so this didn't help me much.

I ended up finding the assembly language source of the BASIC interpreter (or one very similar) and noticed that the address the USR() function jumps to is not looked up directly from the ROM, but copied to a block of information kept in RAM. Once I knew the address of that block I was able to modify it so USR(0) would jump to an arbitrary address.

With this method I was able to poke in arbitrary code and execute it, but this was far from an ideal workflow.

To improve this I wrote some Python scripts which would output the BASIC code to load a binary image into the RC2014's memory at a given address or run code from a given address. Once appropriate delays were added to avoid overflowing the (1 byte) input buffer on the RC2014's serial port I was able to combine these scripts with z80asm and a makefile to make a nice toolchain for rapidly deploying and testing programs to the RC2014.

By writing the program such that the RC2014 jumps back to the reset vector at address 0x0000 programs can be developed without the need to constantly reset the RC2014 (unless something goes wrong in the program).

I set up my Makefile with additional commands to output hex dumps of the program, annotated assembly, or to run a program that is already resident in memory.

The only issue I've encountered with this system so far is that it is quite slow to load large programs. For my Retro Challenge project the load time was so long that I had to wait for it to finish before reissuing the run command. The automatically sent run program was lost because the loader was still running.

This could be improved by writing a faster loader in assembly which could be bootstrapped with a very small BASIC program. If I had an EEPROM burner a replacement boot ROM could be made which would boot straight into the fast version of the monitor program.

The scripts and Makefile I used are on my GitHub under the RC2014 Tools project. They will work on a Linux system or similar, or on Windows with some modifications.

by moop at 01 November 2016 08:00 PM

31 October 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10 - Deadline

I'm at my deadline for RetroChallenge 2016/10 and unfortunately I'm tantalisingly close to having something that works, but not quite there.

I have the bitbang/slow mode working and generating pulses that match the output I get from my Bus Pirate when using it to talk to the SD card. However, the Bus Pirate gets a response and my circuit does not.

I blamed my level shifter for a while. As an experiment I tried writing to the card from the Bus Pirate and reading the response through the level shifter works fine, so that can't be the problem.

Final State Of Play

Bitbang mode was fixed by adding an additional edge trigger circuit. Instead of a synchronous edge trigger I used the simple trick of feeding a signal and an inverted copy of the signal into an AND gate. When the signal goes high the inverted version remains high for the propogation delay of the NOT gate used to invert it, so the output from the AND gate is temporarily high. Since I had a free NAND gate and second free NOT I used these to build an AND. I ended up picking the existing EDGE signal (ie. the synchronous edge trigger) as the input to the new edge trigger. This provided a signal that could be used to make the output flip flop's latch transparent for only a brief period.

I could probably at this point do away with the synchronous edge trigger and save a mostly unused 74HCT374, but there was no time to test this today. I will test this when I get chance.

With the bitbang mode working I was able to attempt to initialise the SD card at the low clock rate it requires. After some fiddling I discovered that my output pulse train was off by one relative to the clock pulse. In an effort to get things to work I bodged the values I was writing to make the output signal match what I see when using the Bus Pirate. This included adding a new bit to the CONFIG register to drive the serial input on the output shift register. This ensured the Data Out line (MOSI) to the SD card was pulled high, in order to match exactly the Bus Pirate's behaviour.

CMD0 on Bus Pirate

It was difficult to get a screenshot that captured the whole pulse train, but the above shot shows the Bus Pirate sending CMD0 (0x40, 0x00, 0x00, 0x00, 0x00, 0x95) and receiving 0xFF (no response) followed by 0x01 (OK). The shot below shows the commands sent to the Bus Pirate and the response.

Bus Pirate Commands

The next shot shows my circuit sending the same output, but recieving no response.

In both cases a large number of clock pulses were sent with the SD card's chip select deasserted, as is apparently required to initialise the card.

CMD0 From My Circuit

My suspicion is that either my timing is too fast - I'm currently running at 330kHz while the Bus Pirate is running at 33kHz - or the rising edge of my clock is very subtly off with respect to the data.

There are still hardware bugs (the off by one issue, mainly), but the final schematic and final netlist are included below for posterity.

Final Schematic

Final Netlist

I plan to continue working on this project after RetroChallenge and will and post further updates as I figure it out.

I also plan to write a post about the toolchain I have setup for running assembly programs quickly and painlessly on the RC2014. Hopefully I'll be able to post that tomorrow.

by moop at 31 October 2016 11:08 PM

Retrochallenge 2016/10 - State of Play

As it stands my RetroChallenge entry is close to working, but not quite there.

The fast mode appears to work and I was able to decode the SPI packets sent to the SD card with OpenLogicSniffer's SPI analyser module.

Decoded Messages

The picture above shows the signals and the decoded data for the SD card CMD0 (Software Reset) message which is the first step in initialising the card. The message is the 6 byte string 0x40 0x00 0x00 0x00 0x00 0x95 where 0x40 is the command (bit 6 is always set), the four 0x00s are the empty parameter section, and 0x95 is the checksum for this command. More information on the SD card SPI protocol is available on this page, which I've been referring to regularly for this project.

The eagle eyed will notice that this capture shows an 8mHz clock and therefore the device is running in fast mode. For the SD to initialise correctly it needs to be initially clocked slowly (100-400kHz).

Unfortunately, the slow mode, which I was expecting to be the easy bit is currently not working due to a hack I used to get fast mode working.

Current Schematic

The current schematic, seen above, shows that the 'Shift /Load' input of the output data shift register (U3 pin 1) is driven by the SHIFTING net. This gave the correct timings to load the register when data was written, as the register's input latch would be transparent while SHIFTING was low. SHIFTING goes high while the autoshift register (U7) is outputting a 1, so the last value seen by U3 is latched in just before the train of clock pulses is generated.

This breaks slow mode because SHIFTING is always low when /BITBANG is asserted, so the output from U3 is always a copy of whatever is on bit 7 of the data bus.

This should be fixable if I can find a better way to load this register before time runs out.

by moop at 31 October 2016 05:11 PM

30 October 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10 - Breadboard Fun

Having finally found time to start breadboarding my SD card interface I first made sure that the edge trigger circuit I had tested in ModelSim would work when built with real components.

An issue I had encountered previously when breadboarding RC2014 peripherals was that if I wanted to disconnect the circuit from the RC2014 I would lose track of which wire was which. To work around this this time I took an unused RC2014 protoboard module and soldered on just the usual 90 pin header and a socket header below it. The protoboard can still be used later (minus one row of holes) and now provides something that wires can be plugged into that can be removed from the RC2014.

RC2014 Protoboard

With the edge trigger circuit built I tested it using my Open Logic Sniffer, which has been an invaluable tool for many projects. I did however notice that running on the RC2014's 8mhz clock brings the Open Logic Sniffer quite close to its limits. The 200mhz maximum sample rate provides resolution for only about 12 steps within each clock cycle, so there is limited scope for playing with gate delays.

Edge Detect

Once the edge detect circuit was proven to work I started building the rest of the circuit and things quickly got complicated.


The image above shows the almost complete circuit, but with a loopback between the input and output shift registers where the SD card would normally fit, and some blinkenlights on the outputs from the input shift register to indicate its state before it was connected to the data bus.

I spent quite a long time debugging why the signal coming into the input shift register was always off by one bit. Initially I blamed timing issues in the glue logic and spent quite a while experimenting with inserting delays to try and fix things. Eventually I realised that I was clocking both the Shift Clock Pulse input of the 74HCT595 and the Store Clock Pulse (which latches values from the shift register to the output shift register) with the same clock signal. This resulted in the output register always showing the last but one state of the shift register. Switching the Store Clock Pulse input to an inverted copy of the clock signal fixed this and I was able to send any byte from the output shift register to the input shift register with the circuit operating in autoshift mode.

Previously when breadboarding I had been building the circuit in KiCAD, planning out the breadboard layout as PCB, then building the circuit based on that design. Any changes made on the breadboard had to be updated in KiCAD or things got very confusing.

Unfortunately this mechanism got onerous once I started making changes on the breadboard. Following traces on the screen is no easier than following them in the real world and long jumper wires were hard to route in KiCAD without using many extra layers.

For the most recent attempt I decided to try a more old school approach and build a netlist representing the breadboard contents on paper. I made and printed some templates in Google Sheets, annotated the existing breadboarded design onto the sheet, then kept it up to date as things changed. This turned out to be a lot more convenient than keeping track of the design in KiCAD as it was easy to search for a signal by name and the paper was easier to reach on my desk.

Paper Netlist

by moop at 30 October 2016 11:13 PM

Retrochallenge 2016/10 - Due diligence

To avoid the work done designing my SD interface being wasted I decided to verify the concept before going any further.

I used my Bus Pirate to verify that the SD card I have would respond to the commands I expected using the protocol I expected.

The Bus Pirate supports many bus protocols including the SPI bus that the SD card supports in the mode I'm using.

I don't have an SD card breakout board so I ended up buying a micro SD card with a standard SD adapter and soldering some right angle pin headers to the pads. This gave me an SD adapter that would plug into a breadboard.

Makeshift SD Adapter

I initially used the Bus Pirate's probe cable as a quick way to connect to this adapter, but this got frustrating as the mini grabbers had a habit of letting go at inconvenient times. To get around this I made a quick adapter on some stripboard.

Bus Pirate SD Adapter

This little adapter also makes it easy to remove the SD adapter from the Bus Pirate without having to look up the pinout again. It should come in handy on future SD card related projects and maybe for writing raw data to the SD card.

Unfortunately I don't have any logs of the session, but with this adapter and the Bus Pirate I was able to initialise the SD card and read blocks of data. This gave me confidence that my project would work and would be worthwhile.

by moop at 30 October 2016 10:45 PM

29 October 2016

Martin Raynsford hackergotchi for Martin Raynsford

Halloween Decoration

It's nearly Halloween and I had an afternoon of building fun with the kids trying to make a new decoration. This scary clown will be mounted over our doorway on Monday night ready to greet the trick or treaters. It took about 2 hours all done, 45 minutes drawing, 15 mins cutting and an hour painting and assembly. The face was drawn and split into several different layers which made it easy to give the kids one part and one colour of paint plus adds to the 3D effect. It's just corrugated card and poster paint which makes it cheap and we'll hope for a dry night. (svg here)

by (Martin Raynsford) at 29 October 2016 07:15 PM

23 October 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10 - Building retro computers with modern tools

I've been struggling for free time this month for poking around with breadboards and other fun things. To work around this, and still (hopefully) get my RetroChallenge entry done, I decided to use a simulator so I could work on it with my laptop whenever and wherever there was time.

LogiSim Edge Detector

For an earlier RC2014 project I used LogiSim which is simple and easy to use, but I quickly hit some limitations. The built in sequential building blocks (shift registers, latches, etc) appear to support only a limited set of variants. There is no option for asynchronous resets, or transparent latches on the shift registers. It includes combinatorial building blocks (logic gates, etc) also, but these do not appear to work correctly for building sequential circuits, as feedback is not always handled correctly. Because of this I was not able to simulate the exact characteristics for most of the 74 series ICs I was using.

To solve this problem I switched to using Altera Quartus to build a model of the circuit and ModelSim Altera Edition to simulate it. I mainly chose this because I've used it previously for FPGA projects, and because if some functionality is missing I can implement it in Verilog.

Autoshift Circuit

When redesigning the autoshifter circuit (to shift out 8 bits of data after each IO write) I built it as a Block Diagram/Schematic File (.bdf) in Quartus. This allows the design to be entered as a schematic with various logic symbols supported by default. Additional components can be created with a hardware definition language such as Verilog, or by using Quartus' "MegaWizard Plug In Manager" to configure and insert a variant of an IP core. I set my project up for the Cyclone II FPGA as I have used it for previous projects. To simulate the 74HCT165 shift register I configured a variant of the LPM_SHIFTREG IP core with 8 bits of data, parallel inputs and serial inputs, serial output, and a clock enable pin.

Unfortunately this still does not quite match the 74HCT165 exactly as it has D flip flops rather than transparent latches. I could build my own shift register in Verilog, but to save time I opted to stick with the LPM_SHIFTREG version and ensure that the timings seen in simulation were such that the transparent latches wouldn't cause a problem.


In order to test the design I set Quartus up to launch ModelSim and run Gate Level Simulation after compilation. ModelSim can be driven manually through the GUI, but this is fairly fiddly and repetitive. Fortunately it supports scripting via 'do files' which contain lists of commands for ModelSim to interpret.

I set up four do files:

  • - Reset, add graphs for appropriate signals, set default values for inputs
  • - Drive the data bus to the appropriate values to set SHIFT8 and deassert /BITBANG, then assert and deassert /CONFIGWR
  • - Simulate a write to the device by driving the data bus and /DATAWR signals, zoom graph to fit
  • - Run the previous three do files in sequence, zoom graph to fit

This allowed a fairly quick turnaround by hitting compile in Quartus, selecting the project once ModelSim launches, then typing 'do' to run the simulation.

For a different project I could have sped things up by keeping everything inside ModelSim, but this would have required me to design the circuit in a hardware definition language. Since my final target is a circuit built from discrete components and not an FPGA bitstream I decided to take advantage of the Block Diagram/Schematic feature in Quartus. This way everything could be easily translated back to a physical circuit once it was verified as working.

Now I have the autoshift circuit working, theoretically, I just need to find some time to build and test the physical version!

by moop at 23 October 2016 07:26 PM

Martin Raynsford hackergotchi for Martin Raynsford

Laser Cut Cryptex

This is my laser cut cryptex. It features 28 different characters and 9 rings, giving a total possible 10.5 Trillion different combinations. I took a bit of time developing the design so that I could add some nice features. This cryptex file is laid out so that you can have any number of rings in your own design. The best feature is that the codeword is changeable, each locking ring has an outer letter ring that can be placed in any one of the 28 different positions. Once the rings are back in place the ring locking bars can added and they prevent the rings from being modified until the box is open again. It's a bit hard to explain so I made a video showing how it all work (svg here)

It took a long time to assemble this so I lived with my initial design choices but if I were to remake it I would adjust the file to make the ring locking bars out of 6mm ply and maybe put some blind holes onto the code rings to prevent the code being brute forced.

by (Martin Raynsford) at 23 October 2016 01:20 PM

15 October 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10 - Previous version and problems

In my previous post I promised to show the previous implementation of my Z80 SD interface, and to run through the problems which I intend to fix this month.

Original Z80 SD Interface Schematic

The 74138 (U1) in the top left of the schematic is used to detect and decode IO reads and writes from the Z80. Three bits of the address bus (A7, A1, A0) are decoded along with the /RD line, M1 line and /IORQ line. With this configuration the device responds to any IO address between 0x80 and 0xff. Some more gates will be used to further decode the address later. The lower two bits (ie. the address modulo 4) select a register within the device. Address 0 selects the DATA shift register (U4) for reads or writes while address 1 selects the CONFIG register (U3) for writes only.

One NAND gate from the 7400 (U2A) quad NAND is used to invert the CONFIGWR signal, as the 74138 outputs are active low while the latch input on the 74374 is active high.

In the middle row of the schematic are the 74374 register (U3) that holds configuration information and the 74299 shift register (U4) that is used to transfer data to the SD card. To the right of these is a 74165 (U7) shift register that implements the automatic shifting mechanism for high speed mode along with some more NAND logic (U2B, U2C, U2D) to generate the appropriate signals depending on the operating mode.

The automatic shifting behaviour is implemented by latching the state of the SHIFT8 bit of the config register into all 8 bits of U7's input register when /DATAWR is asserted (ie. the data register is written to). This fills the register with 1s. The serial in (Ds) pin of the register is connected to ground so with each clock pulse the train of 1s is shifted and the gap is filled with a 0. The serial output of the register (SHIFTING) is NANDed with the clock by U2B. The output from U2B is either a train of 8 inverted clock pulses or a constant logic 1 level, depending on the state of SHIFT8 at the time the DATA register was written to. NAND gate U2C will either invert this train of clock pulses if /BITBANG is high, or reflect the inverted state of the /BITBANG config bit if U2A is outputting a constant logic 1 at the time. Put together this allows either the SHIFT8 config bit or the /BITBANG config bit to control the clock depending on the desired operating mode (relying on the driver to avoid trying to do both simultaneously).

The final NAND gate of the 7400 (U2D) is used to invert the /DATAWR signal to drive U4's S1 input to select the Parallel Load operation when /DATAWR is asserted or to Shift Left otherwise. S0 of U4 is tied to ground as the Shift Right and Hold operations are never used.

Finally, a 74107 dual JK flip flop was used to divide the RC2014's clock signal (CLK) by four to produce (Q_CLK). This was initially intended to solve a timing issue, but has caused more trouble than it was worth.

The timing diagram below shows the behaviour of the device when the SHIFT8 bit is set and a write is issued to the DATA address.

Original SD Interface Timings

A couple of issues are noticeable:

  • SH_CLK is producing one partial pulse, followed by a gap, followed by 7 real clock pulses.
  • /DATAWR (and therefore SH_LOAD) is asserted for several clock pulses.
  • CLK (actually Q_CLK) behaves strangely.

Most of these issues were introduced by attempts to work around other problems.

Before the clock divider was introduced U7 was emitting a train of 11 clock pulses rather than the expected 8. This is because the 74165 has a transparent latch rather than an edge triggered latch. The Z80 asserts /IORQ for many clock cycles so the train of 1s from SHIFT8 was being reloaded, wiping out the 0 introduced through the Ds input, until /IORQ was deasserted. Introducing and resetting the clock divider was an attempt to prevent the shift registers from being clocked during this period by holding it in the reset state when /DATAWR is asserted.

Unfortunately because the Z80 instructions take a variable number of clock cycles to complete and aren't necessarily a multiple of 4 cycles the state of the divided clock when /DATAWR is asserted is not predictable. This is likely the cause of the glitchy short pulse seen on CLK as /DATAWR is asserted.

Without this unexpected pulse U4 would not be loaded, as 74299's the Parallel Load operation is synchronous with the clock, and shares a clock with the Shift operation. Extra logic would be required to create a seperate clock that is a superset of the shift clock.

Given these problems I'm going back to the drawing board slightly. I may try adding the extra logic to clock only the 74299 but if that fails I'm replacing the 74299 with a pair of shift registers - a 74165 for data moving from the Z80 to the SD card and a 74595 for data moving from the SD card to the Z80. This is probably wise anyway as the 74299 is a rare part which is many times the cost of a 74165 or 74595 and supplies are less plentiful.

I'll also be removing the 74107 clock divider circuit and replacing it with a simple edge trigger circuit to limit the /DATAWR pulse to a single clock.

Hopefully I will have a write up of this new version soon.

by moop at 15 October 2016 12:51 PM

05 October 2016

Steve Barnett hackergotchi for Steve Barnett

Retrochallenge 2016/10

I decided to join in with ` <>`__Retrochallenge 2016/10 this October. I'm also hoping this will provide some incentive to write more posts and updates about other projects once I'm back into the swing of things!

RC2014 Z80 computer

My goal for this Retrochallenge is to finish an SD card interface I started designing for Spencer Owen's ` <>`__RC2014 Z80 based computer (which was spawned by a previous Retrochallenge, hence the name). This should work with most Z80 computers that don't do anything crazy to the I/O interface, so I may also get it working on a ZX Spectrum if there is time.

I'm intending to build my SD interface from 74 series and similar discrete logic ICs. This is partly for fun and partly because the microcontroller in the SD card is likely already more powerful than the RC2014. Adding another microcontroller into the mix to interface with the one in the SD card is just a step too far.

I'll be using the SPI-like mode of the SD card protocol, not least because information on the faster SD mode is not publicly available. The SPI-like interface should allow me to use shift registers for communication with the SD card.

I was initially planning to use a 74ALS299 universal shift register to reduce chip count. Unfortunately, in addition to being somewhat hard to get, the interface on this chip is troublesome as the shift, shift direction, and output enable are all synchronous and controlled via two pins that set the operation. The extra glue logic needed to deal with this completely nullifies the benefit of using a single universal shift register. Because of this I'm planning to redesign around a pair of shift registers: a 75HCT595 serial-in-parallel-out register and a 75HTC165 parallel-in-serial-out register.

The SD card requires a slow clock pulse for initialisation (around 100khz), but once initialised supports faster clock speeds. The design is complicated by the need to run at both speeds, but I have a scheme to cope with this.

My intended interface uses a pair of registers mapped to the Z80's I/O space.

  • DATA

    • Writes to this address latch the byte from the Z80 data bus into the 74HTC165 which is used to send data to the SD card.
    • Reads from this address enable the outputs on the 74HTC595 shift register which receives data from the SD card.

    • Writes to this address update a 74HTC374 register holding a configuration byte. The following bits are currently used:

      • autoshift - Automatically shift 8 bits from the shift registers to the SD card and back after a write to the DATA address. This is used for the SD card's "normal" high speed mode and should allow fast enough I/O that the Z80 becomes the bottleneck.
      • clock - OR'd with the automatic clock signal to the shift registers and SD card, allowing communication at a speed controlled directly by the Z80 to provide a 'bitbang' mode. This mode is not efficient, but allows the slower speed required for the SD card initialisation process without much extra logic.

Original version on breadboard

An initial version similar to this design has been built on a breadboard using a 74ALS299. In addition to the issues with the synchronous control signals needed to load this shift register, there were also compatibility issues with the timing of the Z80's I/O control signals. This requires additional glue logic and a redesign of automatic shifting logic that enables the high speed mode to work.

Before I take the previous version apart to rebuild, I'll take some logic analyser captures indicating the timing issues, and write up (and remind myself of) the problems.

by moop at 05 October 2016 07:04 PM

30 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

1000 sharks in the making

The 1000th project for this blog very much took on a life of its own. I knew I wanted to make something big and impressive so the idea of making 1000 of something had a lot of appeal. The laser makes it very easy to churn out 1000 identical items so I also wanted to make something that needed assembly, something where I had specifically touched all 1000 things. So I built this little shark model, it had a few iterations and eventually ended up with five ribs and a flexible tail.

I managed to tessellate 60 onto a sheet of poplar ply and I set the machine to cutting out 18 sheets, each sheet taking just over an hour to complete. In between sheets I would pull the parts out of the laser and scoop them into boxes for later assembly. I spent many nights sat in front of the TV assembling parts and in full flow I was assembly one every 45 seconds, so it was roughly another 18 hours for shark assembly. This left me with two,80L crates full of sharks and lots of time to figure out what the next step should be

Arranging the sharks into some kind of sharknado was appealing but it would need a sturdy framework. Suspending 1000 sharks inside a fish tank would be cool but there would be a lot of strings so I hit upon the idea of sticking the sharks together to form a larger shark. One big thing made from lots of smaller things would look pretty good so I set about making one giant shark from all these pieces.

The first step was to create a former to make sure I got the right shark shape. Thankfully with a laser cutter you can change the scale of things pretty easily and in no time at all I had a full sized model form corrugate card. This allowed me to check it for size in the final tank and gave me something to work around. I just started gluing sharks into location on the side of the cardboard, putting them between the ribs and making sure that the shark picked up the right shapes in the right proportions. Because the card was flexible I was about to add a bit more shape into the design as it evolved.

Each shark was built in several stages and took about 40 hours each to complete. The first half of the shark was built against the cardboard former. All the sharks were packed as tightly as possible and hot glued together. Two more layers of sharks were added on top of that giving the body some shape. Next the fin was added to the top and sides and the tail made last. Because the tail was the thinnest part it was the first thing built on the other side when the cardboard was removed. The flexible corrugate spine allowed me to add some curves into the body shapes.

The first shark only used around 500 of the smaller sharks which left me a problem, I had to build a second shark to use up all 1000 sharks. The second shark was built in the same manor but it gave me a chance to put the shark in a different pose.

To make the shark tank I took the laser crate from a Greyfin laser cutter and very carefully extracted the laser trying not to dismantle the box. I secured the lid back down and had full access through one of the side panels. In the walls of the tank I cut holes for the portholes and screwed them in using Dome nuts to give them an extra nautical feel. I used the large Just Add Sharks Stencil to spray paint the company logo onto the side of the tank taking care to mask off the red and black areas as required.

The inside of the tank was painted white to hide the footprints and marks left from the laser cutter and the whole thing was illuminated with a water effect lamp. The sharks were suspended from the ceiling using fishing wire and hooks screwed into the sturdy points of the roof.

by (Martin Raynsford) at 30 September 2016 07:42 PM

1000 Sharks

This is my 1000th laser cut item. It's nearly my fifth blog anniversary and I wanted to make something epic so I built this shark tank and housed 2 large sharks inside it. Each shark is made from 500 smaller sharks so over the last few weeks I have cut and assembled 1000 of the smaller laser sharks, 1000 things for my 1000th item. Portholes into the tank allow you to see the sharks from all different angles.

by (Martin Raynsford) at 30 September 2016 05:18 PM

29 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Cryptex Ring

I set out this evening to make a cryptex, it was fairly ambitious given that I also had to pack for New York. Instead all I managed to achieve was a single ring prototype but I figure that is most of the hard work done. This cryptex features a ratchet to make the ring rotate in a single direction. 27 digits, I view the blank character to be equally as important as the other 26, and as this cryptex will be infinitely extendable you could have multiple words in the code. The central section is square which means it doesn't have to be made from 100s of stacked layers. 

Most significantly there is an outer ring containing all the letters. The letters are glued into place using a jig to ensure they are all square on the wheel but the wheel can be rotated in relation to the keyed slots, this means the code word is actually going to be changeable once the cryptex is assembled.


by (Martin Raynsford) at 29 September 2016 11:01 PM

28 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Wavy Bowl

I made some bowls before but I lost some of them at the Newcastle Maker Faire this year, as I'm bringing my 'A' game to New York, I thought it was quite sensible to make another one for display. I chose to make another wavy bowl from a single concentric stack. This time the layers had guides to show you where to glue the next layer (svg here)

by (Martin Raynsford) at 28 September 2016 11:31 PM

27 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Counter Mechanism

I finished the counter mechanism, I doubled the size of the wheels to make them easier to run and I added a detent mechanism to ensure that the smallest wheel falls into place and it also stops it spinning wildly. (svg here)

The geneva mechanism was rebuilt using a layer of 2mm ply, this allowed the two different gears to sit half a step out of sync with each other and eliminates any clashing as the gears rotate.

The detent mechanism gave me a few headaches, typically these mechanisms usually look like a rounded ratchet. The rounded end allows the lever to slide in either direction. The trouble with laser cutting and wood is that the edges are a little bit rough and I really struggled to make this design work in the reverse direction.
To solve the problem I got thinking laterally, I put some 0.8mm ply in side ways to press against the sides of the decagon. I put in 2 bars to create even pressure on both sides of the wheel. As the decagon rotates it flexes the two bars outwards and that helps it bump over into the next detent. The rough side of the decagon rubs against the smooth surface of the 0.8mm ply and there is no sticking.

by (Martin Raynsford) at 27 September 2016 11:25 PM

Church Window 2

I made a church window a long time ago and I was never very happy with the way some of the layers were offset. The perfectionist in me always knew the glass layer was a bit awry from the rest of the framework. Given that it is well received at most events I figured now was the time to redo it and make a 'perfect' one this time around. It's a pretty straight forward layered design, the only real tricks are engraving on the pillars to add some depth and make it appear like there are bands around them and the perspex layer is a dodecagon, rather than a circle, to prevent it from rotating within it's hole.


by (Martin Raynsford) at 27 September 2016 08:45 PM

25 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

200 Sharks

I'll be attending the New York Maker Faire this weekend coming. I'm taking as many items and kits as I can possibly manage but I also wanted something smaller that I could gift or sell as appropriate. I ended up cutting 200 of the mini shark kits, if you would like one simply come and find me at the maker faire and tell me you read my blog.

I actually cut a whole lot more sharks last month but that's a project due to be completed in the next few days so keep an eye out for that.

by (Martin Raynsford) at 25 September 2016 07:53 PM

Action Shots

Over the last 5 years I've made a lot of stuff for a lot of people. As I approach 1000 laser cut items here is just a small selection of things that people have sent back to me recently. It's always great getting follow up photos, it lets you know these things are appreciated.



by (Martin Raynsford) at 25 September 2016 03:14 PM

24 September 2016

Martin Raynsford hackergotchi for Martin Raynsford


I was inspired by some end grain chopping boards I saw on you tube to try and recreate some of the techniques with the laser cutter. This coaster was made by cutting the basic outline with the laser and then cutting across it with the ribbon pattern. The cut was made in two lines removing a chunk 0.8mm wide, a single layer of veneer was inserted into the gap and then the coaster was glue shut again. The second set of ribbons (overlapping the first) were cut once the glue had dried. The second line of veneer was inserted and the whole thing sanded up to a nice finish. (svg here).

by (Martin Raynsford) at 24 September 2016 07:18 PM

Cheese board

I've had this chopping board in my garage for at least a year and I figured now was the time to finally put something on it. I found a nice illustration I liked online and converted it into a line drawing for the laser. I think the style works well even if the subject and item is a little dated. I'll be sure to use it next time I'm doing fondue though. (svg here)

by (Martin Raynsford) at 24 September 2016 10:07 AM

22 September 2016

Martin Raynsford hackergotchi for Martin Raynsford


We're doing a bit of decorating which means we shuffled rooms round too and Kim is now studying in a room without a lampshade. It's never been a high priority until today so instead of traipsing into town just to settle on a lampshade we don't really like I made one instead. It's made from 0.8mm white polypropylene and I'm a bit peeved because I over cooked it and you can see the burn marks through the plastic. I'll clean it up eventually but it has gone into service today and it seems to be doing an acceptable job.

by (Martin Raynsford) at 22 September 2016 01:41 PM

20 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Counter Prototype 2

I should have known that the master of woodwork Matthias Wandel would have also built a counter and he did it much better than I did. This counter has a Geneva drive between the digits so the upper digit only moves 1/10th of a rotation each time the lower digit passes zero. My counter is a bit flawed, the tolerances weren't tight enough so it gets a bit sticky as it increments. I can rebuild it so that the parts overlap in a better way and avoid snagging.

I took a short video of the two different counters in action but for some reason my camera was only letting me take 4 seconds of video at any one time.

I improved the counter wheels, each number has a tab which fits into the end wheel, this ensures even spacing around the wheel and that the numbers are all square.

by (Martin Raynsford) at 20 September 2016 10:13 PM

Shark Kits

I have combined all my tips and tricks for making a good kit into this one new design now available for sale in my store. You've seen this shark pop up a few times recently but I've now turned it into kit form. It varies from the original shark after Sam from Shiny Shiny wisely suggested that I put a flex section in the tail.

The kit itself numbers each part on both sides of the slots so part 1 fits into slot 1 etc, but when they are slotted together both numbers are hidden from view. Each part is held into the framework by very small 0.8mm wide tab which can be easily broken (so no need for a knife) and each tab is pointed at by an arrow so you know where to snap. I have redrawn the Just Add Sharks logo to be a Hershey text font which makes it much faster to cut and I have also included a little illustration of an assembled shark which will also aid building. Buy one from the store or cut one for yourself. (svg here)

by (Martin Raynsford) at 20 September 2016 12:05 AM

18 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Mechanical Counter Prototype

I want to keep track of how many times I've performed a task with a little mechanical counter so I built this prototype. This was intended to prove the gear ratios work and demonstrate how bad the numbers go onto the wheel. The next iteration will have a ratchet to click round one number at a time, the numbers will be done differently too, finally I'll add a third wheel so I can count to 999.

by (Martin Raynsford) at 18 September 2016 02:57 PM

15 September 2016

Martin Raynsford hackergotchi for Martin Raynsford


One of the stranger request I've ever had. Gradwell came round to see me this evening to test if it would be possible to engrave onto these crucifixes. The first cross is made of oak reclaimed from old pews which is pretty cool. I let the laser cut a hole in the right place and we used that to align the text. The second cross we gauged by eye which is why the text is slightly to the left.

by (Martin Raynsford) at 15 September 2016 10:18 PM

14 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Big Shark

I have a lot of corrugated card floating around from my materials orders and I needed a large shark model for the basis of a new project so I quickly scaled up the small shark model and  cut myself a new one over 1m long (there is a join around the fin). It quickly enabled me to check that the scale is right and I can carry on building. 

The blue foam is a different project again and came rolled up so this is the easiest way to get is flat for cutting again.

by (Martin Raynsford) at 14 September 2016 07:14 PM

12 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Sheep Trivet

With the Glowforge laser cutter currently experiencing at least 12 months of delay in expected shipping dates, several wannabe owners have started practising their drawing skills in preparation. Jules drew this rather cute Sheep Trivet and shared the files with everyone else on the forum. She used the pattern from one of my flexible sheets for the wool on the its back and I couldn't resist cutting it for her. One little sheep is now winging it's way over to the US in a parcel for her. 

by (Martin Raynsford) at 12 September 2016 11:30 PM

Engraved Glasses

I engraved some glasses for a friend with images of block dice. This was actually the reason why I had artwork to put on the sides of the die I previously engraved, I just had to wait for a moment to put in the rotary attachment. Whenever I use the rotary I find I end up having to cut a jig to hold the glasses in the right place this is partly because no two glasses appear to be the same and also because I always feel like I'm going to smash the glass in the jaws of the chuck. It's a simple jig that can be cut from scrap wood and it makes things a lot easier.

While I had the attachment in and some spare glasses I thought it would be cool to do some for myself. I chose to use the image from the top of my treasure box and I made a left and a right pair.

by (Martin Raynsford) at 12 September 2016 10:56 PM

10 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Celtic Knot Tray Puzzle

I used the patterns from these celtic knot dice to create myself a piece of knotwork. The knot was then split into lots of pieces, alternating between cuts and lines on the knots so that even pieces with multiple sections look like they overlap each other. No two pieces are the same so I'm hoping this only goes together one way. (svg here)

by (Martin Raynsford) at 10 September 2016 05:37 PM

09 September 2016

Martin Raynsford hackergotchi for Martin Raynsford

Vale Ritual Magic

The ritual magic system in Vale has different colours of magic to represent different things. This little dohicky shows what each kind is for, and also shows the rotation of magic around the great wheel. It's made of Birch and the grain from each section is aligned to point towards the centre. 0.8mm ply holds each of the mana crystals into place and because they're translucent you get a really nice shiny effect when you hold it up to the lights (It also helps to differentiate between the Pink/Red and Blue/Light Blue gems) 

by (Martin Raynsford) at 09 September 2016 08:00 PM

Jigsaw Puzzle

Jigsaw puzzles are such a simple thing to laser cut I'm surprised I hadn't done one before. I took the vector artwork from Wikimedia and a nice picture of a rose to make this puzzle. I made this to add content to my puzzle instructable, it's part of a competition so if you wanted to go over there and vote for me it would be appreciated. (svg here)

by (Martin Raynsford) at 09 September 2016 07:48 AM