Tag Archives: SBT90.2

Wurkkos TS30S Pro

The TS30S Pro is a high-output thrower light, running on an included single 21700 battery. It also features the sophisticated Anduril user interface.

  1. Introduction
  2. Manufacturer Specifications
  3. Package Details
  4. Build
  5. User Interface
  6. Circuit Measures
  7. Emitter Measures
  8. Beamshots
  9. Testing Results
  10. Runtimes
  11. Pros and Cons
  12. Overall Rating
  13. Preliminary Conclusions
  14. Acknowledgement


The TS30S Pro is a larger light coming out of Wurkkos – a high-output thrower running on 1×21700. Significantly, it features the Luminus SBT90.2, which is a large but low profile emitter. This means you can generate super high output (i.e., >5000 lumens) while still maintaining great throw when coupled with a large, focused reflector. It also runs at 3V, meaning it can work with a basic FET driver – which is consistent with a lot of the budget lights coming from Wurkkos.

This setup means that Wurkkos was also able to easily implement Anduril, the powerful open-source user interface, giving you a lot of options to play with. Keep in mind though that super-high output is going to require a lot of current (and generate a lot of heat), so you should expect fairly rapid thermal step-down (especially with the default conservative temperature settings in Anduril, although these are user-adjustable).

I’ve had a number of requests to review this light, so let’s see how it does in my testing.

Manufacturer Specifications

Note: as always, these are simply what the manufacturer provides – scroll down to see my actual runtimes.

ModelTS30S Pro
Tint5700 K
Max Output (Lumens)6,000
Min Output (Lumens)1
Max Runtime40 days
Max Beam Intensity (cd)295,000 cd
Max Beam Distance (m)1086 m
Constant Levels8
Weight (w/o battery)-
Weight (with battery)265 g
Length157.2 mm
Head Diameter61 mm
Body Diameter-
WaterproofIP68 <2m

Package Details

Another example of the nice new packaging for the higher-end lights from Wurkkos (and Sofirn, which share a common manufacturing plant). The hard-sided box comes with a lot of printed specs on the sleeve, and a clear separation of items and components inside thanks to the cut-out foam. Inside the box, I found:

  • Wurkkos TS30S Pro flashlight
  • Wurkkos-branded 5000mAh 21700 battery
  • Wrist lanyard
  • USB-C charging cable
  • 2 Spare O-rings
  • Manual

It’s a decent package for a “budget” build, but I would like to see a holster included. FYI, none of inexpensive holsters that Wurkkos sells fit this light – it’s too large for any of their current offerings.


From left to right: LiitoKala 21700 (5000mAh), Acebeam 21700 USB-C (5100mAh), Lumintop D3, Convoy M21F, Sofirn C8L, Wurkkos TS30S Pro, Wurkkos TD01, Acebeam L19 V2.0, Acebeam P17.

The Wurkkos TS30S Pro is a substantial light for this class, with an exceptionally large head (thanks to a large deep reflector). It does make the light somewhat top-heavy, but not unreasonably so. It is definitely a higher-end “budget” light – keep in mind that over half the cost of the light comes from the emitter alone.

The light is controlled by an electronic side switch in the head, with a rubberized cover. Feel and traverse of the electronic switch is actually a bit better than most Wurkkos and Sofirn lights, which typically have a hard cover that has a bit too much play. There are multi-colour RGB LEDs under the switch. Although set to off by default, you can configure them to light up different colours when a battery is connected (which can make for a great coloured “moonlight” mode). See the user interface section below for more information. There is also a separate set of orange LEDs under the switch to show the charge status (scroll down to the Charging Section for more info).

There are two slightly raised tailcap guards that can serve as the lanyard attachment point. The light is able to tailstand fairly stably (although it is top-heavy).

Tailcap threads are square-cut and anodized, with good feel. I always recommend you keep a light stored locked out when not in use. Thanks to the anodized tailcap threads, you can do this easily on the TS30S Pro by a simple twist of the tailcap.

