
अपने BES-आधारित हेडफ़ोन की पूरी शक्ति को उजागर करें! :)
soundcore q-सीरीज़ हेडफ़ोन के फ़र्मवेयर को पैच, संशोधित और बेहतर बनाने के लिए एक ओपन-सोर्स टूलकिट, जिसमें भविष्य में अन्य मॉडलों के लिए समर्थन की योजना है।
नोट: यह प्रोजेक्ट हार्डवेयर रिवर्स-इंजीनियरिंग और एम्बेडेड सिस्टम की दुनिया में मेरी व्यक्तिगत यात्रा है। इसे एक किशोर द्वारा बनाया गया था और मैं चलते-चलते सीख रहा हूँ। बग, गलतियाँ और बहुत सारा मज़ा अपेक्षित है। सभी योगदान और सलाह का स्वागत है!
यह प्रोजेक्ट दो भागों में विभाजित है:
मैंने एक डेमो प्रोजेक्ट भी बनाया है - एक DOOM पोर्ट जो DOOMBuds प्रोजेक्ट पर आधारित है। उसे भी देखें! =)
यह प्रोजेक्ट soundcore life q35 के साथ शुरू किया गया था। यदि आप किसी नए मॉडल का परीक्षण करने या समर्थन जोड़ने में मदद करना चाहते हैं, तो कृपया एक issue खोलें!
अन्य मॉडलों के लिए समर्थन एक भविष्य का लक्ष्य है!
नोट:
bes2300*, bes1502*, bes1600चिपसेट पर आधारित डिवाइस भविष्य के समर्थन के लिए सबसे संभावित उम्मीदवार हैं।
openqore अभी शुरू हुआ है। यहाँ आगे क्या आने वाला है इसकी एक मोटी योजना है:
यह गाइड मानता है कि आपके सिस्टम पर python और git स्थापित हैं।
1. releases से zip संग्रह डाउनलोड करें और निकालें
2. निर्भरताएँ स्थापित करें
पैचर को ऑडियो रूपांतरण के लिए ffmpeg और pybluez की आवश्यकता होती है:
windows:
pip install git+https://github.com/pybluez/pybluez.git
winget install ffmpeg
macos:
pip install git+https://github.com/pybluez/pybluez.git
brew install ffmpeg
ubuntu/debian:
pip install git+https://github.com/pybluez/pybluez.git
sudo apt install ffmpeg
3. अपनी फ़र्मवेयर फ़ाइल प्राप्त करें
आप OTA इमेज यहाँ से डाउनलोड कर सकते हैं या UART के साथ फ्लैश पढ़ सकते हैं:
➡️ हार्डवेयर गाइड: UART के माध्यम से कनेक्ट करना
ota (over-the-air) के माध्यम से फ्लैश पढ़ना भविष्य के अपडेट के लिए योजनाबद्ध है। (यदि यह संभव है :D)
4. बधाई!
आप उपयोग निर्देश यहाँ पा सकते हैं
यदि आपने आधिकारिक अपडेट सर्वर से ota अपडेट इमेज डाउनलोड की है, तो "without ota boot" विकल्प चुनें
नोट: यदि आपने ota boot के बिना फ़र्मवेयर पैच किया है, तो आपको UART के माध्यम से फ्लैश करने से पहले पैच किए गए फ़र्मवेयर के हेडर पर इसे जोड़ना होगा। यदि आप besota स्क्रिप्ट का उपयोग कर रहे हैं तो आपको इसकी आवश्यकता नहीं है!
इस अनुभाग में q35 फ़र्मवेयर के रिवर्स-इंजीनियरिंग से कुछ प्रारंभिक निष्कर्ष शामिल हैं।
हेडफ़ोन में कई छिपे हुए परीक्षण मोड हैं। उनमें से कुछ भविष्य के अपडेट या डिबगिंग के लिए उपयोगी हो सकते हैं।
इंजीनियरिंग मोड: इस मोड में प्रवेश करने के लिए, पावर बटन दबाए रखें, हेडफ़ोन को चालू होने से पहले USB-C के माध्यम से पीसी से कनेक्ट करें, और उनके चालू होने की प्रतीक्षा करें।
rfcomm: हेडफ़ोन में दो सीरियल COM पोर्ट हैं। उनमें से एक लिखने योग्य है। अब तक, मैं इस पोर्ट के माध्यम से ट्रिगर करने में सक्षम एकमात्र फ़ंक्शन एक UFR (नीचे स्पष्टीकरण) है। यह एक सुरक्षा उपाय प्रतीत होता है, क्योंकि यह एक विशिष्ट कमांड के बजाय विभिन्न हेक्स कोड को ब्रूट-फोर्स करके ट्रिगर किया गया था। दिलचस्प बात यह है कि यह मानक रीसेट (पावर + vol+) नहीं है बल्कि कुछ अलग है।
परीक्षण मोड: यह मोड इंजीनियरिंग मोड के समान दर्ज किया जाता है, लेकिन आपको सफेद LED के पहली बार चमकने के तुरंत बाद, नीली रोशनी से पहले, पावर बटन छोड़ना होगा। हेडफ़ोन तब पीसी पर "device descriptor request failed" त्रुटि वाले डिवाइस के रूप में दिखाई देंगे। आप सफेद LED द्वारा इस मोड में होने की पुष्टि कर सकते हैं, जो सामान्य से तेज़ चमकती है। इसका उद्देश्य संभवतः फ़र्मवेयर फ्लैशिंग से संबंधित है। साथ ही, इस मोड में, हेडफ़ोन चार्जिंग के दौरान चालू किए जा सकते हैं!
अप्रलेखित फ़ैक्टरी रीसेट (UFR): एक छिपा हुआ फ़ैक्टरी रीसेट हेडफ़ोन के चालू होने पर पावर बटन को कई बार तेज़ी से दबाकर या वर्चुअल COM पोर्ट (ऊपर) पर कुछ भेजकर ट्रिगर किया जा सकता है। इससे फ़र्मवेयर हैंग हो जाएगा और फिर लगभग 30 सेकंड के बाद रीबूट करने के लिए मजबूर हो जाएगा। ध्यान दें कि यह क्रिया सभी उपयोगकर्ता डेटा मिटा देगी, जिसमें इक्वलाइज़र सेटिंग्स, ब्लूटूथ पेयरिंग और अन्य कॉन्फ़िगरेशन शामिल हैं।
फ़र्मवेयर एक मोनोलिथिक बाइनरी प्रतीत होता है जो कई अनुभागों में विभाजित है। प्रत्येक महत्वपूर्ण अनुभाग crc32 चेकसम द्वारा सुरक्षित है। भविष्य के पैचर बूट विफलताओं को रोकने के लिए किसी भी संशोधन के बाद इन चेकसम की स्वचालित रूप से पुनर्गणना करेंगे।
योगदान ही ओपन सोर्स समुदाय को सीखने, प्रेरित करने और बनाने के लिए इतनी अद्भुत जगह बनाते हैं। आपके द्वारा किए गए किसी भी योगदान की बहुत सराहना की जाती है।
यदि आपके पास कोई सुझाव है जो इसे बेहतर बनाएगा, तो कृपया रेपो को फोर्क करें और एक पुल रिक्वेस्ट बनाएं। आप "enhancement" टैग के साथ एक issue भी खोल सकते हैं। प्रोजेक्ट को स्टार देना न भूलें! फिर से धन्यवाद!
git checkout -b feature/amazing-feature)।git commit -m 'feat: add some amazing feature')।git push origin feature/amazing-feature)।यदि आपको यह प्रोजेक्ट उपयोगी लगता है और इसके भविष्य के विकास का समर्थन करना चाहते हैं, तो आप boosty के माध्यम से मुझे कॉफी या कुछ स्नैक्स खिला सकते हैं! हर योगदान की बहुत सराहना की जाती है और यह मुझे openqore के लिए अधिक समय समर्पित करने में मदद करता है।
यह प्रोजेक्ट एआई-संचालित कोडिंग सहायकों (जैसे claude और chatgpt) के व्यापक उपयोग के साथ जीवन में लाया गया था। जबकि मुख्य रिवर्स-इंजीनियरिंग, शोध और वास्तुकला संबंधी निर्णय लेखक द्वारा किए गए थे, एआई ने विकास प्रक्रिया को तेज करने, बॉयलरप्लेट कोड लिखने और डिबगिंग में महत्वपूर्ण भूमिका निभाई।
यह आधुनिक उपकरणों के साथ बनाया गया एक आधुनिक प्रोजेक्ट है।
यह प्रोजेक्ट mit लाइसेंस के तहत लाइसेंस प्राप्त है। आप लाइसेंस फ़ाइल में पूरा लाइसेंस टेक्स्ट पा सकते हैं।
| मॉडल | चिपसेट | स्थिति |
|---|
| soundcore life q35 | bes2300p | ✅ समर्थित |
| soundcore life q30 | bes2300p | ❔ काम करना चाहिए लेकिन परीक्षण की आवश्यकता है |
| soundcore life tune pro | bes2300p | ❔ काम करना चाहिए लेकिन परीक्षण की आवश्यकता है |
| soundcore life tune | bes2300p | ❔ काम करना चाहिए लेकिन परीक्षण की आवश्यकता है |
| soundcore life q20i | bes2300p | ❔ काम करना चाहिए लेकिन परीक्षण की आवश्यकता है |
| soundcore space one | bes1502x | ❌ कार्य प्रगति पर |
16khz, mono, SBC ऑडियो स्ट्रीम के रूप में संग्रहीत हैं।48khz, stereo पर ऑडियो चलाने के लिए मजबूर करना संभव है। यह कस्टम ध्वनियों की गुणवत्ता में काफी सुधार करता है।bes2300p SoC है। एक डेटाशीट खोजकर पाई जा सकती है।uart सीरियल पोर्ट उपलब्ध है, जिसका उपयोग प्रारंभिक डिबगिंग के लिए किया गया था और यह खराब फ्लैश के बाद डिवाइस को अनब्रिक करने का प्राथमिक तरीका है। bes2300p चिप में स्वयं दो uart पोर्ट हैं, लेकिन उनमें से केवल एक ही PCB पर आसानी से सुलभ पैड के रूप में उजागर होता है।