डिस्पोज़ेबल ई-सिगरेट पर वेबसाइट होस्ट करना
(bogdanthegeek.github.io)- डिस्पोज़ेबल ई-सिगरेट में लगे लो-परफॉर्मेंस ARM Cortex-M0+ माइक्रोकंट्रोलर का उपयोग करके वेब सर्वर चलाने वाला एक प्रयोगात्मक प्रोजेक्ट
- 24KiB फ्लैश और 3KiB RAM वाले PUYA के PY32F002B चिप का विश्लेषण किया गया, और SLIP तरीके से नेटवर्क कनेक्शन लागू किया गया
- Semihosting, SLIP प्रोटोकॉल और uIP TCP/IP स्टैक का उपयोग करके वर्चुअल tty के जरिए TCP/IP संचार और HTTP सर्वर फ़ंक्शन को पोर्ट किया गया
- शुरुआत में यह बहुत धीमा था, लेकिन बफ़र ऑप्टिमाइज़ेशन और डेटा प्रोसेसिंग में सुधार के जरिए रिस्पॉन्स और पेज लोडिंग स्पीड में बड़ा सुधार किया गया
- कम मेमोरी वाले वातावरण में भी डायनेमिक सर्वर कोड चलाना और API endpoint उपलब्ध कराना संभव किया गया
- कोड वितरित किया जा रहा है, व्यावहारिक होस्टिंग संभव है, लेकिन मेमोरी जैसी संसाधन सीमाएँ काफ़ी हैं
प्रस्तावना
- पहले यह स्पष्ट कर दूँ कि यह लेख डिस्पोज़ेबल ई-सिगरेट पर सीधे चलने वाले वेब सर्वर से सर्व नहीं किया जा रहा, बल्कि वही सामग्री एक अलग सर्वर से दी जा रही है
- वास्तविक डेमो http://ewaste.fka.wtf/ पर देखा जा सकता है
पृष्ठभूमि
- पिछले कुछ वर्षों से बैटरियों को रीयूज़ करने के उद्देश्य से परिचितों से डिस्पोज़ेबल ई-सिगरेट इकट्ठी की गईं
- हाल में डिस्पोज़ेबल ई-सिगरेट डिवाइस धीरे-धीरे अधिक उन्नत होने लगीं, और उनमें USB-C तथा रीचार्जेबल बैटरी आने लगी, जिसने रुचि जगाई
- उन्हें खोलते समय PUYA नाम वाला फ्लैश चिप-इंटीग्रेटेड ARM Cortex-M0+ माइक्रोकंट्रोलर मिला, जो कम-कीमत माइक्रोकंट्रोलर के रूप में काफ़ी जाना जाता है
- ऐसे माइक्रोकंट्रोलर कई मॉडलों से इकट्ठे किए गए, और डिबग पिन लेबलिंग होने के कारण उनका विश्लेषण आसान रहा
उपयोग किया गया हार्डवेयर
- चिप पर
PUYA C642F15अंकित था, लेकिन वास्तविकता में इसे PY32F002B परिवार का माना गया - मुख्य विनिर्देश:
- 24MHz Cortex-M0+ कोर
- 24KiB फ्लैश
- 3KiB RAM
- कई परिधीय मौजूद हैं, लेकिन इस प्रोजेक्ट में उनका उपयोग नहीं किया गया
- सामान्य स्मार्टफोन की तुलना में प्रदर्शन कम है, लेकिन एम्बेडेड वातावरण में सरल वेब सर्वर बनाना पूरी तरह संभव है
नेटवर्क कनेक्शन
- यह पहला विचार नहीं था, लेकिन semihosting की अवधारणा पर प्रयोग करते हुए वेब सर्वर चलाने का विचार आया
- Semihosting, embedded ARM पर syscall की नकल करने का एक तरीका है
- रजिस्टर में वैल्यू/पॉइंटर डालकर breakpoint कॉल करने पर डिबगर उसे समझकर संबंधित काम करता है
- आम तौर पर इसका उपयोग लॉग भेजने के लिए होता है, लेकिन द्विदिश डेटा संचार भी संभव है
- USB serial डिवाइस SLIP (Serial Line Internet Protocol) प्रोटोकॉल को सपोर्ट करते हैं, इसलिए उन्हें नेटवर्क इंटरफ़ेस के रूप में इस्तेमाल किया गया
- Linux (और कुछ macOS) पर
slattachऔरsocatआदि की मदद से वर्चुअल tty के माध्यम से SLIP नेटवर्क वातावरण बनाया गयाpyocd gdb -S -O semihost_console_type=telnet -T $(PORT) $(PYOCDFLAGS) & socat PTY,link=$(TTY),raw,echo=0 TCP:localhost:$(PORT),nodelay & sudo slattach -L -p slip -s 115200 $(TTY) & sudo ip addr add 192.168.190.1 peer 192.168.190.2/24 dev sl0 sudo ip link set mtu 1500 up dev sl0 - TCP/IP स्टैक के रूप में uIP चुना गया, क्योंकि यह बहुत छोटा है, RTOS की आवश्यकता नहीं होती, और पोर्ट करना आसान है
- uIP उदाहरणों में मौजूद HTTP सर्वर का उपयोग किया गया, और SLIP कोड को semihosting तरीके के अनुसार पोर्ट करके वेब सर्वर सफलतापूर्वक चलाया गया
- ARM आर्किटेक्चर पर 16-बिट alignment समस्या होने के कारण filesystem generation script में बदलाव किए गए और Perl के जरिए कन्वर्ज़न प्रोसेस किया गया
गति अनुकूलन
- शुरुआती अवस्था में ping 1.5 सेकंड, 50% पैकेट लॉस और पेज लोडिंग में 20 सेकंड से अधिक समय लगता था, यानी प्रतिक्रिया बहुत धीमी थी
- कारण था बाइट-स्तरीय I/O का भारी overhead
- 3KiB RAM का सक्रिय उपयोग करते हुए ring buffer जोड़ा गया, और SLIP फ़ंक्शन को बैच में डेटा देने वाली संरचना बनाई गई
- राइट ऑपरेशन भी बैच में विभाजित करके भेजे गए, जिससे तेज़ cleanup संभव हुआ
- ऑप्टिमाइज़ेशन के बाद ping 20ms, बिना लॉस, पेज लोडिंग 160ms हासिल की गई
- कुल RAM और फ्लैश उपयोग:
- फ्लैश: 24KB में से 5,116B(20.82%)
- RAM: 3KB में से 1,380B(44.92%)
- पूरे ब्लॉग की सामग्री भी बिना दिक्कत सर्व की जा सकने वाली क्षमता में है, और सर्वर-साइड C कोड चलाना भी संभव है
अन्य फ़ीचर और निष्कर्ष
- API endpoint सीधे लागू किया गया, जो मुख्य पेज के अनुरोधों की संख्या और माइक्रोकंट्रोलर का unique ID लौटाता है
- यह अत्यंत कम-क्षमता वाले हार्डवेयर और न्यूनतम मेमोरी पर डायनेमिक वेब सर्वर और API तक लागू करने का एक प्रयोग है
6 टिप्पणियां
प्रोजेक्ट और लेख बहुत मज़ेदार लगे और मैंने उन्हें बड़े आनंद से पढ़ा। लेकिन यह जानकर कि disposable e-cigarette जैसी कोई चीज़ भी होती है, मैं बहुत हैरान हुआ, और लगा कि यह ठीक नहीं है..
मैं भी non-smoker हूँ, इसलिए मुझे पता नहीं था, लेकिन हाल ही में हमारे मोहल्ले में खुले एक unmanned cafe में disposable e-cigarette vending machine देखकर मुझे यह बात पता चली। नीचे के Hacker News कमेंट्स में भी आधे लोग बेहूदा resource waste की बात कर रहे हैं. हा हा
टिप्पणी लिखने के बाद सोच रहा हूँ कि अगर बिना स्टाफ वाले कैफ़े में यह वेंडिंग मशीन के रूप में हो, तो वयस्क सत्यापन कैसे किया जाता होगा, यह जानने की जिज्ञासा है। क्या वेंडिंग मशीन में पहचान पत्र पहचानने की सुविधा भी होती है..
मैं धूम्रपान नहीं करता, इसलिए पहले समझ नहीं आया कि बात क्या है, लेकिन आपका कहना है कि एक बार इस्तेमाल होने वाली चीज़ होने के बावजूद इसमें बहुत ज़्यादा संसाधनों का उपयोग होता है।
वेप करते समय अगर कहीं उसे छोड़ आए हों या यात्रा पर हों...
तो एक और डिवाइस खरीदना या सिगरेट पीना थोड़ा अजीब लगता है, लेकिन निकोटीन की तलब भी शांत करनी होती है, इसलिए ऐसे समय में आखिरकार convenience store में ही ढूंढने लगते हैं।
Hacker News की राय
अगर आप सस्ता लेकिन ताकतवर हार्डवेयर ढूंढ रहे हैं, तो चीन का UZ801 4G LTE (Qualcomm MSM8916) dongle भी देखने लायक है। यह डिवाइस करीब $4~5 का है, लेकिन 4GB eMMC, 512MB RAM, एक असली 4G modem (कभी-कभी 2-SIM switching सपोर्ट के साथ) जैसी प्रभावशाली हार्डवेयर खूबियां देता है। यह मूल रूप से एक पुराना Android SoC है, इसलिए इसमें GPU और GPS भी शामिल हैं। dongle सपोर्ट के लिए पहले से ही काफी काम हो चुका है
Zhihe series LTE dongles जानकारी
OpenStick प्रोजेक्ट
ऐसे अनोखे homelab प्रोजेक्ट्स के लिए हार्डवेयर प्लेटफ़ॉर्म ढूंढ रहे हों तो यह अच्छा विकल्प है
शुरुआती लोगों के लिए यह गाइड सबसे अच्छा लग रहा है। Linux install करने के लिए firmware partition का backup लेकर उसे फिर से flash करना पड़ता है, तभी 4G modem काम करता है। सिर्फ 5 डॉलर में इतना सारा हार्डवेयर मिलना सच में अविश्वसनीय है। इसमें एक power bank (या फेंकी हुई e-cigarette battery से खुद बनाकर) जोड़ दें, तो कहीं भी इस्तेमाल होने वाली WiFi और 4G सपोर्ट वाली Linux machine तैयार हो जाती है
अगर आपको ऐसे SoC या मिलते-जुलते प्रोडक्ट्स के लिंक चाहिए, तो Hackaday में इस पर एक समर्पित लेख और कई लिंक दिए गए हैं
Hackaday लेख
AliExpress MSM8916 उदाहरण
मैंने एक MSM8916 dongle भी देखा जिसमें बिल्ट-इन स्क्रीन थी (हालांकि RAM की जानकारी नहीं थी)
Qualcomm MSM8916 का नाम सुनकर अच्छा लगा। यह मेरा पुराना दोस्त Snapdragon 410 ही है। 2015 के Moto G3 में भी यही processor था (और मैं आज भी उसे कभी-कभी whatsapp के लिए इस्तेमाल करता हूँ)। Android base (version 7) पर यह भारी कामों को छोड़कर, उम्मीद के विपरीत, काफी कुशलता से चलता है। यह प्रभावशाली है कि ऐसे पुराने mobile chipset को अब भी इतने जीवंत तरीके से सपोर्ट मिल रहा है।
और मज़ेदार बात यह है कि यह chip Android के लिए शुरुआती 64-bit सपोर्ट वाले processors में से एक था, लेकिन Motorola लॉन्च से पहले इसे port नहीं कर पाई, इसलिए सिर्फ 32-bit Android ही सपोर्ट हुआ
इससे मुझे Freedom Pop का वह Linux पर चलने वाला LTE dongle याद आ गया जो वे मुफ्त में बांटते थे। उसे खोलने पर UART access भी मिल जाता था
मेरी सबसे बड़ी समस्या यह है कि
a.) electronics की दुनिया बहुत तेजी से बदल रही है
b.) मेरी skills और समय इतने नहीं हैं कि मैं इससे कुछ cool बना सकूँ
मैंने पहले licheerv nano खरीदा था (जैसे luckfox pico, Milk-v duo के समान) ताकि usb-c audio jack वाला open source iPod nano बना सकूँ।
लेकिन मुझे 2.4-inch, या 3-inch से छोटे ऐसे touchscreen नहीं मिले जो licheerv nano के MPI port के compatible हों।
LVGL के साथ एक छोटा portable audio player बनाया जा सकता था, लेकिन वह मेरे लिए कठिन था
इस तरह के डिवाइस का reuse करना वाकई शानदार है। अगर कभी पूरा शहर ऐसे डिवाइस जोड़कर चलने लगे, तो पोस्ट-एपोकैलिप्टिक फिल्म जैसी दुनिया की कल्पना होती है।
दूसरी ओर, आजकल disposable e-cigarettes में सिर्फ microcontroller ही नहीं, बल्कि हाल की रिपोर्ट्स के मुताबिक games और screens भी लगी होती हैं। यह इलेक्ट्रॉनिक कचरे का भयानक उदाहरण है। इसमें कई परतों वाली मूर्खता दिखाई देती है
एक और उदाहरण disposable COVID test है। उसमें microcontroller और optical sensor लगे होते हैं, और वह Bluetooth से फोन पर नतीजे दिखाता है। इस पर पहले की चर्चा यहाँ भी हुई थी
disposable e-cigarettes के अंदर मौजूद पूरी तरह reusable lithium battery के बारे में मैं पहले से जानता था। सिर्फ वही अपने-आप में गंभीर बर्बादी है।
लेकिन अब इसमें microcontroller और USB-C connector भी है! मैं जानना चाहता हूँ कि उस connector तक बाहर से पहुंचा जा सकता है या package खोले बिना नहीं।
सच में, यह कई परतों वाली मूर्खता है। अंदर के हार्डवेयर की कीमत शायद असली प्रोडक्ट की कीमत के आधे से भी ज्यादा होगी
मुझे जिज्ञासा है कि क्या disposable e-cigarettes वाकई इतने गंभीर electronic waste हैं। हमारे द्वारा फेंकी जाने वाली कई चीज़ों—जैसे phone, car, laptop—में भी काफी reusable hardware होता है, और आम तौर पर उनका प्रबंधन भी ठीक से नहीं होता। बल्कि अगर vape hardware किसी हद तक standardize हो जाए, तो शायद Arduino की तरह इसे school projects में इस्तेमाल किया जा सके
यह सुनकर duskOS और collapseOS याद आ जाते हैं
सिर्फ यह तथ्य कि ऐसे प्रोडक्ट बेचे जा सकते हैं, इस बात का प्रमाण है कि regulation काफी नहीं है
पुराने कंप्यूटरों से इसका स्पेक अंतर दिलचस्प है। उदाहरण के लिए Commodore 64 में 64KB RAM को 8-bit, 1MHz CPU के साथ जोड़ा गया था। लेकिन आज उससे आधी RAM वाला एक disposable डिवाइस भी 32-bit 24MHz CPU के साथ आता है। 1980s में जिसकी कल्पना भी नहीं की जा सकती थी, वह 2025 में disposable रूप में सामने आ रहा है। अजीब तरह से प्रभावशाली है
असल में RAM 3KB है और flash 24KB। बेशक flash की speed कुछ पुराने memory सिस्टम जैसी हो सकती है, लेकिन latency की तुलना ही नहीं की जा सकती
सिर्फ 3KB RAM होने से, यह पुराने VIC-20 से भी कम है
1980s के मानकों से CPU इतना भी शानदार नहीं है। 1987 में Acorn Archimedes में 8MHz ARM processor था, जो महंगा जरूर था, लेकिन कम से कम 512KB RAM के साथ आता था
(वैसे, यह सोचकर हैरानी होती है कि 1987 अब 38 साल पहले था)
मुझे खुशी है कि यह दिखाया गया कि ऐसे डिवाइस कितने उपयोगी हो सकते हैं। ऐसे प्रोडक्ट्स को "disposable" मानना किसी तरह की पागलपन जैसा है। मैंने सड़क किनारे फेंके गए vapes से LiPo battery निकालकर इस्तेमाल की है, और ये batteries rechargeable होती हैं तथा इनमें charging circuit भी built-in होता है (वह भी काफी बेहतर स्तर का)। इन्हें सिर्फ एक बार इस्तेमाल करके फेंकने के लिए बनाना सच में गलत है।
यह दरअसल 'repair न हो सकने' की पराकाष्ठा है। reuse और recharge को रोकने के इरादे से डिज़ाइन किया जाना eco-friendly सोच और maker spirit, दोनों के खिलाफ है
reusable e-cigarettes भी मौजूद हैं, और भरोसेमंद दुकानें आम तौर पर वही बेचती हैं। लेकिन ये disposable e-cigarettes की तुलना में काफी महंगी होती हैं। इसलिए disposable प्रोडक्ट्स तस्करों और नाबालिगों में लोकप्रिय हैं (कम कीमत और जब्ती के जोखिम की वजह से)।
नतीजतन, युवा लोग आपराधिक गिरोहों के संपर्क में आते हैं, और पैसे न होने पर उनके कर्ज़दार भी बन जाते हैं। इसका असर वैसा ही हो सकता है जैसा drug debt में फंसने का होता है। उस कमी को पूरा करने के लिए उन्हें दूसरे अपराधों में भी इस्तेमाल किया जा सकता है
मैंने एक शानदार वीडियो देखा था जिसमें किसी ने music festival से इकट्ठा किए गए disposable e-cigarettes से electric bicycle battery बनाई थी
संबंधित वीडियो
मैं समझ नहीं पाता कि disposable e-cigarettes अभी भी legal क्यों हैं। मुझे लगा था कि 386 generation के बाद की पीढ़ियाँ resource waste को लेकर सच में जागरूक होंगी, लेकिन निराशा हुई
किसी दिन कोई वकील जरूर यह समझाते हुए दिखेगा कि USB C और rechargeable battery होने के बावजूद किसी चीज़ को कैसे "disposable" कहा जा सकता है
दरअसल इसे इस रूप में बनाने का कारण यह है कि तकनीकी रूप से यह reusable है, इसलिए इसे उन जगहों पर भी बेचा जा सकता है जहाँ disposable e-cigarettes पर प्रतिबंध है।
यह बिक्री का तरीका जानबूझकर ऐसे कुछ उपयोगकर्ताओं को लक्षित करता है जो बार-बार खरीदते और फेंकते रहते हैं
जब पूरी तरह reusable e-cigarettes मौजूद हैं, तो disposable क्यों खरीदें, यह मेरी समझ से बाहर है। ईमानदारी से कहूँ तो मुझे यह सिर्फ smoking habit छोड़ने के उद्देश्य से ही कुछ हद तक उपयोगी लगती है
यह ठीक वैसा ही है जैसे plastic bag regulation के बाद 10 सेंट में मोटे plastic bags बेचना। नाम भर के लिए वे "reusable" हैं
कुछ प्रोडक्ट्स में बदलने योग्य pods/tanks होते हैं, लेकिन ज़्यादातर में ऐसा कोई पार्ट नहीं होता जिसे user खुद ठीक कर सके। जब liquid कुछ कम हो जाता है, तो coil जलने लगती है और पूरा यूनिट फेंकना पड़ता है। एक दुकान कहती है कि वह इस्तेमाल किए गए units वापस लेकर ठीक से खोलकर process करती है, लेकिन ज़्यादातर लोग शायद इन्हें सामान्य कचरे में ही फेंक देते हैं
USB C इसलिए जोड़ा गया है क्योंकि battery की क्षमता, प्रोडक्ट में भरे liquid की मात्रा के मुकाबले, पर्याप्त नहीं होती। नतीजा यह है कि 2~3 बार पूरा charge किया जा सकता है और तब तक liquid खत्म हो जाता है
disposable e-cigarettes ऐसा phenomenon हैं कि समझ ही नहीं आता समाज ने इसे सामान्य कैसे मान लिया
समाज अक्सर उन चीज़ों को सामान्य मान लेता है जिनके पास advertising budget होता है
और यह बात भी नहीं भूलनी चाहिए कि ये बहुत कम समय में लोगों के फेफड़ों को गंभीर नुकसान पहुँचा सकती हैं
apocalypse की तैयारी का सामान: गोलियां, canned food, पीने का पानी? नहीं।
Faraday cage के अंदर रखे 1,200 geek bar
हैकिंग जिंदाबाद! मुझे लगता है Hacker News ठीक ऐसे ही कंटेंट के लिए मौजूद है। शानदार लेख और मजेदार प्रोजेक्ट था
आजकल तकनीक की हालत सच में अजीब है। AI हमारा काम छीनने के बजाय हमारे लिए चित्र बना रहा है, और अब eCigarette पर website host की जा रही है। इस हालात के लिए मेरे पास सिर्फ एक शब्द है: "अजीब"
लगता है लेखक ने सचमुच असली मायने में "vaporware" चलाने के लिए अंतिम computing platform ढूंढ लिया है