The side switch flashes orange when charging the battery through the light’s USB-C charging port (solid orange when fully charged). The port is located on the opposite side from the switch, under a rubber cover. The cover fits pretty well – not too too tight, not too loose – just like my recent TD01. I expected waterproofness is reasonable.

There is no actual knurling on the light, but large raised concentric rings around the body tube help with grip (pattern is similar to the TD01, but with greater thickness to the horizontal cutouts). When combined with the head and tailcap ridge detail, I would say overall grip is pretty good. Note that the light can roll fairly easily, although there are some mild cut-outs on the head to help reduce this. Anodizing looks to be good quality for type II, with no damage on my sample. I would describe the finish as satin.

Inside, the light comes with a Wurkkos-branded standard-sized 5000mAh 21700 battery, with a slightly raised flat-top. There is a a slightly raised contact point in the head, so flat-top cells should work just fine.

The TS30S Pro has a large and deep reflector, to help ensure excellent throw with the low-profile SBT90.2 emitter.

The bezel is stainless steel (dull finish) with mild crenelations – not too aggressive, so you can headstand stably. There is a mild purplish anti-reflective (AR) coating on the lens.

Here are a couple of white wall beamshots, to give you an idea of how focused it is:

It’s hard to see above, but there are quite a few “daisy flower-like” artifacts in the corona around the hospot. If you look closely you’ll notice the corona is a bit irregular (i.e., stretches out more to the left and top). This is clearly visible on a white wall, but they are not at all noticeable in real life (scroll down for outdoor beamshots).

As mentioned above, in addition to the amber charging indicator LED under the switch, there are also RGB LEDs. This is fully programmable with the Anduril user interface (described below), allowing you to control the presence, intensity and colour of the optional standby indicator under the switch. This is more than just a cute novelty feature – effectively, it gives you a coloured Moonlight mode if you turn it on (i.e., you can “activate” this Moonlight mode by using the tailcap as a twisty, making or breaking battery contact).

Here is a video of the “Rainbow” indicator switch mode, where it continuously cycles through all the possible switch colours slowly. You can similarly select any of the colours shown as your constant switch indicator (scroll down for a description of the UI controls).

User Interface

The TS30S Pro uses the open-source Anduril 2 user interface (UI). Anduril has two distinct UIs mode sets: Simple and Advanced. The labels are a bit misleading, as both are fairly sophisticated – it is just that the Advanced UI has a lot of extra options not available on the scaled-down Simple UI. Advanced UI also has an option for a discrete Stepped level mode, in addition to the continuously-variable smooth Ramping mode (which is the only mode present on the Simple UI).

To switch from the default Simple UI to Advanced UI, you need to do 10 clicks from Off with a hold on the 10th click (10H), with 10 clicks (10C) to return to Simple UI. Advanced UI has a lot more options available. It’s easier to show the UIs rather than explain them in words, so here is a helpful pic:


You can also download a plain text-based manual from Anduril creator Toykeeper, or a more interactive one with version control here.

This implementation of Anduril 2 has eight discrete Stepped levels, which I’ve numbered in this review according to Wurkkos preference (H1 through H8, with H1 being the lowest level, and H8 being Turbo).

According to the firmware Version Check, my TS30S sample has model 0715. Full info is 2022-07-25-07-15 (version code is Year-Month-Day the firmware was compiled, followed by a 2-digit brand ID and 2-digit product ID). According to Selene (Toymaker), the TS30S Pro comes with either model 0715 (which was built for the TS25) or model 0716 (built for the FC13). Both of which work fine, but the model 0716 has improved RGB switch functionality, such as indicating battery voltage during use as well as when off.

Again, check the image and link above for more info, but here is a simplified description of the UI to get you started.

