Translate

Thursday, 13 August 2015

Mini 1275GT ... more corrosion




 ... and so it continues....


N/S Floor in 
N/S heel board cut out
Check alignment
New N/S heel board cut to size...
... and welded in place.
There needs to be 50.5 inches between these bolts and the ones on the other side.
N/S heel board / boot floor/ rear pocket closer panel welded in
N/S inner sill seat belt mounting point welded in, and door step to a-post panel lined up
... and welded into place
N/S rear quarter repair cut to size and welded.
Nasty near side floor bodge removed
... rear pocket unpleasantness!
Much more to cut out yet!
O/S Inner wing repaired
O/S heel board / rear seat area repaired
... and rotten heel board cut out
more to come ....
Inner wing repair (another view)
Nasty.. most of the floor comes out with the a-post still attached
... nasty
Lower rear pocket is in a bad way due to being sandwiched between two rotting pieces of floor 
.. so a new section is made up and welded in place

Floor taking shape...
Check fit ... and I'm not happy with it... 

... so I turn my attention to the rear heel board again! 
and the closer panel
Outer sill in place... 
... starting to come together... but why wasn't I happy with the fit?
Because the centre cross member was in a bad way .... so I cut it out
.. welded some tabs to a new one to ensure good alignment, and welded in place.
... then the boot floor gets a repair piece...
... or three
Valence checked for fit
Rotten lower section of the rear panel cut out and replacement welded in

Inner wheel arch repair (this is where it all started!)
.. then I hit filler in the top part of the O/S rear quarter...
... so it gets cut out
... and , after two evening's worth of cutting and fettling...
The new panel is fitted and welded in.
Window rail and quarter stiffener panel fitted.





A coat of primer to protect the new metal.



A coat of priner and stone chip for the floor , and refit the freshly painted rear subframe.



Refit the front subframe (again freshly painted), and back on it's wheels.


... still much work to do to the front panel, and of course paint and reassembly, but that's it for now.




Monday, 6 July 2015

Mini 1275GT Corrosion.

This has been taking up the vast majority of my time lately, which is why I've been a bit quiet!

It all started out last year when the yearly MOT test (road worthiness) failed, with some small rust holes to the body. This isn't uncommon in Mini's, and, afterall, it is 37 years old! I thought there was a few hours work, to cut out the rust and weld in some new metal ... oh how wrong I was.... The hole grew and grew and grew as I cleaned it up... there was only one thing for it, a full body repair job .....

 Hiding in the garage having failed it's MOT
 Bonnet (that's the hood, if you're across the pond) off, engine out
 Floor doesn't look too bad ...
 But the boot floor is rotten. You can't really tell from this photo, but the back edge is shot away. It's been badly repaired in the past.
 The wife saying goodbye, as it goes off to my friend's larger garage for surgery.
 Front sub-frame removed....
Followed by the rear...
 Support added between from sub-frame mounting points. This will support the body and stop it distorting as it's repaired.
 Bar inserted through the support...
 Through the centre of the car....
 ... and to a similar support mounted to the rear suspension mounting points...
 .. and the whole body supported on the bar in between two stands.
