Sunday, 31 March 2019

External auto focus assist light for mirrorless cameras is now availble


Please note that all images are clickable if you wish to see them in larger size, just click on them.

This device is solving some of the problems, especially related to using mirrorless cameras in low light conditions, such as it is common in studio conditions, or other situations where the available light might be low. The main problem is that mirrorless cameras can’t use the external AF assist light provided by some flashes because the auto focus system cannot use the red light built in the external flashes, so the users must rely on the AF assist light which is built-in the camera. Unfortunately that light is often blocked partially or fully by the user’s hand, or by the lens.

This device can be used with almost any camera which has a built-in AF assist light. The only requirement is that the light sensor, which detects the AF assist light of the camera, must be installed by the user, so if you can do that then it can be used on your camera, regardless of brand or model.






The function of this device is simple


If the camera detects a low light situation and activates the built-in AF assist light then this device will detect that light and will provide the necessary AF assist light externally so that it will not be blocked but projected fully on the subject or the model.

The exposure or the white balance will not change because the light will be turned off before the exposure starts, the light is only on during the focusing process. Auto focus will be faster with less risk for racking and hunting than if you’d not use the AF assist light.

If this sounds interesting then you can order this device now. Please note that this is a DIY product, manufactured in low volume. It contains some 3D printed parts as well, and these parts are custom designed for the purpose.


Some technical information about the device


The used battery is a 23A type, which is a small but powerful 12V battery. Battery capacity is dependent the type and brand of the battery. Maximum current use of the device is 22mA. This means that the capacity is good for about 30 minutes to 2 hours of continuous light, depending on battery. This is normally enough for quite a large number of shots, depending on the speed at which your camera and lens can acquire focus. Focusing should normally not require more than 1-2 seconds, at least not with the Nikon Z7 and the 24-70/4 S lens, so even in the worst case, one battery should last for about one thousand images or more, better quality batteries will increase the number of images several times.

The LED which is used for the light is a high intensity (min. 18 000mcd) green LED, providing a range of about 8-10 meters, depending on the camera. The sensor which detects the camera’s built-in AF assist light is a high speed photo transistor. The delay introduced by the electronics is less than 2us, so it will not be noticeable during use and can be ignored. The size of the box is (L) 63 x (W) 25 x (H) 15 mm. 


It is important to attach the light sensor head in such way that maximum light from the camera's AF assist light hits the sensor when it is activated. This ensures maximum intensity of the AF assist light beam. Intensity is reduced if the sensor is incorrectly placed. Make sure also that the actual light beam emitted by the device is as centred with the lens centre as possible so that the light is covering the area where you want to get accurate focus. The adhesive putty supplied with the device allows installation almost anywhere on the camera body and also allows removal and reattachment if needed.

The light sensor head is 3D printed from PLA, which is environment friendly during the printing process as well as during use. If you wish you can use a different type of adhesive putty as long as it works together with PLA as well.

The universal sensor head is (L) 16 x (W) 10 x (H) 8 mm  so if you can fit that over the AF assist LED of your camera then you can use this device. The light sensor head is fixed to the main unit with a wire which is approximately 270 mm long. If you wish to have a longer one that can be arranged, just let me know. 

The AF assist light sensor and the main unit is attached to the camera and/or the flash using adhesive putty. The putty does not need any treatment, should not be mixed with oil or water or any other liquid. It is non-toxic and will not cause damage to the surface of the cameras, the flashes or other devices. It does not leave stain and can be easily removed. When stored, it can be put between two plastic sheets or a small plastic bag to protect it from dust.


The exposure and the white balance are not affected by the AF assist beam extender, assuming your camera works as expected. Tests of the device are carried out on two Nikon cameras only, the Nikon Z7 and the Nikon 1 V1.








Price and payment


The price for each unit is 60 EUR or 60 USD, depending on if you live in EU or outside EU. Shipping and handling costs will be added. At this moment this is 13 EUR in EU or 15 USD for shipments outside EU. I accept payments in EUR or USD only, no other currency will be accepted, orders paid in any other currency will be rejected.

Payments must be made through PayPal, no direct money transfer, checks or any other means are accepted. Prices and the terms are non-negotiable; if you think this is not acceptable for you or you think the price is too high, please don't buy it.


Note that due to transport regulations and restrictions, no battery will be included in the shipment. You have to buy the necessary 23A type battery locally.

How to order


If you are interested, please send me a mail using the contact information below. Please don't pay in advance before I confirmed that I have a device reserved for you.

After I received payment, I will need one work day to pack it and to ship it to you, using registered, traceable post. 


Please note that I will only sell this unit to buyers from Australia, Canada, USA, New Zealand, countries of European Union, Norway, Switzerland, Iceland, Liechtenstein, Jersey, Guernsey, Monaco, Aland, South Africa, Namibia, Botswana, Swaziland, Lesotho and Japan. Note that I make no exceptions made from this list.

Contact information


adapting(dot)camera at gmail(dot)com

