Friday, 5 April 2013

Conversion of an old Sigma lens to work with newer Canon bodies

The aim of this how-to/tutorial is to enable anyone with basic soldering skills to adapt old Sigma lenses to work with new (digital) Canon bodies.


Nobody bot you is responsible apbout whatever you might do. The procedure described here comes with no warranty. It has however been working for many people.


All the credit for what is described below goes to the members of, especially Slein & Nightshot. The original post can be found here.
My role in this project has been to gather all the info found on the forum thread and write this how-to. Since I do not speak German, some of the credit must also go to Google Translate.

Your shopping list

All the items needed to perform this mod have been purchased from eBay. You can however purchase them wherever you like. Before you start, make sure you have all the components and tools you need.

Components required

  • ATTiny24 x1
  • 10k resistor (colour code: brown-black-orange + precision_colour) x1
  • 47k resistor (colour code: yellow-purple-orange + precision_colour) x1
  • 100nF ceramic capacitor (with 104 written on it, to be precise) x1

Tools required

  • A computer: to program the microcontroller
  • An AVR programmer (I used an usbasp, which can be found en ebay).
  • A solderless breadboard and some jump wires
  • A soldering iron (not too powerful, obviously) and some solder
  • Some screw drivers to open your Sigma lens and pliers

Program the micro-controller

The first step is to program the micro-controller with the code needed to translate the new Canon auto-focus commands to something your old lens will understand:

Download and install the software pre-requisites

  • AVRDUDE (project homepage): exists for Linux, Windows, MAC… it’s up to you, really
  • The driver of your AVR programmer (if needed)
  • The code for the microcontroller. There are three versions, which can be found on the three original posts(v1, v2, or v3) and mirrored by Altomcat here (link to his blog here) and here.

    Note: I personally used v3 first and it works all-right. With v3, it crashes sometimes and randomly when taking a single shot (camera on/off required) and when taking two pictures within a second or so. After experimenting, I eventually chose v2 which crashes the camera sometimes but allows me to take bursts.

Connect the micro-controller

To program the ATTiny24, I used an usbasp programmer (which can easily be found online, e.g. ebay):

The controller needs to be set to 5v (if selectable on your programmer). Then the controller can be connected to the programmer. The picture below shows the pinout of the usbasp programmer (left below) and ATTiny24 (right below):

I connected the following pins:

On the picture below
Pin 2 (VTG)
Pin 1 (VCC)
Pin 4 (GND)
Pin 14 (GND)
Pin 1 (MOSI)
Pin 7 (MOSI)
Pin 9 (MISO)
Pin 8 (MISO)
Dark blue
Pin 5 (RES)
Pin 4 (RESET)
Pin 9 (SCL)
Med/light blue

Before connecting the programmer to my PC, I also connected

  • A 100nF ceramic capacitor (with 104 written on it, to be precise) between Pin 1 (VCC) and Pin 14 (GND) of the ATTiny24. Since ceramic capacitors are not polarised, the capacitor can be connected in any direction as long as one leg of the capacitor is on the VCC and the other is on GND you’re good! This is a protection for the power supply of the ATTiny24.
  • A 10k resistor between the Pin 1 (VCC) and Pin 12 of the ATTiny24. This is a ‘pullup resistor’: since the pin 12 is the input (signal coming from the camera) of the ATTiny24, the resistor will automatically ‘pull’ the voltage on Pin 12 ‘up’ if it is not brought down to GND by the camera. This sets the value on Pin 12 to ‘up’ by default. Resistor can be connected in any direction.
  • A 47k resistor between the Pin 1 (VCC) and Pin 4 (Reset) of the ATTiny24. This is to make sure the processor does not reset randomly by keeping the Reset pin up. Resistor can be connected in any direction.

Upload the software into the micro-controller

To program the micro-controller, I used the following command under the console in windows (administrator mode):

avrdude -c usbasp -P usb -p attiny24 -e -U flash:w:TinyMod.hex
avrdude -c usbasp -P usb -p attiny24 -U lfuse:w:0xc2:m -U hfuse:w:0xdf:m

Note: you may need to replace the “usbasp” by the programmer if you are using another one. More info on avrdude (syntax) here.

Open the lens

This section describes how to open a Sigma 70-210 2.8 APO (for Canon). The procedure should however be similar for other lenses.
Caution: DO NOT START opening the lens without the appropriate screw driver, this will damage the screws.

  1. Remove the three inner ring screws first (red arrows)
  2. Unscrew the two small silver screws holding the connector (yellow arrows)
  3. Finally, the four lens mount screws can finally be removed (blue arrows).
Note: that this last step is optional but will make things much easier.

This is the final step: remove the four screws holding the metallic cover protecting the lens’ electronics (red arrows).
The next picture shows the lens open where the connector and PCB are accessible.

Solder the controller

Once the ATTiny24 is programmed, it can be soldered to the lens. Here is how I did it:

Solder the resistors and capacitor on the ATTiny24 and mount it into the lens

For those of you who like to work with professional diagrams, Altomcat made a nice one here.

I personally find it useful and prefer to use a hybrid solution showing where the physical connections are located on the ATTiny24 (this is impractical for more complex circuits...):

Note: pin 8 should not be connected to GND when programming the ATTiny24 (or it won't work).

Close and test the modified lens

This is the easiest step...  here is how I did it:
  • Check all your connections to make sure you're not going to destroy anything
  • Close the lens (hint: you need to go through the procedure to open the lens backwards ;-)
  • Attach the lens to your Canon body and take a picture. I would test the following:
    • Taking a single picture with the lens wide open
    • Taking a single picture with the lens NOT wide open
    • Taking a burst of photos.
That's it, have fun with your re-chipped lens!

Tips and tricks from the readers

  • JV: It involves soldering near the rear lens element, so I protected the rear element from solder splash with adhesive backed copper tape (being careful to not actually contact the glass). I assume a couple of layers of Aluminium foil and some masking tape would do the job too.
  • JV: The only suitable cable I had to hand was multi-core data cable wire, which is a pain to solder as it's stainless steel and doesn't wet well. An expert advised me to flux and pre-solder the stripped ends and the target contacts before making the final solder bond. This makes sure the solder at least penetrates the strands and gives some mechanical keying adhesion.
  • JV: Soldering the wires to the EOS connector before connecting them to the chip seemed easiest to me.
  • JV: There's fragile looking gears and belts visible inside the APO tele lens so to avoid the chip or wires fouling on them I wrapped the chip in electrical tape and secured the it to the inside of the lens casing using a solid block of 1mm thick double sided adhesive tape, a bit like a bug with it's legs in the air. It's secure but can be prised off if needed.
  • JV: Before commiting to a test with my DSLR I tried the lens on an old film body first. I figured if I'd made a mistake that was bad enough to damage a camera then I'd rather it wasn't my DSLR, and old film bodies are cheap on eBay.