As this is a later car, I had to cut a hole in the rear of the car so the bar could pass through. Earlier cars have a cut-out here.
 Rear support retails...
 And the exposing of the poor repairs and corrosion starts to occur. This is the left hand side sill being cut off, to reveal another sill rusting away beneath. This is very bad practise. The replacement sill was also a "wide". They are designed to hid a lot of the corrosion. Always be wary of a car fitted with "wides"! They block the drain holes, and cause further rusting :(


 This hole is the end of the centre cross-member. It should have the inner sill covering the end, but it has long since rusted away. The jacking point bracket is largely missing.

 This is the right hand side. Things are worse here. There are three sill sections in places and two pieces of floor, one over the other! I can't see the purpose for this, though, as both bits appear to be sound...


 Cutting out the rot...




 Parts are ordered ....
 .. from the very helpful people at Bull Motif Spares. They do mail-order, but they're only in the next town, so I popped over.
 Cleaning back to good metal...

 The jig allows the car to be put in any position.

 I decide to lose the air vent holes. These are a known rust-trap. The left hand side isn't too bad.


 Line up the floor...

 And weld in place...










Sizing up the sill and quarter panel repair ....














... and that's where I'm up to. There's a lot more to come ....

Friday, 19 June 2015

LED GU10 Lamp repair!

About 2 years ago, I replaced the 35 watt halogen spotlights in my lounge with some nice warm-white LED equivalents. They weren't a lot of money, and represent a saving of 31 watts per lamp. There are 21 in my lounge, so a total saving of 651 watts! The light output is pleasant too, warmer than the halogen. They are also fairly good on the RFI front. There's a little on the medium wave and long wave bands, but HF and VHF seem immune.

I've had a couple fail, but I'd got some spares, so I simply replaced them. I kept the bad ones, as I had to disassemble them to see if they were repairable! I hate landfill!

The failure mode is either no light, dim light or flickering (usually before going off completely)

In each lamp there are 3 LEDs in series, and a nice constant current switching converter.

In all of the failures so far, the failure has been down to one of the LEDs going open circuit.

Repair is easy, using a current limited power supply, check each LED. The duff one reveals itself easily.

Removing the surface mount LED is easy enough, and it has a heatsink area on it's base. I removed a known good LED from on of the earlier faulty lamps, and replaced it, noting to check polarity, and adding a small dab of heatsink compound to the back of the LED.

The PCB on which the LED mounts to has a small copper area, which, in turn, forms a heatsink area with the aluminium body of the lamp. Ensure the LED is mounted so it's heatsink area is in good contact with the board, and, in turn , ensure the board has enough heatsink compound, and is seated tightly against the aluminium heatsink. On my lamps, the contact pressure is achieved by the lens clamping the board and LEDs together.

Note when soldering (or desoldering) a good LED, speed is of the essence. These devices are easily destroyed by heat. This is most likely the cause of the original failure.

Lamp showing two LEDs missing, the board and the aluminium heat sink.

Friday, 8 May 2015

Arduino GPS clock with MAX7219 driven 7 segment displays.

This is the start of an on-going time standard project.

The idea is to have three clocks, one MSF clock being received from the NPL on 60KHz, one DCF77 clock on 77.5 KHz and one GPS clock.

This is the first part of the clock, the GPS clock.

I'll be using the Ublox NEO receiver I've used before in the fast GPS-logger project here. The receiver is configured in exactly the same manner as described in that article, so pop along there and learn how to use u-center to configure your receiver.

I purchased some great MAX7219 display boards from eBay. There was a bit of a wait, as they came from China, but they were much less expensive than others, and the build quality is OK.

 Note on some board the CS pin is marked up LOAD.






I'm not going to draw a schematic, as it really is simple. (Leave me a comment if you get stuck!)
The wiring is commented in the code below.





The code is also simple, we're not doing anything particularly clever. There's a bit in the code which writes "no GPS" on the display, and this is defined as a bitmap. The bitmap refers to the segments as follows:

Bit 1(LSB) is G
Bit 2 is F
Bit 3 is E
Bit 4 is D
Bit 5 is C
Bit 6 is B
Bit 7 is A
and finally, bit 8 is the decimal point.






Here's a quick video of the clock in action:


... and here's the code:-

/*
 7-segment GPS clock 
 Version 0.9
 Written by Andy Doswell 2015
 License: The MIT License (See full license at the bottom of this file)
   
 Schematic can be found at www.andydoz.blogspot.com/
 
 You will need the LedControl library from http://playground.arduino.cc/Main/LedControl
 and the very excellent TinyGPS++ library from http://playground.arduino.cc/Main/LedControl
 
 pin 12 is connected to the DataIn 
 pin 11 is connected to the CLK 
 pin 10 is connected to CS
 pin 0 (RX)  is connected to the GPS TX pin

 */
 
#include "LedControl.h"
#include <TinyGPS++.h>

LedControl lc=LedControl(12,11,10,1); //Tells LedControl where our hardware is connected.
TinyGPSPlus gps; //TinyGPS++ class
static const uint32_t GPSBaud = 57600; //Our GPS baudrate. 
int hourTen; //tens of hours
int hourUnit; //units of hours
int minTen; // you get the idea..
int minUnit;
int secTen;
int secUnit;
int centTen; //centiseconds.
int centUnit;
unsigned long timer =0;

void setup() {

  lc.shutdown(0,false); // Wake up the MAX 72xx controller 
  lc.setIntensity(0,8); // Set the display brightness
  lc.clearDisplay(0); //Clear the display
  
  Serial.begin(GPSBaud); // start the comms with the GPS Rx
}

// This contains the bit patterns for the "no GPS" display.

void displayNoGPS() { // displays "noGPS" if the GPS lock isn't valid
  lc.setRow(0,0,B00000000);
  lc.setRow(0,1,B00000000);
  lc.setRow(0,2,B01011011);
  lc.setRow(0,3,B01100111);
  lc.setRow(0,4,B01011110);
  lc.setRow(0,5,B00000000);
  lc.setRow(0,6,B00011101);
  lc.setRow(0,7,B00010101);
}

void displayNoSerial() { // Displays "noSeriAL" in the event of serial comms fail.

  lc.setRow(0,7,B00010101);
  lc.setRow(0,6,B00011101);
  lc.setRow(0,5,B01011011);
  lc.setRow(0,4,B01001111);
  lc.setRow(0,3,B00000101);
  lc.setRow(0,2,B00010000);
  lc.setChar(0,1,'a',false);
  lc.setRow(0,0,B00001110);
}
  
// Displays the time on our LEDs
void displayTime() { 
  if (gps.time.isValid()) {
    timer = millis(); // reset the serial comms timer
    hourUnit = (gps.time.hour()%10);
    hourTen = ((gps.time.hour()/10)%10);
    minUnit = (gps.time.minute()%10);
    minTen = ((gps.time.minute()/10)%10);
    secUnit = (gps.time.second()%10);
    secTen = ((gps.time.second()/10)%10);
    secUnit = (gps.time.second()%10);
    secTen = ((gps.time.second()/10)%10);
    centUnit = (gps.time.centisecond()%10);
    centTen = ((gps.time.centisecond()/10)%10);
    lc.setDigit (0,7,hourTen,false);
    lc.setDigit (0,6,hourUnit,false);
    lc.setDigit (0,5,minTen,false);
    lc.setDigit (0,4,minUnit,false);
    lc.setDigit (0,3,secTen,false);
    lc.setDigit (0,2,secUnit,false);
    lc.setDigit (0,1,centTen,false);
    lc.setDigit (0,0,centUnit,false);
  }
  else
  {
    displayNoGPS();
    delay (2000);
  }
  
}

void loop()
{
  // If the GPS data is OK, then display it. If not display "no GPS"
  while (Serial.available() > 0)
    if (gps.encode(Serial.read())){
      displayTime();
    }
  if (millis() > timer+1000 ) // detects if the serial comms has failed.
  {
    displayNoSerial();
  }
  


  
}

/*
 * Copyright (c) 2015 Andrew Doswell
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHOR(S) OR COPYRIGHT HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 * THE SOFTWARE.
 */


Wednesday, 6 May 2015

Happy Birthday!

Wow. 1 year into this website.. 5,354 visitors.. more than half of you from the UK.... more than half of you on Windows devices, most of you using Chrome browser.

Aren't statistics amazing? I never thought I'd have more than a couple of hundred hits at most, let alone have people comment and email and enjoy the youtube videos.

Some of my projects have been built into other projects by people, and their results shared on, and so it goes on... and on ...

Most popular project is the Astronomical clock (or pond pump controller), rapidly followed by the DG7-32 'scope tube (which surprises me!), and the Dehumidifier project.

... anyway, when you sit down tonight, raise a glass with me.

Happy Birthday blog!