Please note: the mail address above must be modified by you. You must replace the (dot) with real dots, the spaces before and after 'at' must be removed and the word 'at' must be replaced by @ sign. This is done to prevent internet robots from sending me spam mail.

After your modification the mail address will look like: axxxxxxx.cyyyyy@gmail.com


A final note about the AF assist light extender


This is a do-it-yourself product. No warranty is given, other than that I guaranty I tested the device before shipping it, and I guaranty that it is working on my Nikon Z7 and V1 cameras when I ship it. I have no possibilities to test it on any other cameras since these are the only ones I have.


Currently I am making two types of this devices, the difference between them is only the light sensor head. One is designed specifically for the Nikon Z6 and Z7, the other is a generic type. You must indicate which one you will buy when placing the order because after shipping there is no way to change the head. Both types will work with any camera, but it is easier to align on the Z6 and Z7 if you have the model designed for the Nikon Z cameras. The generic type can of course also be used on the Nikon Z6 and Z7, so if you have more than one camera model or brand, then maybe the generic type is the best way to go, but that is a decision you have to make.

Tuesday, 26 March 2019

The need for an external auto focus assist light

Many, if not all, cameras which are dependent on the built-in AF assist beam have the LED placed in a way which makes the light beam useless in many situations. This is typical problem especially for mirrorless cameras, which cannot use the AF assist lights built into some external flashes. These cameras are entirely dependent on the AF assist light which is built-in the camera body. The Nikon Z6 and Z7 are two such models, but that list could be made very long, and with the increase in the number of mirrorless models, that list groves heavily across every brand, not only Nikon.

The design of the cameras is a bit varying, especially across brands, and the AF assist LED can be located differently in different camera models or brands, but the number of possible locations is quite limited and I have so far not seen any camera where the LED can be placed optimally so well that it actually works without problems. The AF assist light LED is always blocked by the lens or the left/right hand holding the camera, regardless which camera we look at.

This is a problem even if the camera is on a tripod. The level of problem also depends on the subject to camera distance and the camera model. This is the case even with the lens hood removed, some lenses are just too large in diameter, or too long, so they block the light completely or partially.  Sometimes only half the AF area, or even less than that can be used, the rest is blocked by the lens. This problem severely limits the ability of image composition, and the problem can become quite serious if you want to use AF areas which end up totally out of the light beam.

Another problem with the built-in AF assist solution is that their range can be very limited, depending on camera and the age of the camera. LED technology evolved quite a lot the last years, and today we can have small and very bright LEDs with low power demands, but typically older cameras have quite weak LEDs.

The video below demonstrates both the problem and the possible solution.




The solution is fairly simple


A separate and external AF light, which turns on and off by the AF assist light of the camera. This unit can be used on almost any camera, not only the Nikon Z6 and Z7, as long as it has an AF assists LED built-in the body. The brand, size or the format of the camera does not make any difference; it can be used on small, as well as large cameras, DSLRs as well as mirrorless cameras. The light beam emitted is bright green, just like it is commonly used in mirrorless cameras.

The circular green light beam provides a bright area in a large part of the image area, allowing you to compose the image and place the focus freely in a much larger part of the image than before. The light is strong and the camera will normally focus quickly and accurately, without racking, or hunting.

The light is switched off immediately when the camera switches the internal AF assist light off. This means that the exposure is not affected by the AF assist beam extender device. The green light will be switched off before the actual exposure, so the beam will not be visible in the actual image and will not contribute with any light for the image. It will also not affect the white balance measurements.
The range is about 8-10 meters, depending on the type of battery and the level of charge. This range is measured on a Nikon Z7 with the 24-70/4 S lens on it. Other cameras and lenses may give other results. Note that the range will degrade as the battery gets used and discharged.

The used battery is a common 23A type, which is a small but powerful 12V battery. Battery capacity is dependent the type and brand of the battery. Maximum current use of the device is 22mA. This means that the capacity is good for about 30 minutes to 2 hours of continuous light, depending on battery. This will normally be enough for quite a large number of shots, depending on the speed at which your camera and lens can acquire focus. Remember that focusing normally should not require more than 1-2 seconds, at least not with the Nikon Z7 and the 24-70/4 S lens, so even in the worst case, one battery should last for about one thousand images. Of course, if you are using better quality batteries this number will increase several times.

There is an on/off switch on the device. Use it if you store the device or if you don’t intend to use it over a longer period. The current consumption is basically zero when the device is in the dark, but it is totally zero only if it is switched off, so it is better to switch it off when not in use. The light is on only for the duration the camera requires for focusing, and this is when the device actually is using the battery.

The flexible attachment solution provides a liberty to place the device on almost any other device, be that a flash, a camera or even a radio trigger. The adhesive putty supplied with the device can be used for many years over and over again, allowing the attachment and removal of the device and the sensor many times. It does not need any treatment, should not be mixed with oil or water or any other liquid. If it feels dried out it should be massaged between your fingers until it feels right. It is non-toxic and will not cause damage to the surface of the cameras, the flashes or other devices. It does not leave stain and can be easily removed. When stored, it can be put between two plastic sheets or a small plastic bag to protect it from dust.

