Sunday, 13 August 2017

Maslow Arrival
My Maslow CNC router kit has arrived, so I have been making a frame for it. The frame is a one-off that fits on a wheeled trolley I made a while ago for sheet material storage. The dimensions seem to be absolutely correct for a Maslow frame, strangely, as I didn't build it with the CNC machine in mind.
The kit looks like this after it has exited the box.

The frame so far is a double A frame with some chipboard flooring for a sacrificial routing surface. (It's really cheap, which means it is comfortably sacrificial).

The A frame is constructed similarly to the standard Maslow frame, and I'm keeping the dimensions very similar even though I will be using smaller plywood sheets than the 8 x 4 foot sheets Maslow was designed for.
I'm planning on putting triangular motor mounts on the cross beam, hopefully they will be rigid enough for the motor/chain stresses. If not, then I'll look at a single beam across the top and supports. I'm using up a lot of material I have hanging around, hence a different design and varied materials.
3D Printing Failure
While attempting to make one of these:

I made one of these:

Shame it's not as useful.

Friday, 4 August 2017

A Bit of Leather Work

I made some new straps for this bag, using leather rather than a plastic version of leather that was originally used.

One of the original straps had just worn out:

While I was doing work on the bag, I also replaced the popper that was on a closing strap with a new one, as the old one had been bent out of shape:

Thursday, 13 July 2017

Canopy Fitting Fix

The canopy fitting that I remade in nylon was taken to Italy and tried out. The pivot bolt and nut were fouling on the part that this remade part fits into, so I have dropped the bolt and nuts by counter-boring the holes:

I used a 20mm Forstner bit to do this. The bolt and nut are now much lower and hopefully should easily clear the
other part:

I bought some stainless bolts, nuts and washers as I realised that the canopy is going to be used by the sea, and the original bolts were maybe not going to weather sea water exposure very well.

Wednesday, 12 July 2017

Distance Increaser

When washing nappies in the toilet it's always nice to have a distance increaser, or, to give it it's Latin name: A Pair of Tongs.
They keep your hands away from the juice found in toilets and allow movement of nappies without the brown tipping of fingers.

These can be made out of wood, and when made quickly out of offcuts of wood and a homemade hinge (old PC case) they tend to be crap.

When remade (from the same materials) they can be a lot better.

Special slider that stops the ends from missing as the tongs twist:

DIY hinges as the hinge pot was empty (made from old PC case sheet material):

In between the wooden bits, there's a spring, held captive by the slider:

It works a lot better.

Friday, 30 June 2017

The Wet Phone Affair
( or, How to Make Your Own SD Card)

One paddling pool plus one phone equals one project. After the phone was dried out it still didn't boot well enough to get stuff off it using USB. After all attempts to get the phone to boot had ended, there was one path left: take the flash memory off the phone and read it some other way. The phone was an 8G model and the flash was implemented using an 8G eMMC module. This is a common type of flash memory with a fairly standard pinout and form factor. The package used is a 153 ball BGA with pins on a 0.5mm pitch. Not all balls are connected, so it's definitely feasible to wire this device up and read the data off. Fortunately, as this is a eMMC device, it uses the MMC interface and so it is possible to wire the chip to look like a micro SD card.

So, I removed the chip from the phone PCB (hot air gun) and attached it to a micro SD to SD card adapter. Internally these are just wiring so there's ample metal inside to attach wires.

This is the internals after it's been wired up:

This device (Sandisk SDIN8DE2-8G)  has some things that I think are peculiar to itself. Some wiring hints:

D0 to D3 just wire to the appropriate SD card signals.
The CLK and CMD signals also wire directly.
The VCCI signal needs a capcitor to ground ( I used 200nF)
There's two VSS signals on this device and two VCCs. I wired both Vcc to the SD card Vcc and bot Vss to the SD card Vss.
I put a capacitor across Vcc and Vss. (1uF)

The wire I used was from an old transformer I dismantled, it has an insulating coating that needs to be scratched off to get a good contact. Thin wire is essential. A microscope is almost essential too, if just for inspection.

After wiring the SD card/eMMC arrangement, after a couple of false starts, it worked. The data was read with no errors in dmesg for a 7.3G dd invocation.

DIY SD card...

Friday, 23 June 2017

Vortoscope Sort Of

Vortoscope (Sort Of)

The vortoscope is an optical attachment for cameras which is similar to a kaleidoscope. I want to try to experiment with  one of these, so I decided to build a copy of the Leica universal polariser part that attaches to the lenses on the front of my M8.
The attachment is a circular ring that attaches to adapters that screw on to the front of each lens.

The basic ring:

I drilled some holes that will be used to mount various  front arrangements.

The first front attachment is a 3d printed holder for a prism from an old pair of binoculars I dismantled years ago.

The thumbscrews are used to  attach this assembly to the lens adapter disks. Using different 3D printed adapters I should be able to attach various different optical adjusters...

Fx502p Cassette Interface

Fx502P Cassette Interface

The Casio fx502p is an old calculator. It is from the 80s which was a time when the cassette recorder was more common that it is these days, and it was used for non volatile storage on devices like this. I have a couple of these calculators, but I don't have a cassette recorder any more, and I really would like to have a better way to store programs than a cassette tape.

So, the MK I cassette interface based on an Arduino Uno:

This breadboarded circuit was capable of reading a cassette file sent by the calculator and then sending that same file back again. The output from the cassette interface is a microphone signal of about 10mV so there's an amplifier stage to get the signal to a logic level. This breadboard proof of concept worked well, so I made a PCB version of the amplifier circuit.

The Arduino Uno is just fast enough to handle the signals from the fx502P, which are 2400Hz and 1200Hz pulses, but I wanted to try to get this circuit working with calculators and computers that use faster signals, so I replaced the Uno with a Due which is a much faster processor. It also has more flash memory and RAM so I can add the SD card interface to the Due and have enough flash and RAM space left over to cache programs received over the interface.

The SD card interface was integrated with the amplifier on a shield:

The trimmers are used to adjust the gain of the amplifier stages and also the final threshold level on the comparator stage that is used to generate the final pulses .

The control of the card is currently done using the arduino serial interface. There's a set of commands that can be sent to do things, like send the current RAM buffer back to the calculator.

This is a program file sent from the fx502P:
This can be written to SD card and then read on a PC. You can also alter the program or data on the Arduino and send that back to the calculator. In this way you can get access to program instructions it is impossible to access from the keyboard, or the alphanumeric characters that, in the case of the fx502p can only be accessed with a sequence of keystrokes.

This is the fx502P receiving a program from the arduino:

Here I have sent the memories in one fx502p, modified them to give alphanumeric characters and sent the modified memory data to a second fx502P, you can see them on the calculator on the right.

 Next, I need to add a few commands to the code to read files from SD card and also see what other calculators and computers I can get to work with the interface.
I also added code that used the bottom bit of the file number to turn the Arduino LED on if the bit is 1 and off if it is 0. This is a single bit output port. It would be very feasible to assign input and output ports to one of the memories of the calculator (perhaps just for a particular file number). This would allow the calculator to control external hardware and read sensors etc. You could also attach an I2C port to the calculator with some extra code. I'll try this as well.

Sunday, 28 May 2017

Video of DRO Operating

Video of DRO Operating

I've made a little video of the DRO operating so you can see how fast the update rate is. It's several readings a second and easily fast enough for anything I do. The gauge data stream is pretty fast and all six channels are read by the main processor over I2C, only three are displayed.

The main TFT is quite slow with big updates, but just about responsive enough when I use the menus.

One thing I was worried about was the auto power-off that the gauges have. After a period of inactivity they shut down, but fortunately all they do is turn the display off. The data stream continues, which is perfect for a DRO like this. It also might explain why the batteries go flat so quickly...

Tuesday, 16 May 2017

Latest OLED Watch (Isn't OLED)

The OLED watch project started when I saw some small OLED displays on ebay and thought 'What can I do with that?'. The watches followed, but there was always the problem of the power consumption of the display. I manage about 400 hours of use from a rechargeable 2032 battery, more from a non-rechargeable (the capacity is higher).
So, I had a look around and found a lower power display, one of the Sharp memory LCDs. These are very low power LCD displays.

A redesign of the hardware to drive the LCD was needed as the display isn't I2C, it's a serial bit stream. The hard part of using this LCD was finding a way to solder the 0.5mm pitch connector on to a PCB. Milling that connector was challenging as well. In the end I got a new soldering station so I have hot air. I also have a stencil for solder paste application. As well as milled PCBs I had a few made up by Dirty PCBs so I have a full solution if I need it.

The code was adjusted and the display was up and running.

The PCB is reversed due to the layout of the display connection. It's a cleaner look, but less interesting. I may revisit that in a later iteration.
The battery has also been reversed.

The overall watch is as thin as the OLED one and is very wearable.

So far the battery life seems to be far in excess of the OLED watch. The display update takes 20ms and to get power consumption to an absolute minimum the display is updated every 5 minutes. I'll see what real world battery life I get from this and then decide on what update rate I'll settle on.

Friday, 5 May 2017


Microprofessor MPF-1P

I recently bought an MPF-1P, which is an old Z80 training board. The one I got was in a bit of a state. The crystal had been removed, as had the processor. There were no ROMs and the 7805 regulator had also gone. The display power supply wasn't working as a transistor had blown.
These old bits of kit are very fixable, as the schematics are findable, and the PCB is all through hole technology.
I had all the parts I needed to fix the MPF in my parts bins, and got to the stage where the display had a scanning across all the digits. When the reset key was pressed the scanning stopped. I had found a ROM image online, but it had 'BAD DUMP' next to it, which was suspicious. I put out some feelers via email and on a forum (EEVBlog) and within about 5 hours I had a reply that listed a site which had many images and files. One programmed 2764 later and the MPF is alive:

I have some other images I'm going to try, but unfortunately I found that my old EPROM eraser no longer erases. I think the bulb has gone. As it's cheaper to get a new eraser from China than buy a new bulb (if I can foind one), I've ordered a new eraser. It'll arrive in about four weeks I'd think, so things are on hold for a while.

After this success, I thought the keyboard deserved a clean:

Wednesday, 19 April 2017

All Gauges Attached to DRO

The remaining gauges have been attached to the DRO. There's now 3 gauges on the lathe and three on the mill. All of the gauge channels are now populated and attached:

Each card has a PIC on it that converts from the gauge serial protocol to I2C. The main ARM processor then interrogates each of the relevant gauge channels over I2C and displays the values.

Each of the gauge channel PCBs is identical, the firmware is almost identical, the only difference is the I2C slave address, which is 0x30 and 0x40 for each pair of PCBs on the same I2C bus. There's three I2C busses.

The main DRO PCB has an ARM processor on a commercial LPExpresso card:

The TFT screen is a touch screen and there's a menu system running on it. The DRO can be set to display the lathe channels or the mill channels. The smaller OLED displays then show the appropriate axis tags. When running in lathe mode the two X axis values can be added together.

The gauges have been attached with 3D printed plastic mounts. I may re-make them in metal if they aren't rigid enough.

The gauges are held in clips that can have screws clamping them from the sides:

 I've removed the buttons from the gauges if they were presse dby the clips. The buttons aren't needed and you also don't need to read the displays as the DRO does that.

The batteries aren't needed either as the DRO channels all have a 1V5 power supply. The gauges run from that and are powered all the time the DRO is powered. The power down of the gauge display doesn't stop the serial data stream, either, which is nice.
 The mill X gauge is mounted in a similar way:

The Y as well:

And the Z gauge:

The lathe bed gauge was one of the more complicated mounting arrangements.

I've started to use the DRO and it certainly makes measuring things much easier. I need to check that the gauges are working correctly by comparing with a dial indicator.

Friday, 7 April 2017

Picture Frames

Three picture frames were required for a significant day. I thicknessed some offcuts of scaffolding board and mitred the corners. Some glass from our old windows was cut down. An old box was used as a backing sheet.

I normally glue frames and hammer sprigs in for support, but this time I used proper V nails manually hammered in. They worked well, so much so that I didn't need to clamp the frames as the glue dried.

Thursday, 2 March 2017

When You Have a Remote Control RGB Lightbulb...

... you always turn the lightswitch on and off instead of using the remote. It's just habit. So, one of these is needed:

the light switch is still accessible:

Wednesday, 1 March 2017

Latest OLED Watches

The latest iterations of the OLED watch are finally approaching wearable. Well, the first of the two is wearable but a bit thick. The second is much more wearable size.

The first iteration is the smallest PCB so far fitted into a 3D printed case and mounted on a cloth strap latched with velcro.

The switches are mounted on the top and the clear front flexes when they are pressed.

The overall thickness is 15mm, which is a bit too thick to wear comfortably. It gets caught on sleeves and catches easily on fabric.

The latest iteration is a one that doesn't use a PCB. This removes 1.6mm of thickness immediately, but makes the construction more manual.

The wiring is manually laid out and not very tidy. the thickness is much less, at 9mm, or 10mm to the tops of the front cover screws. Compared to my main watch this is very similar.

The components are mounted in a 3D printed frame like this earlier version:

The minimum thickness is fixed by the switches that I have used. The wiring adds a millimetre or so to the thickness, that could be reduced by inlaying the wires into the frame. More use could also be made of the 3D space in the frame. At the moment there are no components on top of components.

Using a PLA 3D printed frame is useful as it is possible to heat components and wiring up with a soldering iron and push it into the PLA. This then holds the component firm when the plastic cools.

There may be a better way to wire the components, maybe using a smaller PCB that just has the surface mount components on it.

Tuesday, 28 February 2017

Casting Test

The first sand casting test is a simple one:

To hold it I have made a  box on the CNC using some custom  Gcode:

This box fits the casting really well (the peak of the cap had to have it's own cut out, this keys the box lid as well:

It's quite plain on the outside:

The box gcode was generated using a Tcl script, and I'm going to create a parametric top level script that drives the lower level gcode scripts so that I can generate boxes like this of any dimensions just by running the top level script.