Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI
Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI

Sofirn SP36 BLF Rechargeable Flashlight with Anduril 2.0 UI

style
Please select a style
tint
Please select a tint
Price
$85.99
$56.99
Save  34%
2252 sold
Quantity
Free worldwide shipping over $29
Returnable within 30 days
Professional service for everyone
Secure payments

NOTICE: SP36 flashlight uses very sophisticated UI for flashlight lovers. Please read manual word by word and reach us for guidance. And the SP36 puts out an immense amount of light, which generates heat over time.
 

Specifications:


1. Powerful: SP36 BLF Anduril 2.0 uses 4x LH351D led and Using latest 20200318 firmware, which give at least 5650 Lumens max.

2. Durable: It passes a dozen of tests like dropping, submerging into water(2 meters deep), heat up and cooling down etc. This light is tough enough for caving, searching and military use.

3. Long Runtime: SP36 BLF Anduril runs off 3*18650 3000mAh button top batteries lasting up to 45 days in Eco mode. 

4. Type C rechargeable: The button of the flashlight has a power display function. When its battery is low, it will prompt you to use the included Type-C cable to directly charge it quickly.

5. Fun and Easy: SP36 was designed by flasholics who want a powerful light that meets most people's needs. With the remarkable UI, it can be played as a toy or just use it as a tool: easily click to turn on, press and hold to ramping.

Please watch this video which shows how to thermally calibrate the SP36: https://youtu.be/RW1VzLoNsfo

The product uses copyrighted code released under the GNU Public License v3 (GPLv3).
To know about the exact source code used in the product, please go to https://tiny.cc/TKAnduril

Customer Reviews

Here are what our customers say.

Write a Review
Customer Reviews
Wow you reached the bottom
Newest
Most liked
Highest ratings
Lowest ratings
×
class SpzCustomFileUpload extends SPZ.BaseElement { constructor(element) { super(element); this.uploadCount_ = 0; this.fileList_ = []; } buildCallback() { this.action = SPZServices.actionServiceForDoc(this.element); this.registerAction('upload', (data) => { this.handleFileUpload_(data.event?.detail?.data || []); }); this.registerAction('delete', (data) => { this.handleFileDelete_(data?.args?.data); }); this.registerAction('preview', (data) => { this.handleFilePreview_(data?.args?.data); }); this.registerAction('limit', (data) => { this.handleFileLimit_(); }); this.registerAction('sizeLimit', (data) => { this.handleFileSizeLimit_(); }); } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } setData_(count, file) { this.uploadCount_ = count; this.fileList_ = file; } handleFileUpload_(data) { data.forEach(i => { if(this.fileList_.some(j => j.url === i.url)) return; this.fileList_.push(i); }) this.uploadCount_++; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileUpload", { count: this.uploadCount_, files: this.fileList_}); if(this.fileList_.length >= 5){ document.querySelector('#review_upload').style.display = 'none'; } if(this.fileList_.length > 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '8px'; } } handleFileDelete_(index) { this.fileList_.splice(index, 1); this.uploadCount_--; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleFileDelete", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; if(this.fileList_?.length === 0){ document.querySelector('.apps-reviews-write-anonymous-box').style.marginTop = '132px'; } } handleFilePreview_(index) { const finalPreviewData = this.fileList_[index]; const filePreviewModal = document.getElementById('filePreviewModal'); const fullScreenVideo = document.getElementById('fullScreenVideo'); const fullScreenImage = document.getElementById('fullScreenImage'); const previewModalClose = document.getElementById('previewModalClose'); const previewLoading = document.getElementById('previewLoading'); filePreviewModal.style.display = 'block'; previewLoading.style.display = 'flex'; if(finalPreviewData?.type === 'video'){ const media = this.mediaParse_(this.fileList_[index]?.url); fullScreenVideo.addEventListener('canplaythrough', function() { previewLoading.style.display = 'none'; }); fullScreenImage.src = ''; fullScreenImage.style.display = 'none'; fullScreenVideo.style.display = 'block'; fullScreenVideo.src = media.mp4 || ''; } else { fullScreenImage.onload = function() { previewLoading.style.display = 'none'; }; fullScreenVideo.src = ''; fullScreenVideo.style.display = 'none'; fullScreenImage.style.display = 'block'; fullScreenImage.src = finalPreviewData.url; } previewModalClose.addEventListener('click', function() { filePreviewModal.style.display = 'none'; }); } handleFileLimit_() { alert(window.AppReviewsLocale.comment_file_limit || 'please do not upload files more than 5'); this.triggerEvent_("handleFileLimit"); } handleFileSizeLimit_() { alert(window.AppReviewsLocale.comment_file_size_limit || 'File size does not exceed 10M'); } clear(){ this.fileList_ = []; this.uploadCount_ = 0; sessionStorage.setItem('fileList', JSON.stringify(this.fileList_)); this.triggerEvent_("handleClear", { count: this.uploadCount_, files: this.fileList_}); document.querySelector('#review_upload').style.display = 'block'; } mediaParse_(url) { var result = {}; try { url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function (str, key, value) { try { result[key] = decodeURIComponent(value); } catch (e) { result[key] = value; } }); result.preview_image = url.split('?')[0]; } catch (e) {}; return result; } triggerEvent_(name, data) { const event = SPZUtils.Event.create(this.win, name, data); this.action.trigger(this.element, name, event); } } SPZ.defineElement('spz-custom-file-upload', SpzCustomFileUpload);
The review would not show in product details on storefront since it does not support to.