This device will be available soon, solving some of the problems related to using mirrorless cameras in low light conditions, such as it is common in studio conditions or other situations where the available light is low. It will increase the focus speed even in situations where focus is possible, but slow due to the low light. If the camera detects such situation and activates the built-in AF light then this device will take over and will provide the necessary AF assist light.

Note that the video above shows a prototype of the device. The final product will be slightly smaller, but will have the same range, using the same battery as in the working prototype.

A final note


This device is now available. Check this post for more details:

https://adapting-camera.blogspot.com/2019/03/the-external-auto-focus-assist-light-is.html

Friday, 1 March 2019

Flash use on the Nikon Z7

Since the Z7 is a fairly new camera model, not only for me, but for every other Nikon Z7 user also, the knowledge about how well it works with different flashes and triggers is limited. I decided to test my flashes, not because I don't trust Nikon, but because I have a two non-Nikon products also and I don't know how well they work with the Z7. These two are the JY610N, which is a sort of SB-400 clone, and a Meike MK-14EXT ring flash. Both of these worked perfectly on the D800 I had before, and both showed up in the EXIF data as if they were an SB-900 flash.

There are no surprises regarding the original Nikon flashes I have, the SB-700 and the SB-900, both of them work as described in the manual of the Z7. What I need to see is how well the cloned products behave on the Z7, and here I found out a few surprises.

The image to the left was used as reference image to test the exposure to see if iTTL works as it supposed to be.


All the pictures are all clickable if you want to see a larger image.


The Nikon SB-700 and SB900


As said before, both of them work individually, or in any combination just as described in the manual of the camera. The only thing that is not working is the AF assist LED, but this is known and is as expected.

It seems also that the SB-700 and the SB-900 together with the Yongnuo YN622N kit seems to work well in all modes, iTTL and manual, single or dual flash, compensation and so on. Once again, the only thing not working is the AF assist LED which is built in the Yongnuo YN622N kit units, but again, this is as expected.
The EXIF of the image always shows that the SB-900 is used, even with the YN622N-TX.


The JY610N is not working in iTTL mode. It worked on the D800 but not the Z7. The flash fires at full power all the time, no TTL pre-flash, and the flash is not showing up in the EXIF. As a consequence, images taken with it are overexposed, unless switched to manual mode.



So, if you consider a small flash to be kept in your pocket just in case you need one, don't bother buying this one.

The Meike MK-14EXT ring flash works also only in manual mode, which I think is sad because it is my only ring flash. I don't understand what is happening, because the flash is not firing at all in iTTL mode. In manual mode it works perfectly well, so I can still use it, but it is annoying that it is not working in iTTL mode.

Using any flash in manual mode is pretty easy, but of course, many times iTTL is an advantage, especially for people who don't have a flash meter or must change shooting distance often.


How to fool the camera


The Z7 can be fooled to believe that these flashes are also SB-900 flashes if the flash is placed in the YN622N trigger and triggered with the help of the YN622N TX.



This combination works with the JY610N, just as the SB-900. The only thing is that using the flash this way is sort of pointless because it is no longer a pocket-able small flash so I might as well use the SB-700 or the SB-900. Never the less, it works well this way.

The Meike MK-14EXT ring flash can also be used in full iTTL mode if the flash is on a YN622N trigger.



This is a usable, but an inconvenient alternative because whenever I want to use it I must add also a bracket to be able to hold everything and to be able to handle the camera at the same time. This is OK, though I would prefer if it was not needed. But at least I know how to use it in TTL mode if I want to.

Of course, in all cases when the YN622N is used, the flash information in the EXIF still claims that it is an SB-900, regardless which flash it is triggering. This doesn't really matter as long as it works in iTTL mode.

My older flashes are all made for film cameras, and they work just like they worked on my old film cameras.

Saturday, 9 February 2019

Selling my modified Nikon SB-N5 flash


This is a modified version of the Nikon SB-N5, which I made before I started making the V1-F1A. I have no longer use for this flash, mainly because I practically no longer use the Nikon 1 V1, so I decided selling the flash. The flash is in perfect condition, it works as the original SB-N5, and you have the possibility to add an external, more powerful flash if needed. Selling it with the original box, manual and the pouch.



When you need more light, or are looking to add a creative touch to illumination, then this modified Nikon 1 Speedlight SB-N5 is the one to use. Plug this compact i-TTL compatible flash unit into the Nikon 1 V1, V2 or V3 camera's multi-accessory hot shoe and use it as a flash on top of the camera, or add a radio trigger or a more powerful flash using the PC connector in front of the SB-N5. Note that i-TTL is only supported without additional flash, as the original SB-N5 is supporting it. Adding extra flash requires manual flash and camera mode use.



The SB-N5 can be tilted or twisted up, down, left or right and bounce the light if needed. The flash can double as a continuous light source illuminating for six seconds during both Motion Snapshot and Smart Photo Selector modes. Extra batteries are not required—the camera powers the SB-N5 flash from the camera battery.



