back to top

Canon EF 50mm f/1.8 STM ‘Nifty Fifty’ Review

A- A+

Subscribe Below to Download the Article Immediately

You can also select your interests for free access to our premium training:

Your privacy is safe. I will never share your information.
Related course: Photography for Beginners

The 50mm prime lens has always been one of the most basic, but essential pieces of kit.

Canon’s “nifty fifties” are a series of low-cost, plastic-built 50mm f/1.8 primes. They are popular because they give you excellent value for very little money.

Today, I’m reviewing the newest version, the Canon EF 50mm f/1.8 STM.

Canon EF 50mm f/1.8 STM lens

[Note: ExpertPhotography is supported by readers. Product links on ExpertPhotography are referral links. If you use one of these and buy something, we make a little bit of money. Need more info? See how it all works here.]

Overview

The Canon EF 50mm f/1.8 STM was introduced in 2015. It is the third generation of Canon’s ultra-cheap autofocusing 50mm f/1.8 lenses.

Its optical formula is identical to the previous, 50mm f/1.8 II version. Its build quality, autofocusing motor, and lens coatings have been noticeably improved.

It’s among the smallest and lightest lenses available for EF-mount cameras, only slightly larger than the recently reviewed Canon 40mm f/2.8 STM.

The focal 50mm length is convenient on both crop-sensor and full-frame cameras. It can be a long-term investment even if you upgrade to a larger sensor.

This lens provides excellent optical quality, especially if you consider the price. It’s a significant upgrade over your kit lens, whichever one you happen to use. But keep in mind that it can’t replace that entirely.

So, what’s in the box? As you’d expect, not much – only the lens, with caps attached, and a user manual. A lens hood (ES-68) is available separately, or you can get alternative hoods.

I recommend using one for both optical and protection reasons.

Canon EF 50mm f/1.8 STM lens

I have used several samples of this lens in the past 4-5 years, and my experiences are not all smooth.

Most of them functioned fine, but I encountered two copies which had significant autofocus problems. They displayed both inconsistency and inaccuracy. This seems to be a potential serial issue.

Who Is the Canon EF 50mm f/1.8 STM For?

Basically, everyone.

Honestly, this lens is so cheap, you can give it a try, and even if you don’t like it (for which the chance is slim), you can resell it with little loss.

With such a low price, this lens was obviously created for a very wide audience. Yet it often makes its way into professionals’ bags as well.

On crop-sensor cameras, the 50mm f/1.8 (with an 85mm-equivalent view) is a great choice for low-light photography, portraiture, product/food shots, events, concerts, and documentary.

Low light photo of a crowd at an indoor event shot with Canon 50mm 1.8 lens
7D, f/1.8

On full-frame bodies, with its wider, standard view, it’s even more versatile. It has the potential to be the one lens always sitting on the camera.

It’s well-suited for all the previously listed situations, but also travel, street, family, newborn, and so many other styles of photography.

Key Features

Mount and Compatibility

The Canon EF 50mm f/1.8 STM is made primarily for full-frame EF-mount cameras.

The lens will work perfectly on crop-sensor EOS bodies (such as the 7D, 10D-90D series, and all the Rebels).

It can also be adapted without loss in autofocus speed to Canon’s full-frame mirrorless R bodies.

It will work just fine with a slight drop in autofocusing speed on Canon’s crop-sensor mirrorless EF-M-mount cameras (e.g. the M100, M50, M5, M6).

I’ve been using copies of this lens on several different Canon bodies, including a 600D, a 7D, a 7D MkII, a 5D Classic, and a 5D MkIII.

You can also attach any EF mount adaptor currently in use to this lens. These include adaptors to Sony E-mount, Fujifilm X-mount, Micro Four Thirds, Nikon Z-mount, Leica L-mount, and more.

Autofocusing speed and reliability on these off-brand cameras will depend on the quality of the adaptor used.

Canon EF 50mm lens on a Canon 5D Classic DSLR
The Canon EF 50mm on my 5D Classic

Image Quality

This 50mm is well-known for giving you great image quality over your kit lens. But how does it stand against other primes? Surprisingly well, actually, although if sharpness is what you’re after, I’d choose the 40mm f/2.8.