From OFF:

  • Press-and-hold (1H): Turns On in lowest output, in either Ramping mode or Stepped mode depending on which mode is enabled (and which UI you are in)
  • Single-click (1C): Turns on in last memorized mode used (Ramping or Stepped)
  • Double-click (2C): Turns on to Turbo (aka the Ramping max output)
  • Triple-click (3C): Battery check (voltage read out a single time) and basic flashing/strobe modes.
  • Triple-click-and-hold (3H): Special strobe modes, but only when in Advanced UI (remembers last strobe mode used)
  • 4 clicks (4C): Lockout mode. In lockout mode you have different options available:
    • Press-and-hold (1H): Momentary Moonlight
    • Double-click-and-hold (2H): Momentary Low
    • 4 clicks (4C): Turns On in memorized output level
    • 4 clicks and hold (4H): Turns On in the lowest level
    • 5 clicks (5C): Turns On in Turbo
    • 10 clicks and hold (10H): Configure the lock timeout threshold (in Advanced UI only), allowing you to pre-set the timeout time of the lock.
  • 7 clicks (7C): (Advanced UI only) Enters AUX/Button LED config for the next mode. There are four modes you can switch between; constant low, blinking low, off, constant hi. Click 7 times again to advance to the next option, in sequence. The light auto-memorizes the last option you select.
  • 7 clicks-and-hold (7H): (Advanced UI only) Enters AUX/Button LED config for the next colour. The colours follow the sequence: Red, Yellow (Red+Green), Green, Cyan (Green+Blue), Blue, Purple (Blue+Red), White (Red+Green+Blue), Disco (fast random colors), Rainbow (cycles through all colors in order more slowly). See the video in the section above for what Rainbow looks like.

From ON:

  • Press-and-hold (1H): Ramps up (or Steps up, depending on the mode). Ramps/steps down if you do it again.
  • Single-click (1C): Turns Off
  • Double-click (2C): Jumps to Turbo
  • Double-click-and-hold (2H): Ramps down (or Steps down)
  • Triple-click (3C): Switch between Ramping and Stepped modes
  • 4 clicks (4C): Lockout mode (see above for options)

Mode memory:

Yes, the circuit memorizes the last constant On output level in either Ramping or Stepped modes.

Strobe/Blinking modes:

Yes, quite a few actually. The strobe/blinking modes are accessible from Off with a triple-click (3C) or triple-click-and-hold (3H), but in Advanced UI only. You can switch between strobe/blinking modes with 2 clicks (2C), in the following sequence (see testing results below to see what these look like):

Triple-click (3C):

  • Battery check
  • Temperature check
  • Beacon mode
  • SOS mode

Triple-click-and hold (3H):

  • Candle mode
  • Bike flasher mode
  • Party strobe mode
  • Tactical strobe mode
  • Lightning mode

Low voltage warning:

Sort of. In operation, the light drops in brightness in steps, and runs for an extended time at a very low level. Apparently it shuts off when the cell is ~2.8V (although I haven’t run it that long to confirm).

Lock-out mode:

Yes. In either Simple UI or Advanced UI, lockout is accessed by 4 clicks (4C) from On or Off (repeat to unlock). The lockout mode is unusual with Anduril, as it actually enables momentary operation in the minimum modes. There are other lockout modes available, as explained above. As always though, I recommend you physically lock out at the light at the tailcap, if you want to guarantee no accidental activation.

Temperature check and thermal calibration mode:

This is a little complicated (and beyond the needs of most users), so I will just refer you to the diagram from the manual above. With default settings, I find this light steps down fairly quickly due to heat (unsurprising, given default Anduril settings are conservative). I have not tried to reconfigure my sample. Note that if you get into any trouble (or wish to reset any custom configurations), you can easily reset the light to the factory defaults by 13 clicks-and-hold (13H).

Powerbank Feature:

The TS30S Pro can serve as a power bank, allowing you to charge other devices (like a cell phone) directly from the light. Simply plug a device into the USB-C port. As you can see above, it can easily charge my phone at ~1.6A, which is a fast charging rate.

Reviewer Comments:

Anduril is a sophisticated setup – a choice of Simple or Advanced UI, Stepped and Ramping modes, etc. Of course, you will never please everyone, and many may prefer a simpler interface (e.g., the Wurkkos TS22 or TD01). Like many flashaholics, I enjoy many of the extra customization items Anduril provides (especially with the switch RGB LED). Some of the features are really novelties though (e.g., candle mode and lightning storm are particularly well done, but when would you practically ever use them other than as a party trick?).

Circuit Measures

Pulse-Width Modulation (PWM):

There is no sign of PWM on any level, the circuit appears to be fully current-controlled.

That being said, my oscilloscope was able to detect high frequency noise at all levels except max and min outputs, as depicted below.









Like on other lights running off simple FET drivers (e.g., Sofirn IF25A) there is high-frequency noise of ~5 kHz on non-Turbo levels. This is sufficiently high as to be completely undetectable visually, and is not a concern – the light remains flicker free in actual use.

Strobe Modes:

Note that for most of the strobe / flashing modes below, the actual frequency and intensity are both configurable. What I am showing below is the default speed and/or brightness setting. By pressing and holding the switch (1H or 2H) you can select the frequency – and in some cases, brightness is set from the last-used ramp level.


Beacon strobe is a single flash every ~2.25 secs (so, 0.45 Hz) by default.


A fairly typical SOS mode.


Candle strobe is a continuous flicker, of varying intensity (again, accurately simulating a candle).

Bike Strobe:

Bike strobe is a bit unusual. It is constant On at a lower level, with four brief flashes to max (over ~0.25 secs) every ~1.1 secs or so by default. It certainly is an attention grabber.

Party Strobe:

Party strobe is a super-fast (and annoying) frequency of ~20 Hz by default.

Tactical Strobe:
Tactical strobe is basically ~9 Hz. Interestingly, it doesn’t stay completely stable on my TS30S Pro, but fluctuates from ~8.5 Hz to ~9 Hz over time. Either way, it is configurable.

Lightning Strobe:

I’ve shown four consecutive 10-sec cycles above, so you can a feel for the frequency and intensity of light flashes. Lightning strobe is a fairly realistic lightning simulation, with variable intensity and time between flashes.


The switch button flashes orange the light is charging. Changes to solid orange when the charging is complete. Note the orange LEDs are separate from the user-selectable “AUX” RGB emitters under the switch.

Resting voltage <3.0V

Resting voltage >3.0V

The TS30S Pro has a two-stage charging feature, as seen on many modern lights where there is a lower initial charging rate when the cell is heavily discharged. The initial charging rate is 0.17A, which jumps to 2.0A once the cell exceeds 3.0 resting volts. These rates are good for a 21700 cell.

Note that you need to have a good charging adapter and cables to reliably supply the 2A current. I found that if anything else was connected to same USB-AC power adapter concurrently, the TS30S Pro’s switch LED would eventually start to flash rapidly (as some sort of error signal, it seems) – with the current repeatedly dropping to zero. The same would happen sometimes when using multi-pronged charging cables (i.e., those USB cables with multiple heads). Removing any the other devices and using a single dedicated cable resolved the problem.

Charging terminated at ~4.20V on my sample.

Standby / Parasitic Drain:

With the switch LED set to off, I measured the standby drain for the electronic switch as fluctuating evenly between 102uA and 148uA (so, ~125uA on average). For a 5000mAh cell, that would translate into over 4.5 years before the cell would be fully drained – which is quite low. Regardless, I recommend you store the light locked out at the tailcap when not in use (which disables the standby drain).

Emitter Measures

In this section, I directly measure key emitter characteristics in terms of colour temperature, tint, and colour rendition. Please see my Emitter Measures page to learn more about what these terms mean, and how I am measuring them. As tint in particular can shift across levels, I typically stick with the highest stably regulated level for all my reported measures.

As explained on that page, since I am using an inexpensive uncalibrated device, you can only make relative comparisons across my reviews (i.e., don’t take these numbers as absolutely accurate values, but as relatively consistent across lights in my testing).

TS30S Pro on L6:

The key measures above are the colour temperature of ~5060K, and a noticeably positive tint shift (+0.0149 Duv) to greenish-yellow at this temperature. For CRI (Ra), I measured a combined score of 64.

This is my first SBT90.2 emitter, but these values are not inconsistent with other rated 5700K XHP-class emitters I’ve tested.


All long-distance outdoor beamshots are taken on my Canon PowerShot S5 IS at f/2.7, 1 sec exposure, ISO 400, daylight white balance. The tree at the centre of the hotspot is approximately 90 meters (~100 yards) from the camera. Note the road dips down and turns away in the distance, out of the camera’s sight line. Learn more about my outdoor beamshot locations here.

Click on any thumbnail image below to open a full size image in a new window. You can then easily compare the overall beams by switching between tabs.

To help illustrate the hotspots better, I’ve also cropped the raw pictures around the centre of the frame. As before, click on any thumbnail below to open a full size image in a new window.

As you can see above, the TS30S Pro puts out a ton of light, while still having excellent throw (i.e., hotspot intensity is roughly on par with the TD01).

Testing Results

My summary tables are generally reported in a manner consistent with the ANSI FL-1 standard for flashlight testing. In addition to the links above, please see my output measures page for more background.

All my output numbers are based on my home-made lightbox setup. As explained on that methodology page, I have devised a method for converting my lightbox relative output values to estimated lumens. Note that my lightbox calibration seems to run higher than most hobbyists today, but I’ve kept it to remain consistent with my earlier reviews (when the base calibration standard was first established).

My Peak Intensity/Beam Distance are directly measured with a NIST-certified Extech EA31 lightmeter.

TS30S Pro Testing Results

ModeSpec LumensEstimated Lumens @0secEstimated Lumens @30 secsBeam Intensity @0secBeam Intensity @30secsBeam Distance @30secsPWM/Strobe FreqNoise FreqCharging Current <3VCharging Current >3VParasitic DrainWeight w/o BatteryWeight with BatteryCCT (K)DuvCRI
Smooth Ramp Min-0.0050.005----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H110.220.22----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H253.33.3----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H3151818----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H4455252----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H5110150150----5,010 Hz0.17 A2.0 A125 uA260 g328 g---
H6480470460----4,992 Hz0.17 A2.0 A125 uA260 g328 g5,0600.014962
H71,7001,6001,550----4,979 Hz0.17 A2.0 A125 uA260 g328 g---
H86,0005,5505,200253,000 cd233,000 cd965 m-No0.17 A2.0 A125 uA260 g328 g---
Candle--------0.17 A2.0 A125 uA260 g328 g---
Bike Strobe------0.9 Hz-0.17 A2.0 A125 uA260 g328 g---
Party Strobe------20 Hz-0.17 A2.0 A125 uA260 g328 g---
Tactical Strobe------9 Hz-0.17 A2.0 A125 uA260 g328 g---
Lightning--------0.17 A2.0 A125 uA260 g328 g---
Beacon------2.63 Hz-0.17 A2.0 A125 uA260 g328 g---
SOS-------5,010 Hz0.17 A2.0 A125 uA260 g328 g---

Like the TD01 that I recently reviewed, this light seems to have somewhat inflated specs on its highest levels. It is probably even worse than the numbers above suggest, as I know my lightbox’s relative calibration is generously high for modern high-output lights.

My NIST-calibrated luxmeter similarly shows ~10% lower throw than the specs. But this is still an incredibly bright and far-throwing flashlight.

As an aside, I’ve very impressed with how low the light can go in the Smooth Ramping output level set. This is one of the lowest levels I’ve seen yet for a modern light. Note that this likely reflects the presence of a simple linear FET driver, as a boost driver would have reduced dynamic range (and a higher minimum). Scroll down to output/runtimes for confirmation.

To view and download full testing results for all modern lights in my testing, check out my Database page.


As always, my runtimes are done under a small cooling fan, for safety and consistency. To learn more about how to interpret runtime graphs, see my runtimes methodology page.