The SB-N5 does not have to be switched on if the SB-N5 is not needed and you just want to add an external flash or radio trigger. In this case the SB-N5 acts as an adapter only, it will not fire itself, only the external flash or remote trigger will be triggered by the camera.



Note that the added PC contact does not have any protection, so only flashes made for digital cameras with low trigger voltage should be attached. By adding a flash with high trigger voltage the SB-N5, or the camera, or both will be damaged. The flash is tested before shipping it, but there is no additional warranty, other that I guarantee that it is working when I pack it.



Technical specifications of the SB-N5


- Guide Number

8.5 m/27.9 ft. (at ISO 100, 20°C/68°F) to 12 m/39.4 ft. (at ISO 200, 20°C/68°F) 

- Effective flash range (i-TTL)

2 to 66 ft. (0.6 to 20 m) (varies with ISO sensitivity, bounce angle, and aperture) 

- Bounce Function (Rotate)

Vertical: Flash can be rotated up 90° from horizontal with stops where the flash is pointing directly ahead and at 60°, 5°, and 90°
Horizontal: 180° right to 180° left, with stops where the flash is pointing directly ahead and at 30°, 60°, 75°, 90°, 120°, 150°, and 180°
 


- Approx. Dimensions (Width x Height x Depth)

2.0 in. (50 mm)  x  2.8 in. (70.5 mm)  x  1.6 in. (40.5 mm) 

- Approx. Weight (without batteries)

2.5 oz. (70 g)

How to order


If you are interested, please send me a mail using the contact information below. Please don't pay in advance before I confirmed that the flash is still available and that I reserved for you.


After I received payment, I will need one work day to pack it and to ship it to you, using registered, traceable post. I will use the Swedish Post and will charge you what they are charging me.


Please note that I will only sell this unit to buyers from Australia, Canada, USA, New Zealand, countries of European Union, Norway, Switzerland, Iceland, Liechtenstein, Jersey, Guernsey, Monaco, Aland, South Africa, Namibia, Botswana, Swaziland, Lesotho and Japan. Note that I make no exceptions made from this list.





Contact information


adapting(dot)camera at gmail(dot)com

Please note: the mail address above must be modified by you. You must replace the (dot) with real dots, the spaces before and after 'at' must be removed and the word 'at' must be replaced by @ sign. This is done to prevent internet robots from sending me spam mail. After your modification the mail address will look like: axxxxxxx.cyyyyy@gmail.com

Price and payment


The price for this modified SB-N5 flash is 99 EUR, 110 USD or 1030 SEK, whichever you prefer. The price may change as exchange rates are changing. This price excludes the shipping and handling, the total price will be calculated when I have your personal data.

I accept payments in EUR, USD or SEK only, no other currency. Payments must be made through PayPal, no direct money transfer, checks or any other means are accepted. You are paying the PayPal fee, payments without the fee will not be accepted. Currently the PayPal fee is an additional 3.9% + a fixed small sum on top of the total costs. Shipping and handling costs will be added, this cost is not possible for me to predict, I will charge you what the Swedish Post charges me, which at this moment is 13 EUR or 15 USD for shipments outside Sweden. I will ship with registered, traceable post only.

Prices and the terms are non-negotiable, if you think this is not acceptable for you or you think the price is too high, please don't buy it.

A final note about the modified SB-N5


Even though it is based on the original Nikon SB-N5 flash, this should be regarded as a do-it-yourself product. No warranty is given, other than that I guaranty I tested the flash before shipping it, and I guaranty that it is working on my Nikon V1 when I ship it. I have no possibilities to test it on the Nikon V2, V3 or any other future models since I only have the V1.

Remember also that a deal is a deal, if you bought it, it is yours. I will NOT take it back, not even for a reduced price. This may sound harsh, but I have bad experience and this is the "lessons learned" from that experience. It is up to you to decide to buy it, and if the conditions are not acceptable, please don't buy this adapter.

Saturday, 2 February 2019

The Nikon Z7 image sensor cleaning is faulty or inefficient

I have now had my Z7 since about three months and so far I have not seen any dust problems until a few days ago. To be honest, I think that the Nikon Z7 has a faulty image sensor cleaning function because it does not seem to do anything, even though I have it set to automatically clean the sensor at shutdown, meaning that every time I switch the camera off, it should shake the image sensor so that the dust falls off.

In the D800 there was also a possibility to set up so that this automatic cleaning process also was done at power on, and this could be observed by the flashing LED at the back of the camera, and the LED flashed several times after the camera was switched on or off, indicating the cleaning process. This was very efficient, and during the 7 years I used the D800, with frequent lens changes, I haven't had any dust problems, and only cleaned the sensor once, even then only dry cleaned. Now, I know the D800 has a mechanical shutter, which is closed during lens change, so the sensor is protected a bit, but I have also been a frequent live view user and in any case, during so many years, I would have expected to have serious dust issues if the sensor cleaning was not working.

I have also used the Nikon 1 V1 during the last 6 years, and even on that camera I change lenses often, and even though that is also a mirrorless camera, so the sensor is exposed to open air during lens change, the same way it is when changing lens on the Z7, I have not yet needed to clean that sensor.