The Canon EF 50mm f/1.8 STM wide open at f/1.8 is sharp in the middle, with significant softness towards the edges of the frame, especially on large sensors. At f/2.2, centre sharpness is even better, and the corners start to pick up some definition.

Street scene Shot with Canon EF 50mm f 1.8
5D MkIII, f/4

At f/2.8, I’m comfortable using this lens for most types of photography, and the centre is about as sharp as it gets. Corners still leave some clarity to be deserved, and they catch up above f/4 very well.

In terms of distortion, it has a fairly noticeable barrel pattern on full-frame images, less so on crop sensors. Chromatic aberrations are present, but not overly distracting.

With a direct light source in or near the frame, it displays significant flaring, so I recommend keeping the hood on. It does retain contrast well, though.

High angle view of a cityscape at evening shot with Canon EF 50mm f 1.8
7D MkII, f/5.6

Overall, image quality here is great, but not groundbreaking. It’s perfectly usable in any everyday situation.

Focusing

The Canon EF 50mm f/1.8 STM works well with autofocus, slightly less so with manual focus.

The AF system is accurate and fast, although not the fastest STM motor I’ve seen. It works well in low light, thanks to the wide aperture.

‘STM’ stands for stepping motor. Instead of the traditional ring-type ultrasonic drive, this lens uses a linear shifting mechanism. This ensures smoother focusing with camera bodies that have on-sensor phase detection (Dual Pixel AF). It’s also great for autofocusing in video mode.

However, it also means that the manual focus ring is only connected to the glass electronically. You need to power on the camera even to manually focus.

The response of the manual focus ring is not linear – the faster you turn it, the more it shifts. You can override autofocus if you turn the ring while the shutter is half-pressed.

On the lens housing, there is no distance scale – this is the privilege of ring-USM-motor lenses. When focusing, the front element extends out of the barrel, but it doesn’t rotate.

Its minimum focusing distance is 0.35m, the closest of any 50mm lens Canon has.Canon EF 50mm f 1.8 lens

Handling and Build Quality

As I mentioned, this generation of the Canon 50mm f/1.8 is a very noticeable upgrade over the II version in terms of build quality. The II is a very fragile, plastic only construction with a glossy, cheap-looking outer hull.

The STM version is built on a metal mount, and the housing is matte plastic.

It’s still not a durability champion, but I don’t expect any serious issues with this design.

It doesn’t have weather sealing, and the moving front section ensures that water and humidity will get into the lens if you let it. So, this lens is not particularly rain-friendly.

The filter thread diameter is 49mm, which is not a very popular filter size. Finding filters for this size is a tiny bit harder than for 52mm-threaded lenses.

As with the recently reviewed 40mm, you can’t stack filters here either. The autofocus motor will have trouble moving more than one filter together with the front section.

Its 69mm in diameter, 39mm long, and weighs 159g.Canon EF 50mm f 1.8

Alternatives

The Canon EF 50mm f/1.8 STM lens has several alternatives.

The one that I’d choose instead (and have chosen, actually) is the Canon 40mm f/2.8 pancake lens.

This lens is darker by more than a stop, which is significant. If this matters to you, and you don’t have other fast glass, stick with the 50mm f/1.8. However, its image quality is better, it’s slightly better constructed, and even smaller.

The Canon 50mm f/1.4 USM gives you an additional 2/3 of a stop for roughly double the price. Their optical performances are very similar, but the f/1.4 version is better built, has a mechanical focus ring and a distance scale.

The Sigma 50mm f/1.4 Art is a fantastic lens that’s not in the same league as either of the previous lenses. But if you like the 50mm view, I’d consider upgrading to it. Its image quality is stellar, and it handles beautifully. Its actual light transmission is very similar to the 50mm f/1.8 (t/1.8 vs t/1.9).

The Tamron 45mm f/1.8 VC is a lens with a slightly wider view (within the margin of error, though). Its key selling points are its excellent optical quality and the built-in stabilisation.

Tamron 45mm f/1.8 VC lens

Our Verdict

The Canon EF 50mm f/1.8 STM is an excellent, versatile option for smaller budgets. This lens is the entry to advanced depth-of-field control, and also to low-light photography.

It’s optical performance is great. For this price, there’s really nothing to complain about.

Check it out here on Amazon.

Show Comments (0)
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]