For all its larger build and higher-end emitter, it is clear Wurkos is still using a basic FET driver on this light (i.e., something similar to the Anduril-equipped Sofirn IF25A and Lumintop D3 lights). This means you also won’t see any flat voltage-regulated output patterns on the TS30S Pro. It also means the step-down level from max is relatively low (i.e., drops to ~600 lumens and slowly recovers up to ~1300 lumens over the next hour).

At least the output/runtime efficiency of the SBT90.2 is a little higher than the D3’s SFN55.2 and IF25A’s 4xSST20 emitters. That said, overall output/runtime efficiency is definitelty lower than the fully flat-regulated TS22 and Convoy M21F, in comparison.

Although the higher thermal mass here means it won’t step-down quite as quickly on the highest output level (H8), you can also see that the TS30S Pro step-down is pretty steep once it begins. To better show this initial step-down pattern, below is an expanded view of first few minutes of those runtimes.


I’ve thrown in an additional run above for the max of the Ramping mode, showing that this is identical the max of the Stepped modes.

And here is comparison of the all the levels I’ve tested, and a clearer time-scale resolution:Max-extended

I haven’t tried adjusting the thermal management settings (these are configurable with Anduril), but you should be able to extend the runtime before step-down slightly (at the expense of greater heat, of course).

Pros and Cons

Super high output and throw, thanks to the SBT90 emitter and large reflectorr.Light doesn't meet the stated max specifications.
Good implementation of the sophisticated Anduril 2.0 user interface.Lacks flat voltage-regulation, and shows instead a somewhat "noisy" gradual direct-drive-like runtime appearance.
Solid build quality, with good fit and finish. Switch performance is particularly good for the budget class.Light steps down rapidly on highest level to a relatively low output.
Rapid USB-C charging and powerbank function.Some beam artifacts, especially in the corona.
Very affordable option for a high-output thrower light.Anduril interface can be intimidating.
Lacks a holster or other carry option.

Overall Rating

Preliminary Conclusions

I’m actually reasonably impressed with this model – it delivers an extraordinary amount of output and throw, with a good implementation of the Anduril user interface. Physically, the light feels very solid with good ergonomics (if understandably a bit top-heavy). And I like the feel of the rubberized switch cover, which I find superior to the typical Wurkkos hard button cover. I also like the RGB LED under the switch (in addition to the amber charging LED), as this gives you plenty of configuration options – and an impromptu “coloured Moonlight” mode option to boot. I don’t factor price into my rating system, but it is amazing to me that your can get a SBT90 emitter with all the features of this light for only ~$75 USD (i.e., the emitter alone is more than half that total cost).

That said, there are some missed opportunities here to make this a truly outstanding light. The most significant is the circuit – this light has the same basic FET driver that you see on many inexpensive Anduril lights, with a somewhat noisy and non-voltage-regulated runtime pattern. Overall output/runtime efficiency is somewhat better with the SBT90 than with lower-output emitters I’ve tested with this circuit, but it doesn’t compare to the fully regulated circuits that I’ve seen on the TS22 (and many other lights). This simple circuit is fundamentally why this light tops out at 4 stars in my view.

Physically, this light is pretty impressive for the price, but it would benefit from some refinements. One example is the reflector – while it throws remarkably well, there are a number of “daisy flower” like artifacts in the corona surrounding the hotspot (but that’s only noticeable on a white wall). Another area is thermal management. Like with many Anduril lights, the light steps down quickly from its highest modes due to heat. With a better heatsink in such a substantial build, you should have been able to extend that higher output runtime.

But thanks to the sophistication of Anduril, there is a lot you can do to customize the experience of this light. The rapid USB-C fast charging and powerbank functionality are also nice to see. I think its fair to give this light 4 stars given all that you do get here.


The TS30S Pro was supplied by Wurkkos for review. As always, all opinions are my own and the light received the same rigourous and objective testing as all other lights that I have reviewed. At the time of review, this light retails for ~$75 USD (~$100 CDN) with typical discounts on their website here.