Sadly, this is not the case with the Z7. Already after this short time of use, and in spite of quite rare lens changes, my camera was severely dust infected and in an immediate need of cleaning, even though I have it configured so that the automatic cleaning should take place every time I switch the camera off, and I do switch it off every time I don't consider needing it for a some time, which can be several times a day. The LED to the right of the "i" button is NEVER flashing, but that can be by design the case, or because of a firmware bug, I don't know. Never the less, the cleaning process odes not take place as it supposed to be, or it is so inefficient that it practically does nothing.

This is a test image to show the situation when I decided that I must do something about the dust. It is clear that there are far too many dust specs to be called "acceptable". Yes, to see this large number, I had to take the image at f/22 and process it so that most of the specs become visible, meaning that in a real situation these would not be visible, because I almost never stop down below f/8, but it is still disturbing because in macro images these will no doubt become visible and also in many other situations where the scenario is optimal for visible dust.

Surprised by the high number of dust specs, I decided to run the "Clean now" option in the camera. After running that once, I took a new picture but the results were the same, so I run it about 8-10 times in a row. The results were a bit better, but still totally unacceptable and still very much infected. After this test it is obvious that the built in sensor cleaning function is faulty or so incredibly inefficient that using it just gives us a false sense of security about it.

Of course, this is not acceptable and Nikon should do something about it. Especially considering that they didn't even sold the cameras with one single free och charge cleaning service, not even during the warranty, unlike both the D300s and the D800. Maybe they knew that the Z cameras will need a more frequent cleaning than the DSLRs, maybe they expected the image cleaning function to work just as good, which would have made it an unnecessary service. I don't know, but considering Nikon warns the users to clean the image sensor manually, this is not good at all.

The good thing about my dust problem is that for now, it has been easily solved using a rocket blower. A few puffs of air seems to have done more than what running the cleaning function manually 8-10 times could do. So for now, my dust infected sensor is clean again, but hopefully Nikon will do something about the cleaning function, because that seems definitely not working. It is also much faster, because for some reason, each manually activated cleaning takes 20 seconds. Don't ask me why, I have no idea.

Please note that the images are clickable, clicking on them will open a larger size image for you to check the details. Note also that the images have gone through severe post processing to make the dust specs visible, there is nothing wrong with my camera, other than the dust cleaning function.

This problem is also demonstrated in my video:


Just to clear some misunderstanding...


In case there is a doubt, I love this camera. It was worth every penny and would buy it again even if I knew about the inefficiency of the dust cleaner function, but in my opinion it is good to know that it does not do what what I expected it to do. This way I know I need to clean it regularly.

Just some words of warning


DON'T USE CANNED AIR if you decide to clean your camera. It may cause more damage than do any good. Also, whatever you do, you do it at your own risk.

Monday, 21 January 2019

No more looking into the mirror for me

Please note that this is NOT a review, I am not interested in writing "yet-another-Z7-review", there are plenty out there, so if you want to read a review just google, I will not post a link to anyone.

Note also that all the images, except the first one, are taken with my new Nikon Z7 camera and the 24-70/4 S lens. All images are clickable, so if you wish to see larger sizes, just click on any of the images.
 

As of beginning of November 2018 I no longer have a DSLR. Since the 9th of November I own and use a Nikon Z7, which is Nikon's first mirrorless full frame camera. I decided to buy a 3-piece kit, consisting of the camera body (of course), the 24-70/4 S lens and the FTZ adapter, which enables the use of Nikon F-mount lenses on the Z7.




I traded in the D800, together with two lenses, the 24-120/4 GVR and the 105/2.8 GVR Micro. I wanted a smaller and lighter kit and considered the Z7, together with the 24-70/4 S lens as a good alternative. I kept my other Nikon F lenses, the 60/2.8 G micro, the 50/1.4 G and the 70-300/4.5-5.6 GVR because Nikon currently has no alternative to those, and because they are light enough even with the necessary FTZ adapter.


I have been using the Z7 for over two months now and very happy with the results. It is widely better than I expected in every aspect. I am amazed by the very high image quality at any ISO, the ability to focus under really poor light, the sensor shift based image stabilizer (IBIS), the auto white balance and a lot of other things. Basically, the only disappointment is the poor support for old, manual focus lenses, since the focus indicator LED is not working with old manual lenses. The other thing which was a slight disappointment is the lack of external AF assist light support. I don't know why the AF assist LED of the external flash is never activated. The only possible AF assist light is the one built in the camera, but the LED is misplaced and the light is blocked by my hand or the lens hood. It is completely useless. Never the less, the camera focuses amazingly well without the AF assist LED light, so it is not a big deal for me.


The Z7 is in my opinion an excellent travel camera, it is reasonably light and compact, considering the image sensor size, and as mentioned above, the image quality is far superior to anything I have ever had or seen, even in dark places, like a pub, restaurant or night streets.




With the Z7, my days of DSLRs are over, after these months I am certain that I will never buy a camera with mirror again, except perhaps for nostalgic reasons an old film camera of some sort. The first time I used an SLR was in 1970, starting with the Zenit E, a camera made in USSR. I have used different brands up until 2006, when I started using DSLRs, and now, more than 12 years after it is time for the next big change and a move towards mirrorless cameras. I have used mirrorless for many years now, but only the small, 1" Nikon 1 V1. It was actually that very positive experience which helped me trust the jump to Z7, mirrorless full frame camera from Nikon. I believe I will be just as happy with the Z7 as I was with the Nikon 1 V1. I trust Nikon made the right decision about this camera and I am happy they released it just when I seriously was looking for a lighter alternative to the D800.

I will write some more about the camera later on regarding tests I have made, so please stay tuned and continue to follow up on it, but as I said at the top, I will not write a review.

Wednesday, 29 August 2018

How to make your own Olympus RM-1 compatible remote

Some history


Back in 2006, after a lot of research and experimenting I managed to crack the way Olympus controls the E-500 using the RM-1 IR remote control. This was my first digital camera related work and did it for fun. Recently I received some questions about it, so since it seems that the idea still interests some people I decided to post this article again. Olympus no longer makes any DSLR and I have no idea if this works with the more modern mirrorless cameras, so this is history. So whatever you make of this is up to you. I will not be able to provide any support, other than I know that the code worked very reliably and well with the remotes I made.

About the IR remote


The remote has five buttons but the picture shows a three button version. I managed to crack the function of all five. I don’t think any deep explanation is necessary, any person with a basic knowledge of microcontroller programming can implement the code in any type of microcontroller. The code is primarily written for the 12F629 PIC made by Microchip (which I believe is also out of production now) but it is easy to translate to other microcontrollers if you have enough programming knowledge and can read and understand assembly language.



Technical functional description


Modulation is 40 kHz symmetrical pulse modulation.
Each command starts with 3.8 ms 40kHz pulse train followed by 4ms Low state on GP5 and finished off with 550us 40kHz pulse train.

1 = 1500us GP5 Low state followed by 500us 40kHz pulse train.
0 = 500us GP5 Low state followed by 500us 40kHz pulse train.

After each button press there is a 500ms button repeat delay.

The Olympus button control codes are:

Fire button: 0110 0001 1101 1100 1000 0000 0111 1111
W button:    0110 0001 1101 1100 0100 0000 1011 1111
T button:    0110 0001 1101 1100 1100 0000 0011 1111
- button:    0110 0001 1101 1100 0010 0000 1101 1111
+ button:    0110 0001 1101 1100 1010 0000 0101 1111


The hardware


The hardware is very simple, it contains only of three resistors, one transistor driving the IR LED and a Microchip 12F629 PIC microcontroller and five buttons. The source code below is a fully working code example for the 12F629.

Click on the image to the right to see the schematics.





The picture shows a three button pocket version. With 4.5 V (3x1.5 hearing aid batteries) the range is about 12-15 meters outdoors. My remote has been working very well since May 2006, used it for as long as I used Olympus cameras.




 

 

The Source code


The source code is also very simple. It is written in assembly language, so just copy the code below and paste it into an assembler and compile it, or modify if you wish to modify it to your purpose.

;----------------------------------------------------------------
;
;    Emulation of Olympus RM-1 IR remote control using PIC 12F629.
;
;    The PIC GPIO 5 controls an IR-LED via one BC557 and a 2.7Ohm
;    resistor in series.
;
;    Olympus control codes are:
;

;    Button        GPIO    Code
;
;    Fire          0        0110 0001 1101 1100 1000 0000 0111 1111
;    W             1        0110 0001 1101 1100 0100 0000 1011 1111
;    T             2        0110 0001 1101 1100 1100 0000 0011 1111
;    -             3        0110 0001 1101 1100 0010 0000 1101 1111
;    +             4        0110 0001 1101 1100 1010 0000 0101 1111
;
;    Modulation is 40 kHz symetrical pulse modulation.
;
;    Each command starts with 3.8 ms 40kHz pulse train followed by
;    4ms Low state on GP5 and finished off with 550us 40kHz pulse train.
;
;    1 = 1500us GP5 Low state followed by 500us 40kHz pulse train.
;    0 = 500us GP5 Low state followed by 500us 40kHz pulse train.
;
;    After each button press there is a 500ms button repeat delay.
;
;
    title        "Olyremote-1"

    include     <p12f629.inc>
    __config    _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _BODEN_OFF

    errorlevel    -302    ; No bank selection messages

;----------------------------------------------------------------
;
;            REGISTER DEFINITION
;
;----------------------------------------------------------------

DELAY_H        equ    0x20
DELAY_L        equ    0x21
IR_LENGTH    equ    0x22

;----------------------------------------------------------------
;
;            CODE
;
;----------------------------------------------------------------

    org     0x0000            ; RESET VECTOR
               
;----------------------------------------------------------------
;
;    Initialize PIC
;
initialize_pic

    bsf        STATUS,RP0        ; Sel Bank 1
    call    0x3ff            ; Get OSCAL value
    movwf    OSCCAL            ; write to OSCCAL register

    bcf        OPTION_REG,7    ; Enable weak pullups
    movlw    b'00010111'        ; on GPIO 0-4
    movwf    WPU

    movlw    b'00001000'        ; Enable port change interrupt
    movwf    INTCON

    bcf     STATUS,RP0        ; Select bank 0
    clrf    GPIO            ; Init GPIO
    movlw    0x07            ; set GP2 to digital
    movwf    CMCON
   
    bsf        STATUS,RP0
    movlw    b'00011111'           
    movwf    TRISIO            ; Set I/O 5 as outputs

    movlw    0x1f            ; Enable port change IRQ on GPIO 0-4
    movwf    IOC

    bcf     STATUS,RP0        ; Select bank 0
    bcf        GPIO,5            ; Set GPIO 5 Low

;----------------------------------------------------------------
;                                    
led_main_loop

    bcf        INTCON,GPIF        ; Clear interrupt flag
    bcf        GPIO,5            ; Set GPIO 5 Low

    sleep                    ; and go to sleep to save power
;
;    Wake up from sleep
;    Check which button generated wake-up
;
Test_W
    MOVF    GPIO,W            ; Read GPIO and test for W button
    ANDLW    b'00000001'        ; Mask for the W switch
    BTFSS    STATUS,Z        ; Check ZERO first
    goto    Test_F
    call    Exec_W
    goto    led_main_loop
   
Test_F
    MOVF    GPIO,W            ; Read GPIO and test for Fire button
    ANDLW    b'00000010'        ; Mask for the Fire switch
    BTFSS    STATUS,Z        ; Check ZERO
    goto    Test_T            ; Not Z
    call    Fire
    goto    led_main_loop

Test_T
    MOVF    GPIO,W            ; Read GPIO and test for Fire button
    ANDLW    b'00000100'        ; Mask for the Fire switch
    BTFSS    STATUS,Z        ; Check ZERO
    goto    Test_M            ; Not Z
    call    Exec_T
    goto    led_main_loop

Test_M
    MOVF    GPIO,W            ; Read GPIO and test for Fire button
    ANDLW    b'00001000'        ; Mask for the Fire switch
    BTFSS    STATUS,Z        ; Check ZERO
    goto    Test_P            ; Not Z
    call    Exec_M
    goto    led_main_loop

Test_P
    MOVF    GPIO,W            ; Read GPIO and test for Fire button
    ANDLW    b'00010000'        ; Mask for the Fire switch
    BTFSS    STATUS,Z        ; Check ZERO
    goto    led_main_loop    ; Not Z
    call    Exec_P
    goto    led_main_loop

;----------------------------------------------------------------
;
;        SUBROUTINES
;
;----------------------------------------------------------------

;----------------------------------------------------------------
;
;    The FIRE button was pressed, execute control sequence
;
;    Fire = 0110 0001 1101 1100 1000 0000 0111 1111
;
Fire
    call    Send_Header

    call    Send_One
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_One
    call    Send_One
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_One
    call    Send_One

    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    return

;----------------------------------------------------------------
;
;    The W button was pressed, execute control sequence
;
;    W = 0110 0001 1101 1100 0100 0000 1011 1111
;
Exec_W
    call    Send_Header

    call    Send_Null
    call    Send_One
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_One
    call    Send_Null
    call    Send_One
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_One
    call    Send_One

    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    return

;----------------------------------------------------------------
;
;    The T button was pressed, execute control sequence
;
;    T = 0110 0001 1101 1100 1100 0000 0011 1111
;
Exec_T
    call    Send_Header

    call    Send_One
    call    Send_One
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_One
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_One
    call    Send_One

    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    return

;----------------------------------------------------------------
;
;    The - button was pressed, execute control sequence
;
;    - = 0110 0001 1101 1100 0010 0000 1101 1111
;
Exec_M
    call    Send_Header

    call    Send_Null
    call    Send_Null
    call    Send_One
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_One
    call    Send_One
    call    Send_Null
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_One
    call    Send_One

    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    return

;----------------------------------------------------------------
;
;    The + button was pressed, execute control sequence
;
;    + = 0110 0001 1101 1100 1010 0000 0101 1111
;
Exec_P
    call    Send_Header

    call    Send_One
    call    Send_Null
    call    Send_One
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_Null

    call    Send_Null
    call    Send_One
    call    Send_Null
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_One
    call    Send_One

    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    movlw    .250
    call    DELAY_X_msec        ; 250ms delay before return
    return

;----------------------------------------------------------------
;
;    Send_Header:    Remote codes must starts with this sequence.
;
Send_Header
    movlw    .120                ; Pulse 8ms
    call    Send_IR_Pulse
    movlw    .200
    call    Send_IR_Pulse
    movlw    .4                    ; Space 4ms
    call    DELAY_X_msec
    movlw    .22                    ; Pulse 550us
    call    Send_IR_Pulse

    call    Send_Null
    call    Send_One
    call    Send_One
    call    Send_Null

    call    Send_Null
    call    Send_Null
    call    Send_Null
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_Null
    call    Send_One

    call    Send_One
    call    Send_One
    call    Send_Null
    call    Send_Null

    return

;----------------------------------------------------------------
;
;    Send_One:   Sends 1677us low signal followed by pulse
;                modulated by 40kHz (25us) symetrical pulses sent
;                for 559us. Corresponds to Olympus IR code "1"
Send_One
    call    Delay_1500us        ; Space 1677us
    movlw    .22
    call    Send_IR_Pulse
    return

;----------------------------------------------------------------
;
;    Send_Null:    Sends 559us low signal followed by pulse
;                modulated by 40kHz (25us) symetrical pulses sent
;                for 559us. Corresponds Olympus IR code "0"
Send_Null
    call    Delay_500us            ; Space 559us
    movlw    .22                    ; Pulse
    call    Send_IR_Pulse
    return

;----------------------------------------------------------------
;
;    Send_IR_Pulse will send a 50% duty cycle pulse until
;    IR_LENGTH is zero. Puls sent on GPIO 5
;
Send_IR_Pulse
    movwf    IR_LENGTH    ; Save number of IR cycles
IR_Pulse                ; loop
    movlw    .3            ; set this to 3 to get 40kHz modulation
    movwf    DELAY_L
    bsf        GPIO,5        ; Set GPIO 5 High
High_20
    decfsz    DELAY_L,F    ; This gives about 12 us High
    goto    High_20
    nop                    ; set this two nops to get 40kHz modulation
    nop
    movlw    .2            ; set this to 2 to get 40kHz modulation
    movwf    DELAY_L
    bcf        GPIO,5        ; Set GPIO 5 Low
Low_20
    decfsz    DELAY_L,F    ; This gives about 12 us Low
    goto    Low_20
    nop
    decfsz    IR_LENGTH,F    ; Decrement IR cycle counter
    goto    IR_Pulse    ; and loop if not zero
    nop
    return

;----------------------------------------------------------------
;
;     Delay routines for correct output pulse width
;
;    This delay is used for output pulse width control
;
DELAY_X_msec                ; Call here with W = X msec delay
    MOVWF    DELAY_H

DELAY_1msec
    MOVLW    .250            ; 1 msec delay loop counter
    MOVWF    DELAY_L
   
DELAY_1ms                    ; 1 msec delay loop
    NOP
    DECFSZ    DELAY_L, F
    GOTO    DELAY_1ms

    DECFSZ    DELAY_H, F        ; Loop counter 1 msec delay loop
    GOTO    DELAY_1msec        ; until counter is zero
    RETLW    0

;----------------------------------------------------------------
;
Delay_1500us

    call    Delay_500us
    call    Delay_500us

;----------------------------------------------------------------
;
Delay_500us
    movlw    .122
    MOVWF    DELAY_L
    call    DELAY_4us
    nop
    nop
    return

;----------------------------------------------------------------
;
DELAY_4us                    ; 4usec delay loop.
    NOP
    DECFSZ    DELAY_L, F
    GOTO    DELAY_4us
    return
   
    end


And finally...


For those of you who only are interested in the HEX code, here it is:
 
:020000040000FA
:100000008316FF23900081131730950008308B0072
:10001000831285010730990083161F3085001F3039
:100020009600831285120B108512630005080139B2
:10003000031D1C284A20132805080239031D222805
:100040003420132805080439031D282860201328AC
:1000500005080839031D2E287620132805081039B5
:10006000031D13288C201328A220BB20BF20BF20F3
:10007000BF20BF20BF20BF20BF20BF20BB20BB2090
:10008000BB20BB20BB20BB20BB20FA30D520FA30E0
:10009000D5200800A220BF20BB20BF20BF20BF204A
:1000A000BF20BF20BF20BB20BF20BB20BB20BB2068
:1000B000BB20BB20BB20FA30D520FA30D520080069
:1000C000A220BB20BB20BF20BF20BF20BF20BF205D
:1000D000BF20BF20BF20BB20BB20BB20BB20BB203C
:1000E000BB20FA30D520FA30D5200800A220BF204E
:1000F000BF20BB20BF20BF20BF20BF20BF20BB2010
:10010000BB20BF20BB20BB20BB20BB20BB20FA30C4
:10011000D520FA30D5200800A220BB20BF20BB206C
:10012000BF20BF20BF20BF20BF20BF20BB20BF20DB
:10013000BB20BB20BB20BB20BB20FA30D520FA302F
:10014000D52008007830C320C830C3200430D52023
:100150001630C320BF20BB20BB20BF20BF20BF2044
:10016000BF20BB20BB20BB20BF20BB20BB20BB20AF
:10017000BF20BF200800DE201630C3200800E0208A
:100180001630C3200800A2000330A1008516A10B81
:10019000C728000000000230A1008512A10BCE2864
:1001A0000000A20BC42800000800A000FA30A10043
:1001B0000000A10BD828A00BD6280034E020E020B6
:1001C0007A30A100E6200000000008000000A10B2A
:0401D000E628080015
:02400E00843FED:00000001FF

Good luck. I hope some of you will still find this old code useful.