محققانی از دانشگاههای مختلف، از جمله دانشگاه کالیفرنیا، حملهای به نام «Mic‑E‑Mouse» توسعه دادن که ماوسهای گیمینگ با حساسیت بالا (DPI و polling rate بالا) رو به میکروفونهای پنهان تبدیل میکنه.
سنسورهای این ماوسها با اینکه برای ثبت حرکت طراحی شدن، بلکه ارتعاشات آکوستیکی میز رو هم ناخواسته ضبط میکنن. این موضوع به محققان اجازه داده تا بهجای روشهای سنتی جاسوسی، از یک پایپلاین ترکیبی پردازش سیگنال و یادگیری ماشین استفاده کنن و دادههای خام موس رو به گفتار قابلفهم تبدیل کنن، حتی بدون میکروفون واقعی یا فعال.
روند کار به این صورته که ماوس خیلی حساس روی میزه و یه برنامه آلوده (مثلاً بازی) به دادههای خام HID دسترسی داره. از اونجایی که دادهها ممکنه با زمانبندی نامنظم ثبت شده باشن، پس اول زمانبندی نمونهها اصلاح میشه تا همه روی یک نرخ نمونهبرداری قرار بگیرن. بعد با فیلترهای دیجیتال، فقط بازه فرکانسی مهم برای گفتار (~۲۰۰–۲۰۰۰ هرتز) جدا میشه تا بقیه فرکانسها حذف شن. چون حسگر ممکنه پاسخ فرکانسی خطی نداشته باشه، با کالیبراسیون اثرهای غیرخطی جبران میشن. در نهایت مدلهای یادگیری ماشین، نویزِ باقیمونده رو کم میکنن و از سیگنال ارتعاشی، موج صوتی شنیدنی میسازن.
آزمایشها نشون دادن این حمله در دنیای واقعی هم جواب میده! از
مزایای این روش نیاز فقط به دسترسی نرمافزاری و سختافزار معمولی، بدون میکروفون اضافی، و قابل اجرا برای کاربران خانگی یا سازمانیه!
با این حال کیفیت وابسته به محیطه (کثیفی یا نویز بالا عملکرد رو کم میکنه) و فعلاً نیاز به پردازش آفلاین هم وجود داره، محققان میگن با الگوریتمها یا فیلترهای تطبیقی این موارد قابلبهبودن.
موارد استفاده هم میتونه جاسوسی در محل کار یا خونه، استخراج اطلاعات حساس، سوءاستفاده در سیستمهای امنیتی که ماوس ورودیشونه، و بهکارگیری در روباتها/IoT یا دستگاههای پوشیدنی برای نظارت پنهان باشه.
خلاصه این مقاله رو میتونید تو این لینک و نسخه کاملش رو هم اینجا مطالعه کنید.
📡openpcb
سنسورهای این ماوسها با اینکه برای ثبت حرکت طراحی شدن، بلکه ارتعاشات آکوستیکی میز رو هم ناخواسته ضبط میکنن. این موضوع به محققان اجازه داده تا بهجای روشهای سنتی جاسوسی، از یک پایپلاین ترکیبی پردازش سیگنال و یادگیری ماشین استفاده کنن و دادههای خام موس رو به گفتار قابلفهم تبدیل کنن، حتی بدون میکروفون واقعی یا فعال.
روند کار به این صورته که ماوس خیلی حساس روی میزه و یه برنامه آلوده (مثلاً بازی) به دادههای خام HID دسترسی داره. از اونجایی که دادهها ممکنه با زمانبندی نامنظم ثبت شده باشن، پس اول زمانبندی نمونهها اصلاح میشه تا همه روی یک نرخ نمونهبرداری قرار بگیرن. بعد با فیلترهای دیجیتال، فقط بازه فرکانسی مهم برای گفتار (~۲۰۰–۲۰۰۰ هرتز) جدا میشه تا بقیه فرکانسها حذف شن. چون حسگر ممکنه پاسخ فرکانسی خطی نداشته باشه، با کالیبراسیون اثرهای غیرخطی جبران میشن. در نهایت مدلهای یادگیری ماشین، نویزِ باقیمونده رو کم میکنن و از سیگنال ارتعاشی، موج صوتی شنیدنی میسازن.
آزمایشها نشون دادن این حمله در دنیای واقعی هم جواب میده! از
مزایای این روش نیاز فقط به دسترسی نرمافزاری و سختافزار معمولی، بدون میکروفون اضافی، و قابل اجرا برای کاربران خانگی یا سازمانیه!
با این حال کیفیت وابسته به محیطه (کثیفی یا نویز بالا عملکرد رو کم میکنه) و فعلاً نیاز به پردازش آفلاین هم وجود داره، محققان میگن با الگوریتمها یا فیلترهای تطبیقی این موارد قابلبهبودن.
موارد استفاده هم میتونه جاسوسی در محل کار یا خونه، استخراج اطلاعات حساس، سوءاستفاده در سیستمهای امنیتی که ماوس ورودیشونه، و بهکارگیری در روباتها/IoT یا دستگاههای پوشیدنی برای نظارت پنهان باشه.
خلاصه این مقاله رو میتونید تو این لینک و نسخه کاملش رو هم اینجا مطالعه کنید.
📡openpcb
🔥22🤯14👍4
به نظرم کانکتور USB-C یکی از درخشانترین ایدههای بشره، البته بعد از چرخ!
با این حال مهندسهای شرکت Segger وقتی داشتن J-Link BASE Compact با قیمت ۴۰۰یورویی رو بازطراحی میکردن، انگار از چگونگی کارکرد این استاندارد اطلاعی نداشتن به طور خجالتآوری همون اشتباهی رو تکرار کردن که مهندسها حین طراحی Raspberry Pi 4 در سال ۲۰۱۹ مرتکب شده بودن.
اون موقع کابلهای موسوم به e-marked باعث میشدن برد رزبری اصلاً روشن نشه! حالا هم تاریخ با دقت آزمایشگاهی تکرار شده! این دیباگر وقتی با یکی از همین کابلها وصل میشه، تصمیم میگیره هیچ کاری نکنه! نه برق بگیره، نه حتی یه LED از خودش نشون بده.
داستان از پینهای CC میاد، همون دو لاین که باید به هاست بگن «من یه دیوایسم، لطفاً بهم برق بده». طبق استاندارد، دستگاه باید روی هر پین CC یه مقاومت ۵.۱ کیلواهمی به زمین بذاره تا هاست بفهمه مجازه برق بده، ولی Segger ظاهراً تصمیم گرفته هر دو پین رو با هم قاطی کنه، دقیقاً همون اشتباه کلاسیکی که Pi 4 قبل از اصلاح طراحی مرتکب شده بود.
مشخص شده هر دو مقاومت CC به هم وصل شدن، احتمالاً برای صرفهجویی در یه دیود ESD بیزبان. طنز ماجرا اینجاست که طراحی فعلی احتمالاً از نسخهی قبلی با micro-USB کپی شده و یکی یادش رفته که حالا دیگه CC هم داریم. اصلاحش چند سنت بیشتر خرج نداره، ولی نتیجهی نداشتنش یه دیباگر ۴۰۰ یوروییه که با کابل خودش کار میکنه و با کابلهای استانداردتر خاموش میمونه. راهحل فعلاً سادهست: از کابلهای e-marked مثل کابلهای Thunderbolt یا 100 W استفاده نکنید، یا برید سراغ USB-A-to-C، یا اگه اهل ریسکید، دو تا مقاومت عوض کنید و گارانتی رو بفرستید پی کارش.
📺Source
📡openpcb
با این حال مهندسهای شرکت Segger وقتی داشتن J-Link BASE Compact با قیمت ۴۰۰یورویی رو بازطراحی میکردن، انگار از چگونگی کارکرد این استاندارد اطلاعی نداشتن به طور خجالتآوری همون اشتباهی رو تکرار کردن که مهندسها حین طراحی Raspberry Pi 4 در سال ۲۰۱۹ مرتکب شده بودن.
اون موقع کابلهای موسوم به e-marked باعث میشدن برد رزبری اصلاً روشن نشه! حالا هم تاریخ با دقت آزمایشگاهی تکرار شده! این دیباگر وقتی با یکی از همین کابلها وصل میشه، تصمیم میگیره هیچ کاری نکنه! نه برق بگیره، نه حتی یه LED از خودش نشون بده.
داستان از پینهای CC میاد، همون دو لاین که باید به هاست بگن «من یه دیوایسم، لطفاً بهم برق بده». طبق استاندارد، دستگاه باید روی هر پین CC یه مقاومت ۵.۱ کیلواهمی به زمین بذاره تا هاست بفهمه مجازه برق بده، ولی Segger ظاهراً تصمیم گرفته هر دو پین رو با هم قاطی کنه، دقیقاً همون اشتباه کلاسیکی که Pi 4 قبل از اصلاح طراحی مرتکب شده بود.
مشخص شده هر دو مقاومت CC به هم وصل شدن، احتمالاً برای صرفهجویی در یه دیود ESD بیزبان. طنز ماجرا اینجاست که طراحی فعلی احتمالاً از نسخهی قبلی با micro-USB کپی شده و یکی یادش رفته که حالا دیگه CC هم داریم. اصلاحش چند سنت بیشتر خرج نداره، ولی نتیجهی نداشتنش یه دیباگر ۴۰۰ یوروییه که با کابل خودش کار میکنه و با کابلهای استانداردتر خاموش میمونه. راهحل فعلاً سادهست: از کابلهای e-marked مثل کابلهای Thunderbolt یا 100 W استفاده نکنید، یا برید سراغ USB-A-to-C، یا اگه اهل ریسکید، دو تا مقاومت عوض کنید و گارانتی رو بفرستید پی کارش.
📺Source
📡openpcb
👍31❤8
کوالکام آردوینو رو خرید!
بله، همون آردوینویی که سالها الهامبخش رویاپردازان سختافزار بود و باهاش میشد از یه چراغ چشمکزن ساده تا رباتهای پیچیده ساخت، حالا رسماً رفته زیر پرچم Qualcomm. معاملهای که احتمالاً یکی از مهمترین نقطهعطفهای دنیای میکرها و دوستداران آماتور سختافزارها باشه!
قراره ترکیب جالبی ببینیم! قدرت پردازشی و هوش مصنوعی کوالکام در کنار سادگی و جامعهی باز آردوینو. نتیجه این میشه که کابران این پلتفرم میتونن ایدههاشون رو خیلی سریعتر از قبل به محصول واقعی تبدیل کنن.
اولین ثمرهی این خرید هم Arduino UNO Qـه. یه برد با دو پردازنده، یکی لینوکس Debian بالا میاره، اون یکی میکروکنترلر ریلتایمه. یعنی از یه طرف قدرت محاسباتی بالا داری، از اون طرف کنترل دقیق در زمان واقعی. قلب این برد پردازندهی Qualcomm Dragonwing QRB2210ـه، مخصوص اجرای هوش مصنوعی روی صدا و تصویره! این برد میتونه تو سیستمها و اتوماسیون هوشمند خونگی گرفته تا رباتیک آماتور کاربرد داشته باشه. هدف آردوینو اینه که UNO Q بشه ابزار پایهی هر توسعهدهندهای، از تازهکار تا حرفهای (هرچند شخصاً بعید میدونم!)
در کنارش، آردوینو یه ابزار تازه معرفی کرده به اسم Arduino App Lab. یه محیط توسعهی یکپارچه که کل تجربهی آردوینو رو از سیستمعاملهای ریلتایم تا لینوکس، پایتون و پایپلاینهای هوش مصنوعی تو یه فضا جمع میکنه. دیگه لازم نیست بین چند محیط مختلف سوییچ کنید. App Lab اوپنسورسه و هدفش اینه که مسیر تبدیل ایده به محصول نهایی، مخصوصاً تو پروژههای AI، سریعتر و تمیزتر بشه.
کوالکام با خریدهای اخیرش مثل Foundries.io و Edge Impulse داشت نشون میداد دنبال ساخت یه Edge Platform کامله! حالا با آردوینو اون پازل تقریباً تکمیل شده.
فابیو ویولانته، مدیرعامل آردوینو گفته این فقط شروعه و UNO Q قراره دروازهی ورود به یه دورهی جدید باشه! دورهای که توسعهی هوش مصنوعی راحتتر، مقیاسپذیرتر و در دسترستر میشه.
ماسیمو بانزی، اون یکی بنیانگذار آردوینو هم گفته:
«ما از اول دنبال سادگی و جامعه بودیم، حالا با کوالکام میخوایم همون فلسفه رو با ابزارهای هوش مصنوعی پیشرفته ادامه بدیم.»
خبر اصلی رو میتونید اینجا بخونید.
📡openpcb
بله، همون آردوینویی که سالها الهامبخش رویاپردازان سختافزار بود و باهاش میشد از یه چراغ چشمکزن ساده تا رباتهای پیچیده ساخت، حالا رسماً رفته زیر پرچم Qualcomm. معاملهای که احتمالاً یکی از مهمترین نقطهعطفهای دنیای میکرها و دوستداران آماتور سختافزارها باشه!
قراره ترکیب جالبی ببینیم! قدرت پردازشی و هوش مصنوعی کوالکام در کنار سادگی و جامعهی باز آردوینو. نتیجه این میشه که کابران این پلتفرم میتونن ایدههاشون رو خیلی سریعتر از قبل به محصول واقعی تبدیل کنن.
اولین ثمرهی این خرید هم Arduino UNO Qـه. یه برد با دو پردازنده، یکی لینوکس Debian بالا میاره، اون یکی میکروکنترلر ریلتایمه. یعنی از یه طرف قدرت محاسباتی بالا داری، از اون طرف کنترل دقیق در زمان واقعی. قلب این برد پردازندهی Qualcomm Dragonwing QRB2210ـه، مخصوص اجرای هوش مصنوعی روی صدا و تصویره! این برد میتونه تو سیستمها و اتوماسیون هوشمند خونگی گرفته تا رباتیک آماتور کاربرد داشته باشه. هدف آردوینو اینه که UNO Q بشه ابزار پایهی هر توسعهدهندهای، از تازهکار تا حرفهای (هرچند شخصاً بعید میدونم!)
در کنارش، آردوینو یه ابزار تازه معرفی کرده به اسم Arduino App Lab. یه محیط توسعهی یکپارچه که کل تجربهی آردوینو رو از سیستمعاملهای ریلتایم تا لینوکس، پایتون و پایپلاینهای هوش مصنوعی تو یه فضا جمع میکنه. دیگه لازم نیست بین چند محیط مختلف سوییچ کنید. App Lab اوپنسورسه و هدفش اینه که مسیر تبدیل ایده به محصول نهایی، مخصوصاً تو پروژههای AI، سریعتر و تمیزتر بشه.
کوالکام با خریدهای اخیرش مثل Foundries.io و Edge Impulse داشت نشون میداد دنبال ساخت یه Edge Platform کامله! حالا با آردوینو اون پازل تقریباً تکمیل شده.
فابیو ویولانته، مدیرعامل آردوینو گفته این فقط شروعه و UNO Q قراره دروازهی ورود به یه دورهی جدید باشه! دورهای که توسعهی هوش مصنوعی راحتتر، مقیاسپذیرتر و در دسترستر میشه.
ماسیمو بانزی، اون یکی بنیانگذار آردوینو هم گفته:
«ما از اول دنبال سادگی و جامعه بودیم، حالا با کوالکام میخوایم همون فلسفه رو با ابزارهای هوش مصنوعی پیشرفته ادامه بدیم.»
خبر اصلی رو میتونید اینجا بخونید.
📡openpcb
❤26🔥8👍6
اورنجپای کامپیوتر تکبردی جدیدی معرفی کرده که عملاً یه غول برای پردازشهای هوش مصنوعی روی لبهست. این برد رو OrangePi 6 Plus صدا کنیم و کلی امکانات جذاب داره، قلب این برد یه پردازنده ۱۲هستهای ۶۴بیتی با یه NPU اختصاصیه که مجموعاً تا ۴۵ تِرا عملیات بر ثانیه (TOPS) قدرت داره. یعنی برای اجرای مدلهای زبانی بزرگ، بینایی ماشین، چتبات یا حتی تولید تصویر با هوش مصنوعی، کاملاً آمادهست.
این برد با رم LPDDR5 تا ظرفیت ۶۴ گیگابایت عرضه میشه و دو تا اسلات M.2 Key-M برای SSDهای NVMe داره. عملاً یه مینیورکاستیشنه. دو پورت اترنت ۵ گیگابیتی، چند تا پورت USB3.0 و USB2.0، ورودی و خروجی تصویر از نوع HDMI، DP، Type-C و eDP، و حتی پورت MIPI برای دوربین عملا هر چیزی برای پروژههای صنعتی، سیستمهای هوشمند، یا حتی یه سرور خونگی جمع و جور نیازه، این برد داره.
پردازنده گرافیکی داخلیش هم از ویدئوهای ۸K و Ray Tracing پشتیبانی میکنه، که برای اپهای طراحی سهبعدی یا بازی هم کاملاً قابل استفادهست. از نظر نرمافزاری هم دبیان، اوبونتو، اندروید، ویندوز و ROS2 رو پشتیبانی میکنه و با مستندات کامل و ابزارهای متنباز.
تغذیهاش از طریق Type-C PD تا ۱۰۰ وات تأمین میشه و ابعادش حدود ۱۱۵ در ۱۰۰ میلیمتره، با وزن فقط ۱۳۲ گرم. یه فن PWM داره، دکمههای بوت و ریست، و حتی کانکتور باتری و RTC برای پروژههای خاص.
از نظر عملکرد، OrangePi 6 Plus عملاً وارد قلمرو بردهایی مثل NVIDIA Jetson Orin Nano شده و میتونه جدیترین رقیبش باشه مخصوصاً وقتی بحث اجرای مدلهای هوش مصنوعی بزرگ روی لبه (Edge AI) پیش میاد.
اطلاعات کامل این برد رو میتونید اینجا ببینید.
📡openpcb
این برد با رم LPDDR5 تا ظرفیت ۶۴ گیگابایت عرضه میشه و دو تا اسلات M.2 Key-M برای SSDهای NVMe داره. عملاً یه مینیورکاستیشنه. دو پورت اترنت ۵ گیگابیتی، چند تا پورت USB3.0 و USB2.0، ورودی و خروجی تصویر از نوع HDMI، DP، Type-C و eDP، و حتی پورت MIPI برای دوربین عملا هر چیزی برای پروژههای صنعتی، سیستمهای هوشمند، یا حتی یه سرور خونگی جمع و جور نیازه، این برد داره.
پردازنده گرافیکی داخلیش هم از ویدئوهای ۸K و Ray Tracing پشتیبانی میکنه، که برای اپهای طراحی سهبعدی یا بازی هم کاملاً قابل استفادهست. از نظر نرمافزاری هم دبیان، اوبونتو، اندروید، ویندوز و ROS2 رو پشتیبانی میکنه و با مستندات کامل و ابزارهای متنباز.
تغذیهاش از طریق Type-C PD تا ۱۰۰ وات تأمین میشه و ابعادش حدود ۱۱۵ در ۱۰۰ میلیمتره، با وزن فقط ۱۳۲ گرم. یه فن PWM داره، دکمههای بوت و ریست، و حتی کانکتور باتری و RTC برای پروژههای خاص.
از نظر عملکرد، OrangePi 6 Plus عملاً وارد قلمرو بردهایی مثل NVIDIA Jetson Orin Nano شده و میتونه جدیترین رقیبش باشه مخصوصاً وقتی بحث اجرای مدلهای هوش مصنوعی بزرگ روی لبه (Edge AI) پیش میاد.
اطلاعات کامل این برد رو میتونید اینجا ببینید.
📡openpcb
🔥21❤8👍2
فریمور آپدیت از نوع OTA وجود داشت، وقتی هنوز کسی نمیدونست OTA یعنی چی!
با اینکه در دهه ۸۰ میلادی خبری از وایفای، اینترنت یا سرور نبود، ولی رادیوهای FM تو هلند داشتن برای کامپیوترهای خونگی برنامه پخش کامپیوتری پخش میکردن، اونم فقط با صدای بوقی که تشکیل میشد از دو فرکانس ۱۲۰۰ و ۲۴۰۰ و مدولاسیونFSK روی رادیو FM که خودش هم یه بار مدوله شده بود!
اسم این ماجرا BASICODE بود! یه استاندارد عجیب و درخشان از اوایل دههی ۸۰ که میخواست همهی کامپیوترهای خُرد اون دوران رو با یه زبان واحد به هم برسونه.
ماجرا از یه مهندس رادیویی به اسم Hessel de Vries شروع شد، کسی که برای شبکهی ملی هلند (NOS) کار میکرد. اون فهمید که کامپیوترهای اون دوران از کومودور گرفته تا ZX Spectrum، BBC Micro و MSX هر کدوم زبان BASIC مختص به خودشون رو دارن و عملاً نمیتونن با هم حرف بزنن. نتیجه؟ BASICODE رو اختراع کرد، یا به قول خودشون «اسپرانتوی کامپیوترها». یه نسخهی حداقلی و استاندارد از BASIC که روی هر دستگاهی اجرا میشد، فقط کافی بود یه «بیسکودر» مخصوص اون دستگاه رو لود میکردی.
بیسکودر یه جور محیط اجرایی بود، یه بوتلودر دستساز که توش تابعهای مشترک برای ورودی/خروجی، نمایش متن، ذخیرهسازی روی کاست و بعدتر صدا و گرافیک ساده تعریف شده بود! برنامهها از خط ۱۰۰۰ به بعد شروع میشدن و بقیهی خطوط پایینتر مخصوص خود بیسکودر بودن. برای فراخوانی توابعش هم فقط یه GOSUB میزدی، درست مثل یه API ابتدایی برای ۸ بیتیها.
حالا تصور کنید رادیو برنامه رو به صورت صدا پخش میکرد، تو ضبط میکردی روی نوار کاست، بعد اون رو به کامپیوترت میدادی تا کدها رو از توی صدا بخونه و اجرا کنه. به معنای واقعی کلمه «OTA»! فقط نه با پکت و فرکانس ۲.۴ گیگاهرتز، بلکه با بوق ۱۲۰۰ و ۲۴۰۰ هرتز! سرعت انتقالش؟ حدود ۶ کیلوبایت در دقیقه. بله، دقیقه. ولی برای اون دوران، همین هم مثل جادو بود.
در نسخهی BASICODE 2 سال ۱۹۸۳، کارکردها گستردهتر شد مدیریت داده، ورودی از نوار، و یه کتابخونهی کامل از حدود ۵۰ تابع مشترک. نسخهی سوم (BASICODE 3) در ۱۹۸۶ حتی گرافیک تکرنگ و صدا هم اضافه کرد، و نسخهی 3C در ۱۹۹۱ رنگی هم شد. برنامهها از رادیو در سراسر آلمان شرقی و هلند پخش میشدن، حتی روی صفحهگِرامافون هم منتشر میکردن تا مردم بتونن کد رو از صدا بخونن!
اما مثل همهی پروژههای قهرمانانهی دههی ۸۰، پایانش با ظهور ۱۶ و ۳۲ بیتیها رقم خورد. وقتی آمیگا، آتاری ST و PCها با سیستمعاملهای گرافیکی اومدن، BASICODE دیگه زیادی ساده به نظر میرسید. نسخهی چهارمی هم برنامهریزی شده بود، ولی هیچوقت ساخته نشد.
با این حال، BASICODE هنوز یه میراث زندهست. خیلی از مفاهیمی که امروز تو جاوا، PDF یا حتی پلتفرمهای کراسپلتفرم مدرن میبینیم، ریشه در همون ایده داره: یه استاندارد زبانی مشترک + یه مفسر مخصوص هر سیستم. همون کاری که JVM برای جاوا میکنه، بیسکودر برای کامپیوترهای ۸ بیتی میکرد.
و شاید قشنگترین بخش ماجرا این بود که کل سیستم، فقط با یه رادیو، یه نوار کاست، و چند خط BASIC کار میکرد.
جالب اینه که هنوزم هستن کسایی که به عنوان سرگرمی از این شیوه و زبان و ... استفاده میکنند.
تو این لینک میتونید در موردش بخونید.
📡openpcb
با اینکه در دهه ۸۰ میلادی خبری از وایفای، اینترنت یا سرور نبود، ولی رادیوهای FM تو هلند داشتن برای کامپیوترهای خونگی برنامه پخش کامپیوتری پخش میکردن، اونم فقط با صدای بوقی که تشکیل میشد از دو فرکانس ۱۲۰۰ و ۲۴۰۰ و مدولاسیونFSK روی رادیو FM که خودش هم یه بار مدوله شده بود!
اسم این ماجرا BASICODE بود! یه استاندارد عجیب و درخشان از اوایل دههی ۸۰ که میخواست همهی کامپیوترهای خُرد اون دوران رو با یه زبان واحد به هم برسونه.
ماجرا از یه مهندس رادیویی به اسم Hessel de Vries شروع شد، کسی که برای شبکهی ملی هلند (NOS) کار میکرد. اون فهمید که کامپیوترهای اون دوران از کومودور گرفته تا ZX Spectrum، BBC Micro و MSX هر کدوم زبان BASIC مختص به خودشون رو دارن و عملاً نمیتونن با هم حرف بزنن. نتیجه؟ BASICODE رو اختراع کرد، یا به قول خودشون «اسپرانتوی کامپیوترها». یه نسخهی حداقلی و استاندارد از BASIC که روی هر دستگاهی اجرا میشد، فقط کافی بود یه «بیسکودر» مخصوص اون دستگاه رو لود میکردی.
بیسکودر یه جور محیط اجرایی بود، یه بوتلودر دستساز که توش تابعهای مشترک برای ورودی/خروجی، نمایش متن، ذخیرهسازی روی کاست و بعدتر صدا و گرافیک ساده تعریف شده بود! برنامهها از خط ۱۰۰۰ به بعد شروع میشدن و بقیهی خطوط پایینتر مخصوص خود بیسکودر بودن. برای فراخوانی توابعش هم فقط یه GOSUB میزدی، درست مثل یه API ابتدایی برای ۸ بیتیها.
حالا تصور کنید رادیو برنامه رو به صورت صدا پخش میکرد، تو ضبط میکردی روی نوار کاست، بعد اون رو به کامپیوترت میدادی تا کدها رو از توی صدا بخونه و اجرا کنه. به معنای واقعی کلمه «OTA»! فقط نه با پکت و فرکانس ۲.۴ گیگاهرتز، بلکه با بوق ۱۲۰۰ و ۲۴۰۰ هرتز! سرعت انتقالش؟ حدود ۶ کیلوبایت در دقیقه. بله، دقیقه. ولی برای اون دوران، همین هم مثل جادو بود.
در نسخهی BASICODE 2 سال ۱۹۸۳، کارکردها گستردهتر شد مدیریت داده، ورودی از نوار، و یه کتابخونهی کامل از حدود ۵۰ تابع مشترک. نسخهی سوم (BASICODE 3) در ۱۹۸۶ حتی گرافیک تکرنگ و صدا هم اضافه کرد، و نسخهی 3C در ۱۹۹۱ رنگی هم شد. برنامهها از رادیو در سراسر آلمان شرقی و هلند پخش میشدن، حتی روی صفحهگِرامافون هم منتشر میکردن تا مردم بتونن کد رو از صدا بخونن!
اما مثل همهی پروژههای قهرمانانهی دههی ۸۰، پایانش با ظهور ۱۶ و ۳۲ بیتیها رقم خورد. وقتی آمیگا، آتاری ST و PCها با سیستمعاملهای گرافیکی اومدن، BASICODE دیگه زیادی ساده به نظر میرسید. نسخهی چهارمی هم برنامهریزی شده بود، ولی هیچوقت ساخته نشد.
با این حال، BASICODE هنوز یه میراث زندهست. خیلی از مفاهیمی که امروز تو جاوا، PDF یا حتی پلتفرمهای کراسپلتفرم مدرن میبینیم، ریشه در همون ایده داره: یه استاندارد زبانی مشترک + یه مفسر مخصوص هر سیستم. همون کاری که JVM برای جاوا میکنه، بیسکودر برای کامپیوترهای ۸ بیتی میکرد.
و شاید قشنگترین بخش ماجرا این بود که کل سیستم، فقط با یه رادیو، یه نوار کاست، و چند خط BASIC کار میکرد.
جالب اینه که هنوزم هستن کسایی که به عنوان سرگرمی از این شیوه و زبان و ... استفاده میکنند.
تو این لینک میتونید در موردش بخونید.
📡openpcb
10🔥31❤9👌2
This media is not supported in your browser
VIEW IN TELEGRAM
اگه یادتون باشه قبلاً تو این پست در مورد یکی از پروژههای خاص استیو نوشته بودم! که با ترکیب یه برد رزبریپیکو و یه دانگل hdmi یک ابزار DAQ با نرخ انتقال داده 75 مگابایت بر ثانیه ساخته بود!
استیو یبار دیگه با پروژه جذاب Pico-100BASE-TX برگشته! یه فرستندهی اترنت سریع ۱۰۰ مگابیتی که کامل تو نرمافزار روی میکروکنترلر یک دلاری 2040 یا RP2350 بدون هیچ سختافزار اضافه دیگهای اجرا میشه.
مارکگراف با ترکیب PIO و DMA تونسته کدینگهای MLT-3، 4B5B و scrambling رو با نرخ ۱۲۵ MHz پیاده کنه. نتیجهاش یه لینک واقعی ۱۰۰ مگابیتی شده که حدود ۱۱ مگابایت بر ثانیه میتونه از طریق UDP داده بفرسته — مثلاً استریم زندهی صدا یا دادهی ADC.
جزییات کامل این پروژه رو اینجا میتونید بررسی کنید.
📡openpcb
استیو یبار دیگه با پروژه جذاب Pico-100BASE-TX برگشته! یه فرستندهی اترنت سریع ۱۰۰ مگابیتی که کامل تو نرمافزار روی میکروکنترلر یک دلاری 2040 یا RP2350 بدون هیچ سختافزار اضافه دیگهای اجرا میشه.
مارکگراف با ترکیب PIO و DMA تونسته کدینگهای MLT-3، 4B5B و scrambling رو با نرخ ۱۲۵ MHz پیاده کنه. نتیجهاش یه لینک واقعی ۱۰۰ مگابیتی شده که حدود ۱۱ مگابایت بر ثانیه میتونه از طریق UDP داده بفرسته — مثلاً استریم زندهی صدا یا دادهی ADC.
جزییات کامل این پروژه رو اینجا میتونید بررسی کنید.
📡openpcb
🔥27❤5
به نظر تو ژاپن برای «ساخت قطعات الکترونیکی دقیق و فوقکممصرف» جایزه دارن😬
چیپ NC4650 از Nisshinbo که یه رگولاتور بوست فوق کممصرفه، تو جایزهی «سوپر قطعهسازی ۲۰۲۵» (جایزهی قطعات برتر مونوزوکوری ژاپن🤷🏻♂️) تو بخش «قطعات الکتریکی-الکترونیکی» برنده شده.
جریان حالت استندبای این رگولاتور ۷۰ نانوآمپره.
مراسم اهدای جایزه هم دسامبر برگزار میشه انگار!
منبع:
https://x.com/NisshinboMicro/status/1986249092587266106
📡openpcb
چیپ NC4650 از Nisshinbo که یه رگولاتور بوست فوق کممصرفه، تو جایزهی «سوپر قطعهسازی ۲۰۲۵» (جایزهی قطعات برتر مونوزوکوری ژاپن🤷🏻♂️) تو بخش «قطعات الکتریکی-الکترونیکی» برنده شده.
جریان حالت استندبای این رگولاتور ۷۰ نانوآمپره.
مراسم اهدای جایزه هم دسامبر برگزار میشه انگار!
منبع:
https://x.com/NisshinboMicro/status/1986249092587266106
📡openpcb
❤27🔥15🏆2
اگه چند سال پیش میگفتن یه روزی میشه با زیر ۲۰۰ دلار چیپ اختصاصی ASIC خودت رو تولید کنی! جدی نمیگرفتم. ولی خب الان به لطف اکوسیستم TinyTapeout و سرویسهای شاتل ارزون که فبها باز کردن، دیگه واقعاً ممکنه.
الان با حدود ۱۸۵ یورو میتونی یه طرح ساده دیجیتال بسازی، Tapeout بدی، و نسخه واقعی چیپ رو دستت بگیری. نه شبیهسازی، نه FPGA، خود چیپ سیلیکونی رو!
این یعنی دروازه طراحی چیپ از دست «شرکتهای میلیارد دلاری» دراومده و رسیده به دست میکرو تیمها، دانشجوها، DIYها و دیوونههای کنجکاو!
کمکم دنیای الکترونیک هم مثل نرمافزار داره دموکراتیک میشه و از این به بعد «من خودم چیپش رو ساختم» دیگه ادعای عجیبغریبی نیست، روزمرهست!
لیست پروژههایی که تا الان ثبت شدن هم اینجاست، کارای عجیبغریب قشنگ زیاد هست:
https://app.tinytapeout.com/shuttles/ttsky25b
📡openpcb
الان با حدود ۱۸۵ یورو میتونی یه طرح ساده دیجیتال بسازی، Tapeout بدی، و نسخه واقعی چیپ رو دستت بگیری. نه شبیهسازی، نه FPGA، خود چیپ سیلیکونی رو!
این یعنی دروازه طراحی چیپ از دست «شرکتهای میلیارد دلاری» دراومده و رسیده به دست میکرو تیمها، دانشجوها، DIYها و دیوونههای کنجکاو!
کمکم دنیای الکترونیک هم مثل نرمافزار داره دموکراتیک میشه و از این به بعد «من خودم چیپش رو ساختم» دیگه ادعای عجیبغریبی نیست، روزمرهست!
لیست پروژههایی که تا الان ثبت شدن هم اینجاست، کارای عجیبغریب قشنگ زیاد هست:
https://app.tinytapeout.com/shuttles/ttsky25b
📡openpcb
🔥35❤13👍6
با توجه به پست قبلی بد نیست یه مروری کنیم ببینیم چی شد که ساخت یه چیپ اختصاصی حتی برای یک نوجوون ۱۶ساله با هزینه ۱۸۰ دلار ممکن شد!
ماجرا برمیگرده به چند سال پیش، وقتی ایدهی «ارزونکردن Tapeout» تازه جدی شد. ریشهی کار از همکاری Google و فب SkyWater شروع شد. گوگل اومد با اسکایواتر روی یه ایده تاریخی دست گذاشت: فرآیند ساخت تراشهی ۱۳۰ نانومتری رو از حالت محرمانه درآورد و بهشکل یک Open PDK عمومی منتشر کرد. یعنی دیتایی که قبلاً فقط شرکتهای میلیارددلاری بهش دسترسی داشتن، یکباره شد عمومی. این لحظه واقعاً نقطهی عطف بود.
اینطوری راه برای ابزارهای طراحی متنباز باز شد. ابزارهایی مثل OpenLane و Yosys و Magic که قبلاً فقط تو حاشیه بودن، یهدفعه تبدیل شدن به گزینههای واقعی برای طراحی ASIC بدون لایسنسهای چندمیلیوندلاری! یعنی از این لحظه طراحی چیپ از «باشگاه اختصاصی چند شرکت غول» تبدیل شد به چیزی که عملاً روی لپتاپ خونه هم میشد انجامش داد.
منفعتش برای اسکایواتر چی بود؟ خب اسکایواتر یه فب ۱۳۰نانومتری داشت که دیگه برای صنعت موبایل و CPUهای جدید جذاب نبود، اما برای چیپهای دیجیتالی ساده، IoT، مدارهای ترکیبی و هزار مدل کاربرد ساده، هنوز کاملاً بهدردبخور بود. اونها به جای خاک خوردن خط تولید، گفتن: «خب چرا تبدیلش نکنیم به یه پلتفرم Tapeout ارزون؟» اینجاست که ایدهی Multi Project Wafer جرقه خورد: چند نفر طراحیهاشون رو با هم میفرستن و هزینهی یه ویفر بین همه تقسیم میشه. خط قدیمی دوباره فعال شد، ولی اینبار نه برای تولید انبوه، بلکه بهعنوان ماشین Tapeout کمهزینه. و در کنارش، مشتریهای آینده هم تربیت شدن!
همینجا بود که یه سری آدم خوره و خوشفکر دور هم جمع شدن که بگن طراحی ASIC باید «برای همه» قابل انجام باشه. از دل همین فضا پروژهی TinyTapeout بیرون اومد. Matt Venn شد چهرهی جلوی صحنه! آدمی که از روز اول دنبال این بود که ساخت چیپ مثل پروژههای نرمافزاری بشه: متنباز، قابل تجربه، و بدون مانعهای سنگین مالی. گوگل هم ظرفیت شاتل و حمایت مالی گذاشت که دانشگاهیها، هکرها و آدمهای کنجکاو واقعاً بتونن Tapeout کنن، نه فقط حرفش رو بزنن.
این حمایت گوگل هم اصلاً از روی خیرخواهی نبود! بلکه دقیق و بلندمدت بود. گوگل دنبال آیندهایه که سختافزار هم مثل نرمافزار «قابل اتوماسیون و تولید بهوسیله ابزارها» باشه. برای رسیدن به «AI-Silicon Design» باید جامعهی طراح وجود داشته باشه. این پروژه عملاً داشت نسل بعدی مهندسهای سیلیکون رو میساخت.
در نهایت هم هیچ آسیبی به «رازهای بزرگ» وارد نشد. نه فرایند ۵ نانومتر باز شد، نه ۷ نانومتر. چیزی که باز شد، فرآیندی بود که از نظر اقتصادی از اوجش گذشته بود و حالا ارزش جدید پیدا کرد. در عوض چی بهدست اومد؟ نیروی انسانی بیشتر، اکوسیستم متنباز قویتر، بازگشت جریان درآمد به فبی که عملاً از چرخه خارج شده بود، و نفوذ استراتژیک در آیندهی طراحی تراشه.
در اصل جایی که بقیه فقط «یه چیپ ۱۳۰ نانومتری» میدیدن، گوگل و اسکایواتر داشتن نسل طراحهای فردا رو میساختن و راه رو برای «سختافزار مثل نرمافزار» هموار میکردن.
📡openpcb
ماجرا برمیگرده به چند سال پیش، وقتی ایدهی «ارزونکردن Tapeout» تازه جدی شد. ریشهی کار از همکاری Google و فب SkyWater شروع شد. گوگل اومد با اسکایواتر روی یه ایده تاریخی دست گذاشت: فرآیند ساخت تراشهی ۱۳۰ نانومتری رو از حالت محرمانه درآورد و بهشکل یک Open PDK عمومی منتشر کرد. یعنی دیتایی که قبلاً فقط شرکتهای میلیارددلاری بهش دسترسی داشتن، یکباره شد عمومی. این لحظه واقعاً نقطهی عطف بود.
اینطوری راه برای ابزارهای طراحی متنباز باز شد. ابزارهایی مثل OpenLane و Yosys و Magic که قبلاً فقط تو حاشیه بودن، یهدفعه تبدیل شدن به گزینههای واقعی برای طراحی ASIC بدون لایسنسهای چندمیلیوندلاری! یعنی از این لحظه طراحی چیپ از «باشگاه اختصاصی چند شرکت غول» تبدیل شد به چیزی که عملاً روی لپتاپ خونه هم میشد انجامش داد.
منفعتش برای اسکایواتر چی بود؟ خب اسکایواتر یه فب ۱۳۰نانومتری داشت که دیگه برای صنعت موبایل و CPUهای جدید جذاب نبود، اما برای چیپهای دیجیتالی ساده، IoT، مدارهای ترکیبی و هزار مدل کاربرد ساده، هنوز کاملاً بهدردبخور بود. اونها به جای خاک خوردن خط تولید، گفتن: «خب چرا تبدیلش نکنیم به یه پلتفرم Tapeout ارزون؟» اینجاست که ایدهی Multi Project Wafer جرقه خورد: چند نفر طراحیهاشون رو با هم میفرستن و هزینهی یه ویفر بین همه تقسیم میشه. خط قدیمی دوباره فعال شد، ولی اینبار نه برای تولید انبوه، بلکه بهعنوان ماشین Tapeout کمهزینه. و در کنارش، مشتریهای آینده هم تربیت شدن!
همینجا بود که یه سری آدم خوره و خوشفکر دور هم جمع شدن که بگن طراحی ASIC باید «برای همه» قابل انجام باشه. از دل همین فضا پروژهی TinyTapeout بیرون اومد. Matt Venn شد چهرهی جلوی صحنه! آدمی که از روز اول دنبال این بود که ساخت چیپ مثل پروژههای نرمافزاری بشه: متنباز، قابل تجربه، و بدون مانعهای سنگین مالی. گوگل هم ظرفیت شاتل و حمایت مالی گذاشت که دانشگاهیها، هکرها و آدمهای کنجکاو واقعاً بتونن Tapeout کنن، نه فقط حرفش رو بزنن.
این حمایت گوگل هم اصلاً از روی خیرخواهی نبود! بلکه دقیق و بلندمدت بود. گوگل دنبال آیندهایه که سختافزار هم مثل نرمافزار «قابل اتوماسیون و تولید بهوسیله ابزارها» باشه. برای رسیدن به «AI-Silicon Design» باید جامعهی طراح وجود داشته باشه. این پروژه عملاً داشت نسل بعدی مهندسهای سیلیکون رو میساخت.
در نهایت هم هیچ آسیبی به «رازهای بزرگ» وارد نشد. نه فرایند ۵ نانومتر باز شد، نه ۷ نانومتر. چیزی که باز شد، فرآیندی بود که از نظر اقتصادی از اوجش گذشته بود و حالا ارزش جدید پیدا کرد. در عوض چی بهدست اومد؟ نیروی انسانی بیشتر، اکوسیستم متنباز قویتر، بازگشت جریان درآمد به فبی که عملاً از چرخه خارج شده بود، و نفوذ استراتژیک در آیندهی طراحی تراشه.
در اصل جایی که بقیه فقط «یه چیپ ۱۳۰ نانومتری» میدیدن، گوگل و اسکایواتر داشتن نسل طراحهای فردا رو میساختن و راه رو برای «سختافزار مثل نرمافزار» هموار میکردن.
📡openpcb
👍30❤14🔥7
در ادامه دو پست قبلی میخوام توضیح بدم کل روند Tapeout کردن چطور کار میکنه و چطور میتونید چیپ ASIC خودتون رو با زیر ۲۰۰ دلار بسازید.
از اونجایی که TinyTapeout کل زنجیرهی «طراحی > سنتز > P&R > تولید» رو تبدیل کرده به یک خط اتوماتیک و دمدستی. اول شما مدار دیجیتالتون رو طراحی و تست میکنید. این مرحله کاملاً رایگانه. میتونید از Wokwi استفاده کنید که بهشکل شماتیک و منطقی مدار رو میسازید و شبیه سازی میکنید!
اگر هم از اونایی هستید که با HDL راحتید، مستقیم Verilog مینویسید و تستبنچ میزنید. نکتهی کلیدی اینه که TinyTapeout یک Interface ثابت بین طراحی شما و پدهای چیپ داره, یعنی شما فقط «منطق داخلی» رو میسازید، بخش «پدها، باندینگ، IO آپشنها, کلاک و ریست» استاندارد شده و همین باعث میشه طراحی خیلی قابل اعتماد و قابل Tapeout باشه.
وقتی از صحت مدار مطمئن شدید، پروژهتون رو روی GitHub میذارید و فقط یک فایل info.yaml رو پر میکنید. از اینجا به بعد، GitHub Actions وارد بازی میشه و پروسه سنتز منطق با Yosys، Place & Route با OpenLane، و در نهایت تولید فایل GDSII. GDS همون نقشهی واقعی سیمکشی لایههای فلز و ترانزیستورهای پلی/دیفیوژن هست اتفاق میافته و مستقیم میره فب. این مرحله اتوماتیکه یعنی شما دقیقاً دارید از همون پایپلاین ابزارهای اپنسورس صنعتی استفاده میکنید! بدون لایسنسهای میلیون دلاری Cadence و Synopsys.
هزینه فقط وقتی پرداخت میشه که تصمیم میگیرید طرحتون رو روی شاتل Tapeout واقعی بفرستید. همونطور که قبلا گفتم TinyTapeout از Multi-Project Wafer استفاده میکنه یعنی چند ده طرح با هم روی یک ویفر ساخته میشن و هزینه بین همه تقسیم میشه. همین باعث میشه قیمت Tapeout بیاد روی حدود ۱۸۵ یورو.
وقتی چیپ تولید شد، براتون روی یک هدر برد دمو مونتاژ شده ارسال میشه. این برد شامل IOهای استاندارد، 7-Segment، هدرهای توسعه، و یک Raspberry Pi Pico بهعنوان «درایور + محیط تست» هست. با MicroPython یا حتی UART ساده میتونید ورودی بدید، خروجی بخونید، و رفتار چیپتون رو ببینید و وریفای کنید. این همون لحظهایه که پروژه از یک شبیهسازی دیجیتال تبدیل میشه به یک چیپ واقعی روی میز! اون لحظه، لحظهی «این دیگه شوخی نیست، این دیگه واقعاً چیپه» هستش.
اگر کسی بخواد عمیقتر بره سمت طراحی جدیتر، منابع درجهیک و کاملاً رایگانی در دسترس هست که تا همین چند سال پیش عملاً غیرممکن بود بهشون دسترسی داشته باشید. مثلاً کورس طراحی مدار آنالوگ مبتنی بر جریان باز و معماری آزاد از Prof. Pretl در JKU که طراحی آنالوگ رو از سطح Device تا Tapeout آموزش میده، یا برنامهی SSCS-Chipathon تحت هدایت Prof. Mourmann که عملاً یک بوتکمپ Tapeout محور برای عمومه!
از اون طرف، گروه Prof. Frank Gürkaynak در ETH که یکی از فعالترین تیمها در RISC-V و طراحی بازه، پلتفرمها و هستههایی مثل croc رو منتشر کرده که بسیار جذابه. در نهایت اگر دنبال جامعهای هستید که بیشتر با این مبحث آشنا بشید، جامعهی طراحان مدار باز در اینجا رو دنبال کنید.
و نکتهی آخر و البته مهم:
به لطف یکی از خوانندههای کانال، پنج کوپن TinyTapeout برای شاتلهای بعدی موجوده. یعنی اگر طرحتون به مرحلهای رسیده که تست سیمولیشن و تست منطقی پشتسر گذاشته و واقعاً قصد Tapeout دارید، پیغام بدید تا یکی از کوپنها در اختیارتون قرار بگیره.
📡openpcb
از اونجایی که TinyTapeout کل زنجیرهی «طراحی > سنتز > P&R > تولید» رو تبدیل کرده به یک خط اتوماتیک و دمدستی. اول شما مدار دیجیتالتون رو طراحی و تست میکنید. این مرحله کاملاً رایگانه. میتونید از Wokwi استفاده کنید که بهشکل شماتیک و منطقی مدار رو میسازید و شبیه سازی میکنید!
اگر هم از اونایی هستید که با HDL راحتید، مستقیم Verilog مینویسید و تستبنچ میزنید. نکتهی کلیدی اینه که TinyTapeout یک Interface ثابت بین طراحی شما و پدهای چیپ داره, یعنی شما فقط «منطق داخلی» رو میسازید، بخش «پدها، باندینگ، IO آپشنها, کلاک و ریست» استاندارد شده و همین باعث میشه طراحی خیلی قابل اعتماد و قابل Tapeout باشه.
وقتی از صحت مدار مطمئن شدید، پروژهتون رو روی GitHub میذارید و فقط یک فایل info.yaml رو پر میکنید. از اینجا به بعد، GitHub Actions وارد بازی میشه و پروسه سنتز منطق با Yosys، Place & Route با OpenLane، و در نهایت تولید فایل GDSII. GDS همون نقشهی واقعی سیمکشی لایههای فلز و ترانزیستورهای پلی/دیفیوژن هست اتفاق میافته و مستقیم میره فب. این مرحله اتوماتیکه یعنی شما دقیقاً دارید از همون پایپلاین ابزارهای اپنسورس صنعتی استفاده میکنید! بدون لایسنسهای میلیون دلاری Cadence و Synopsys.
هزینه فقط وقتی پرداخت میشه که تصمیم میگیرید طرحتون رو روی شاتل Tapeout واقعی بفرستید. همونطور که قبلا گفتم TinyTapeout از Multi-Project Wafer استفاده میکنه یعنی چند ده طرح با هم روی یک ویفر ساخته میشن و هزینه بین همه تقسیم میشه. همین باعث میشه قیمت Tapeout بیاد روی حدود ۱۸۵ یورو.
وقتی چیپ تولید شد، براتون روی یک هدر برد دمو مونتاژ شده ارسال میشه. این برد شامل IOهای استاندارد، 7-Segment، هدرهای توسعه، و یک Raspberry Pi Pico بهعنوان «درایور + محیط تست» هست. با MicroPython یا حتی UART ساده میتونید ورودی بدید، خروجی بخونید، و رفتار چیپتون رو ببینید و وریفای کنید. این همون لحظهایه که پروژه از یک شبیهسازی دیجیتال تبدیل میشه به یک چیپ واقعی روی میز! اون لحظه، لحظهی «این دیگه شوخی نیست، این دیگه واقعاً چیپه» هستش.
اگر کسی بخواد عمیقتر بره سمت طراحی جدیتر، منابع درجهیک و کاملاً رایگانی در دسترس هست که تا همین چند سال پیش عملاً غیرممکن بود بهشون دسترسی داشته باشید. مثلاً کورس طراحی مدار آنالوگ مبتنی بر جریان باز و معماری آزاد از Prof. Pretl در JKU که طراحی آنالوگ رو از سطح Device تا Tapeout آموزش میده، یا برنامهی SSCS-Chipathon تحت هدایت Prof. Mourmann که عملاً یک بوتکمپ Tapeout محور برای عمومه!
از اون طرف، گروه Prof. Frank Gürkaynak در ETH که یکی از فعالترین تیمها در RISC-V و طراحی بازه، پلتفرمها و هستههایی مثل croc رو منتشر کرده که بسیار جذابه. در نهایت اگر دنبال جامعهای هستید که بیشتر با این مبحث آشنا بشید، جامعهی طراحان مدار باز در اینجا رو دنبال کنید.
و نکتهی آخر و البته مهم:
به لطف یکی از خوانندههای کانال، پنج کوپن TinyTapeout برای شاتلهای بعدی موجوده. یعنی اگر طرحتون به مرحلهای رسیده که تست سیمولیشن و تست منطقی پشتسر گذاشته و واقعاً قصد Tapeout دارید، پیغام بدید تا یکی از کوپنها در اختیارتون قرار بگیره.
📡openpcb
1❤33👍11😍3
شاید براتون جالب باشه بدونید اولین میکروپروسسور دنیا یعنی Intel 4004 کاملا با دست طراحی و ساخته شد.
اون موقع هنوز خبری از CAD و نرمافزارهای مدرن امروزی نبود. Bob Noyce و تیمش از روشی به اسم Rubylith استفاده میکردن! یه ورق قرمز که ماسک لیتوگرافی رو روی اون به صورت دستی میبریدن.
یعنی مسیر ترانزیستورها، گیتها، لایهها… همش واقعاً با کاتر و خطکش. فکر کنید مدار چند هزار ترانزیستوری رو مثل معرقکاری تیکهتیکه کنار هم بذاری. نه Undo، نه Grid، نه DRC/ ERC… فقط چشم، دست، دقت و صبر.
همین که اینا تونستن در اون شرایط اولین میکروپروسسور تاریخ رو بسازن و جواب بده، خودش یه شاهکار واقعیه. گاهی تکنولوژی امروز رو میبینیم و فراموش میکنیم که ریشهاش رو یه مشت آدم با دست خالی شروع کردن. این بهنظرم واقعاً خفنه.
📡openpcb
اون موقع هنوز خبری از CAD و نرمافزارهای مدرن امروزی نبود. Bob Noyce و تیمش از روشی به اسم Rubylith استفاده میکردن! یه ورق قرمز که ماسک لیتوگرافی رو روی اون به صورت دستی میبریدن.
یعنی مسیر ترانزیستورها، گیتها، لایهها… همش واقعاً با کاتر و خطکش. فکر کنید مدار چند هزار ترانزیستوری رو مثل معرقکاری تیکهتیکه کنار هم بذاری. نه Undo، نه Grid، نه DRC/ ERC… فقط چشم، دست، دقت و صبر.
همین که اینا تونستن در اون شرایط اولین میکروپروسسور تاریخ رو بسازن و جواب بده، خودش یه شاهکار واقعیه. گاهی تکنولوژی امروز رو میبینیم و فراموش میکنیم که ریشهاش رو یه مشت آدم با دست خالی شروع کردن. این بهنظرم واقعاً خفنه.
📡openpcb
1❤83🔥19😍4
طبق گفته FFmpeg پچ جدید باعث شده یه تابع مهم تو پردازش ویدیو ۳.۴۶ برابر سریعتر بشه. ماجرا اینه که یکی از کانتریبیوترها به اسم mkver اومده تابع add_8x8basis_sse3 رو که قبلاً با C نوشته شده بود رو کاملا با اسمبلی x86 بازنویسی کرده و خروجی هم شده همین جهش سرعت جدی.
دلیلش اینه که کامپایلرهای GCC و Clang وقتی با فلگ O3 کد رو کامپایل میکنند، معمولاً یه سری حلقه هایی که اصلاً قرار نیست زیاد اجرا بشن رو باز میکنن و کد رو حجیمتر میکنن. اینجا هم اون فانکشن رو از ۱۷۶ بایت رسونده به ۱۴۰۶ بایت! تو این مدل پردازشها، چون دستورهای خاص و عجیبغریبی مثل pmulhrsw وجود داره، کامپایلر همیشه انتخابهای درستی نمیکنه. دولوپرهای FFmpeg هم میگن: «باشه، خودمون درستش میکنیم.» نکته مهم اینه که لزوماً کد C مشکل نداره! این رفتار کامپایلر تو مرحله بهینهسازیه که گاهی خودش دردسر درست میکنه.
این اولینبار نیست FFmpeg از اسمبلی برای گرفتن نهایت قدرت سختافزار استفاده میکنه واین همون بحث معروف چند وقت پیشه که چرا پلیر dav1d که چندتا آدم معمولی ساختنش، بعضی جاها از libgav1 گوگل بهتره. جواب همون همیشگیه: وقتی دقیق میدونی چی میخوای و خودت دستی کد اسمبلی رو مینویسی، خروجی معمولاً از نسخهی تولیدشده توسط کامپایلر بهتره.
یه سوال هم که همیشه مطرح میشه اینه که «چرا این مشکلات رو به سازندههای کامپایلر گزارش نمیکنن؟» گزارش میدن، ولی تا نسخه جدید کامپایلر بیاد مدتها طول میکشه. یعنی عملاً بهترین کار اینه که خودشون همزمان دست به آچار باشن و مشکل رو دور بزنن.
برای همین پروژههایی مثل FFmpeg اینقدر ارزشمندن. از یه طرف همیشه تو بهینهترین حالت ممکنه، از یه طرف دیگه همین مواردی که پیدا میکنن عملاً به کل کامیونیتی C و کامپایلرها سود میرسونه و باعث میشه ابزارهایی که همه استفاده میکنن، کمکم بهتر بشن.
📺Source
📡openpcb
دلیلش اینه که کامپایلرهای GCC و Clang وقتی با فلگ O3 کد رو کامپایل میکنند، معمولاً یه سری حلقه هایی که اصلاً قرار نیست زیاد اجرا بشن رو باز میکنن و کد رو حجیمتر میکنن. اینجا هم اون فانکشن رو از ۱۷۶ بایت رسونده به ۱۴۰۶ بایت! تو این مدل پردازشها، چون دستورهای خاص و عجیبغریبی مثل pmulhrsw وجود داره، کامپایلر همیشه انتخابهای درستی نمیکنه. دولوپرهای FFmpeg هم میگن: «باشه، خودمون درستش میکنیم.» نکته مهم اینه که لزوماً کد C مشکل نداره! این رفتار کامپایلر تو مرحله بهینهسازیه که گاهی خودش دردسر درست میکنه.
این اولینبار نیست FFmpeg از اسمبلی برای گرفتن نهایت قدرت سختافزار استفاده میکنه واین همون بحث معروف چند وقت پیشه که چرا پلیر dav1d که چندتا آدم معمولی ساختنش، بعضی جاها از libgav1 گوگل بهتره. جواب همون همیشگیه: وقتی دقیق میدونی چی میخوای و خودت دستی کد اسمبلی رو مینویسی، خروجی معمولاً از نسخهی تولیدشده توسط کامپایلر بهتره.
یه سوال هم که همیشه مطرح میشه اینه که «چرا این مشکلات رو به سازندههای کامپایلر گزارش نمیکنن؟» گزارش میدن، ولی تا نسخه جدید کامپایلر بیاد مدتها طول میکشه. یعنی عملاً بهترین کار اینه که خودشون همزمان دست به آچار باشن و مشکل رو دور بزنن.
برای همین پروژههایی مثل FFmpeg اینقدر ارزشمندن. از یه طرف همیشه تو بهینهترین حالت ممکنه، از یه طرف دیگه همین مواردی که پیدا میکنن عملاً به کل کامیونیتی C و کامپایلرها سود میرسونه و باعث میشه ابزارهایی که همه استفاده میکنن، کمکم بهتر بشن.
📺Source
📡openpcb
2❤80👍12🙏2
بعد از ادعای بزرگ بنیاد رزبری در مورد غیر قابل هک بودن میکروکنترلر RP2350 و فراخوان به هک و تعیین کردن جایزه برای کسی که بتونه code امضا نشده رو روی میکرو اجرا کنه، چند تیم مستقل امنیتی موفق شدن حداقل پنج روش اجرایی رو پیدا کنن که عملاً تمام لایههای دفاعی سختافزاری و نرمافزاری این چیپ رو دور میزنه، این حملات نشون دهنده شکست کامل مکانیزمهای Secure Boot و حتی استخراج فیزیکی کلیدها از سیلیکون بود.
اولین حفرهای امنیتی که پیدا شد مربوط به (State Machine)سختافزاری بود که مسئول خوندن اطلاعات حیاتی از حافظه OTP موقع بوت شدنه! محققان متوجه شدن که با یه گلیچ ولتاژ دقیق روی پین تغذیه USB_OTP_VDD در بازه زمانی ۲۴۵ تا ۲۷۵ میکروثانیه بعد از استارت، میشه کاری کرد که سیستم به جای دادههای واقعی، مقادیر "Guard Read" (که اتفاقاً 0x333333 هستن) رو بخونه و این باعث میشه چیپ اشتباهاً دیباگ رو باز کنه و با معماری RISC-V بالا بیاد که هیچکدوم از تنظیمات امنیتی روش اعمال نشده.
روش دوم حمله به بوتلودر USB بود که توی فضای Non-Secure اجرا میشه! اونجا یه تابع reboot هست که با دو تا دستور اسمبلی چک میکنه کسی درخواست (Vector Boot) نکرده باشه، ولی با (Crowbar Glitching) و اسکیپ کردن یکی از این دستورات، تونستن سیستم رو گول بزنن تا کد امضا نشده رو اجرا کنه و جالب اینجاست که حتی آشکارسازهای گلیچ و (Random Delays) هم نتونستن جلوی این حمله رو بگیرن.
قشنگترین حمله وقتی بود که پای لیزر وسط اومد و با یه ستاپ لیزری خونگی زیر ۸۰۰ دلار، پروسه تایید امضا رو هدف گرفتن! تکنیک اینجا یه جور TOCTOU بود که فرمور سالم رو برای تایید امضا میفرستادن اما با استفاده از لیزر پوینتر حافظه رو تغییر میدادن تا موقع اجرا، کد مخرب از یه آدرس دیگه لود بشه.
حمله چهارم هم روی مکانیزم قفل نرمافزاری OTP سوار شد، جایی که بوتلودر سعی میکنه دسترسیها رو ببنده و این کار رو دو بار چک میکنه، ولی با ایجاد "دو تا گلیچ" الکترومغناطیسی (EMFI) پشت سر هم روی دستورات شیفت بیت، تونستن کاری کنن که قفل اعمال نشه و کلیدها از طریق USB قابل خوندن بشن.
نهایتاً تیر خلاص استخراج فیزیکی بود! با اینکه سلولهای آنتیفیوز ۴۰ نانومتری خیلی کوچیکن، با استفاده از تکنیک کنتراست ولتاژ غیرفعال (PVC) زیر میکروسکوپ FIB، تونستن مستقیماً وضعیت ۰ یا ۱ بودن بیتها رو از روی سیلیکون ببینن چون فیوزهای سوخته بار الکتریکی رو تخلیه میکردن و روشنتر دیده میشدن.
رزبریپای همه این موارد رو تایید کرد و برای بعضیهاش Errata داد، ولی نکته ترسناک اینه که حملاتی مثل OTP PSM یا لیزر نیاز به تغییر سیلیکون دارن و با آپدیت نرمافزاری درست نمیشن، که نشون میده پیچیدگی زیاد بوتلودر و اتکا به سختافزاری که قبل از اجرای کد امنیتی گلیچ میخوره (Pre-boot attacks)، میتونه کل معماری امنیتی رو به باد بده.
نکته قابل توجه ماجرا اینه که حتی شرکتهایی مثل رزبری که اسمشون با «مهندسی تمیز» و «قابل اعتماد بودن» گره خورده و ادعاهای بزرگی در مورد امن بودن دارن، ممکنه همینقدر قاطع تو پیاده سازی ساز و کارهای امنیتی شکست بخورن.
اگه به جزییات این ماجرا علاقه داشتید میتونید تو این مقاله در موردش بخونید.
📡openpcb
اولین حفرهای امنیتی که پیدا شد مربوط به (State Machine)سختافزاری بود که مسئول خوندن اطلاعات حیاتی از حافظه OTP موقع بوت شدنه! محققان متوجه شدن که با یه گلیچ ولتاژ دقیق روی پین تغذیه USB_OTP_VDD در بازه زمانی ۲۴۵ تا ۲۷۵ میکروثانیه بعد از استارت، میشه کاری کرد که سیستم به جای دادههای واقعی، مقادیر "Guard Read" (که اتفاقاً 0x333333 هستن) رو بخونه و این باعث میشه چیپ اشتباهاً دیباگ رو باز کنه و با معماری RISC-V بالا بیاد که هیچکدوم از تنظیمات امنیتی روش اعمال نشده.
روش دوم حمله به بوتلودر USB بود که توی فضای Non-Secure اجرا میشه! اونجا یه تابع reboot هست که با دو تا دستور اسمبلی چک میکنه کسی درخواست (Vector Boot) نکرده باشه، ولی با (Crowbar Glitching) و اسکیپ کردن یکی از این دستورات، تونستن سیستم رو گول بزنن تا کد امضا نشده رو اجرا کنه و جالب اینجاست که حتی آشکارسازهای گلیچ و (Random Delays) هم نتونستن جلوی این حمله رو بگیرن.
قشنگترین حمله وقتی بود که پای لیزر وسط اومد و با یه ستاپ لیزری خونگی زیر ۸۰۰ دلار، پروسه تایید امضا رو هدف گرفتن! تکنیک اینجا یه جور TOCTOU بود که فرمور سالم رو برای تایید امضا میفرستادن اما با استفاده از لیزر پوینتر حافظه رو تغییر میدادن تا موقع اجرا، کد مخرب از یه آدرس دیگه لود بشه.
حمله چهارم هم روی مکانیزم قفل نرمافزاری OTP سوار شد، جایی که بوتلودر سعی میکنه دسترسیها رو ببنده و این کار رو دو بار چک میکنه، ولی با ایجاد "دو تا گلیچ" الکترومغناطیسی (EMFI) پشت سر هم روی دستورات شیفت بیت، تونستن کاری کنن که قفل اعمال نشه و کلیدها از طریق USB قابل خوندن بشن.
نهایتاً تیر خلاص استخراج فیزیکی بود! با اینکه سلولهای آنتیفیوز ۴۰ نانومتری خیلی کوچیکن، با استفاده از تکنیک کنتراست ولتاژ غیرفعال (PVC) زیر میکروسکوپ FIB، تونستن مستقیماً وضعیت ۰ یا ۱ بودن بیتها رو از روی سیلیکون ببینن چون فیوزهای سوخته بار الکتریکی رو تخلیه میکردن و روشنتر دیده میشدن.
رزبریپای همه این موارد رو تایید کرد و برای بعضیهاش Errata داد، ولی نکته ترسناک اینه که حملاتی مثل OTP PSM یا لیزر نیاز به تغییر سیلیکون دارن و با آپدیت نرمافزاری درست نمیشن، که نشون میده پیچیدگی زیاد بوتلودر و اتکا به سختافزاری که قبل از اجرای کد امنیتی گلیچ میخوره (Pre-boot attacks)، میتونه کل معماری امنیتی رو به باد بده.
نکته قابل توجه ماجرا اینه که حتی شرکتهایی مثل رزبری که اسمشون با «مهندسی تمیز» و «قابل اعتماد بودن» گره خورده و ادعاهای بزرگی در مورد امن بودن دارن، ممکنه همینقدر قاطع تو پیاده سازی ساز و کارهای امنیتی شکست بخورن.
اگه به جزییات این ماجرا علاقه داشتید میتونید تو این مقاله در موردش بخونید.
📡openpcb
2👌87😐10😢1
اگه یه نگاهی به ارزش کل صنعت بازار نیمههادی بندازیم, نکته عجیب این دیتا تمرکز وحشتناک ۳۷ درصدی این صنعت ۱۲ تریلیون دلاریه که دست انویدیاست این نشون میده بازار الان عملاً فقط داره روی "هوش مصنوعی" قیمتگذاری میکنه و نه خودِ سیلیکون به معنای سنتی.
یه پارادوکس جالب مهندسی هم اینجاست که آمریکا با ۷ تریلیون دلار سهم بازار، قدرت بلامنازع به نظر میاد، اما اکثر این غولها (انویدیا، برادکام، AMD) مدل Fabless دارن، یعنی عملاً هیچ چیپی نمیسازن و برای فیزیکِ کار کاملاً وابسته به TSMC تایوان هستن که این یعنی گلوگاه واقعی سختافزار دنیا هنوز توی آسیای شرقیه.
اروپا هم عملاً تبدیل شده به یه "تکخال" به اسم ASML! یعنی اگه لیتوگرافی EUV هلند رو از معادله حذف کنی، اروپا با شرکتهایی مثل ST و Infineon و NXP که بیشتر توی حوزه امبدد، خودرو و پاور کار میکنن.
نکته عجیب بعدی، غیبت شرکتهای مهمی مثل Nordic Semiconductor و Silicon Labs تو این دیتاست! اونم در حالی که چندتا شرکت نسبتا گمنام اسرائیلی تو لیست دیده میشن.
📡openpcb
یه پارادوکس جالب مهندسی هم اینجاست که آمریکا با ۷ تریلیون دلار سهم بازار، قدرت بلامنازع به نظر میاد، اما اکثر این غولها (انویدیا، برادکام، AMD) مدل Fabless دارن، یعنی عملاً هیچ چیپی نمیسازن و برای فیزیکِ کار کاملاً وابسته به TSMC تایوان هستن که این یعنی گلوگاه واقعی سختافزار دنیا هنوز توی آسیای شرقیه.
اروپا هم عملاً تبدیل شده به یه "تکخال" به اسم ASML! یعنی اگه لیتوگرافی EUV هلند رو از معادله حذف کنی، اروپا با شرکتهایی مثل ST و Infineon و NXP که بیشتر توی حوزه امبدد، خودرو و پاور کار میکنن.
نکته عجیب بعدی، غیبت شرکتهای مهمی مثل Nordic Semiconductor و Silicon Labs تو این دیتاست! اونم در حالی که چندتا شرکت نسبتا گمنام اسرائیلی تو لیست دیده میشن.
📡openpcb
👍33⚡10🤔5
شما هم ممکنه مثل پیتر کاولی (@corsix) کد سادهی C خودتون را با GCC کامپایل کنید و خروجی اسمبلی ARM64 را باز کنید و همینطور که دارید کد اسمبلی تولید شده رو میبینید از خودتون بپرسید:
«این دیگه چیه؟ چرا کامپایلر دو بار w4 & w1 رو حساب کرده، بعد هم دو بار w0 & w4 رو تکرار کرده! مگه نمیشد یک mov بزنه و خلاص؟»
چیزی که در نگاه اول مثل یک باگ یا تنبلی کامپایلر به نظر میرسه، در واقع یکی از بهترین درسهای بهینهسازی CPUهای مدرنه!
قبلش باید ببینیم چرا GCC (و گاهی Clang) همچین کار «عجیبی» میکنن و چرا تقریباً همیشه تو این موارد حق با کامپایلره.
کد سی احتمالاً همچین چیزی بوده:
و در نتیجه کد اسمبلی تولید شده توسط GCC همچین چیزیه!
کدهای تکراری! ولی چرا؟ تو CPUهای مدرن ARM64 (Apple M1/M2/M3/M4، Snapdragon X Elite، Graviton و …) اجرای دوبارهی یک دستور سادهی AND تقریباً همیشه از mov سریعتره چون mov وابستگی داده (data dependency) ایجاد میکنه و pipeline را متوقف میکنه. یعنی وقتی مینویسی mov w2, w0،اتفاقی که میفته اینه که CPU باید صبر کنه تا w0 کاملاً آماده بشه، بعد w2 رو پر کنه. اما وقتی دو بار and w2, w4, w1 مینویسی، هر دو دستور ورودی یکسان (w4 و w1) داره و هیچ وابستگیای بینشون نیست. نکته بعدی اینکه CPUهای out-of-order میتونند این دو دستور AND رو همزمان در دو واحد ALU مختلف اجرا کنند و از طرفی مکانیزم Register Renaming باعث میشه CPU این دو نتیجه را بهعنوان دو رجیستر فیزیکی کاملاً جدا ببینه و هزینهی واقعی خیلی خیلی کمه!
جالب اینه که clang خروجی متفاوتی داره و کمی تمیزتره!
دلیلش اینه که Clang کمی محافظهکارتره و بیشتر به «کد تمیز» اهمیت میده، تو بنچمارکهای واقعی روی M2/M3/M4 معمولاً تفاوت سرعت از ۱٪ کمتره. یعنی GCC با کد «زشتتر» گاهی حتی چند صدم درصد سریعتره!
پس یادتون نره در بیشتر مواقع «کامپایلر بیشتر از من میفهمه»، کد اسمبلی کوتاهتر هم نشونه سریعتر بودنش نیست. دفعهی بعدی هم که GCC یا Clang چیزی تولید کرد که در نگاه اول «احمقانه» به نظر رسید، قبل از آهکشیدن یه بنچمارک کوچیک بزنین و یه نگاهی به معماری همون CPU بندازید. تو ۹۹٪ مواقع میبینین کامپایلر حق داشته. البته چیزهایی که هکرهای ffmpeg دستی بهینه میکنن رو هم نمیشه نادیده گرفت، ولی اونها قرار نیست به ما ثابت کنن که کامپایلر خنگه و ما ازش باهوشتریم. و در نهایت هم یادمون نره که روی آرم، GCC معمولاً یه ذره، خیلی کم اسمبلی بهینهتری تولید میکنه.
📡openpcb
«این دیگه چیه؟ چرا کامپایلر دو بار w4 & w1 رو حساب کرده، بعد هم دو بار w0 & w4 رو تکرار کرده! مگه نمیشد یک mov بزنه و خلاص؟»
چیزی که در نگاه اول مثل یک باگ یا تنبلی کامپایلر به نظر میرسه، در واقع یکی از بهترین درسهای بهینهسازی CPUهای مدرنه!
قبلش باید ببینیم چرا GCC (و گاهی Clang) همچین کار «عجیبی» میکنن و چرا تقریباً همیشه تو این موارد حق با کامپایلره.
کد سی احتمالاً همچین چیزی بوده:
uint32_t lookup(uint32_t index, uint32_t mask, const uint32_t* table) {
uint32_t idx = index & mask;
return table[idx];
}و در نتیجه کد اسمبلی تولید شده توسط GCC همچین چیزیه!
and w0, w4, w1 // w0 = w4 & w1
and w2, w4, w1 //! w2 = w4 & w1
and w0, w0, w4 // w0 = w0 & w4
and w0, w0, w4 // !
ldr w0, [x2, w0, uxtw #2]
کدهای تکراری! ولی چرا؟ تو CPUهای مدرن ARM64 (Apple M1/M2/M3/M4، Snapdragon X Elite، Graviton و …) اجرای دوبارهی یک دستور سادهی AND تقریباً همیشه از mov سریعتره چون mov وابستگی داده (data dependency) ایجاد میکنه و pipeline را متوقف میکنه. یعنی وقتی مینویسی mov w2, w0،اتفاقی که میفته اینه که CPU باید صبر کنه تا w0 کاملاً آماده بشه، بعد w2 رو پر کنه. اما وقتی دو بار and w2, w4, w1 مینویسی، هر دو دستور ورودی یکسان (w4 و w1) داره و هیچ وابستگیای بینشون نیست. نکته بعدی اینکه CPUهای out-of-order میتونند این دو دستور AND رو همزمان در دو واحد ALU مختلف اجرا کنند و از طرفی مکانیزم Register Renaming باعث میشه CPU این دو نتیجه را بهعنوان دو رجیستر فیزیکی کاملاً جدا ببینه و هزینهی واقعی خیلی خیلی کمه!
جالب اینه که clang خروجی متفاوتی داره و کمی تمیزتره!
and w0, w1, w2
and w0, w0, w1
ldr w0, [x3, w0, uxtw #2]
دلیلش اینه که Clang کمی محافظهکارتره و بیشتر به «کد تمیز» اهمیت میده، تو بنچمارکهای واقعی روی M2/M3/M4 معمولاً تفاوت سرعت از ۱٪ کمتره. یعنی GCC با کد «زشتتر» گاهی حتی چند صدم درصد سریعتره!
پس یادتون نره در بیشتر مواقع «کامپایلر بیشتر از من میفهمه»، کد اسمبلی کوتاهتر هم نشونه سریعتر بودنش نیست. دفعهی بعدی هم که GCC یا Clang چیزی تولید کرد که در نگاه اول «احمقانه» به نظر رسید، قبل از آهکشیدن یه بنچمارک کوچیک بزنین و یه نگاهی به معماری همون CPU بندازید. تو ۹۹٪ مواقع میبینین کامپایلر حق داشته. البته چیزهایی که هکرهای ffmpeg دستی بهینه میکنن رو هم نمیشه نادیده گرفت، ولی اونها قرار نیست به ما ثابت کنن که کامپایلر خنگه و ما ازش باهوشتریم. و در نهایت هم یادمون نره که روی آرم، GCC معمولاً یه ذره، خیلی کم اسمبلی بهینهتری تولید میکنه.
📡openpcb
1❤47👍13🔥3
جف گیرلینگ (معروف به GeerlingGuy) توییت جالبی منتشر کرده و برای اولین بار عکسی از Raspberry Pi Compute Module 0 (CM0) رو نشون داده! ماژولی که در واقع همون Raspberry Pi Zero 2 Wـه، ولی به شکل SoM (System on Module) البته با لبههای castellated برای لحیم مستقیم روی PCB.
روی این برد پردازنده RP3A0 به همراه حافظه ۱۶ گیگابایت eMMC دیده میشه، و فقط برای بازار چین عرضه شده (بهخاطر کمبود جهانی حافظه LPDDR2)! این برد برای پروژههای صنعتی و embedded که نیاز به حجم تولید بالا و رزیریپای دارن و تولیدشون چینمحوره مناسبه.
خبر خوب اینه که شرکت EDATEC تأیید کرده CM0 رسماً توی سایت Raspberry Pi لیست شده و از ژانویه ۲۰۲۶ محصولات صنعتی مبتنی بر اون در سطح جهانی عرضه میشه.
با اینکه محصول جذابی به نظر میرسه، ولی اگه دنبال یه راهحل کممصرف، ارزان و قابل تولید انبوه برای پروژههای IoT یا صنعتی هستین، همین الان هم گزینههای جذابتری توی بازار وجود داره.
📡openpcb
روی این برد پردازنده RP3A0 به همراه حافظه ۱۶ گیگابایت eMMC دیده میشه، و فقط برای بازار چین عرضه شده (بهخاطر کمبود جهانی حافظه LPDDR2)! این برد برای پروژههای صنعتی و embedded که نیاز به حجم تولید بالا و رزیریپای دارن و تولیدشون چینمحوره مناسبه.
خبر خوب اینه که شرکت EDATEC تأیید کرده CM0 رسماً توی سایت Raspberry Pi لیست شده و از ژانویه ۲۰۲۶ محصولات صنعتی مبتنی بر اون در سطح جهانی عرضه میشه.
با اینکه محصول جذابی به نظر میرسه، ولی اگه دنبال یه راهحل کممصرف، ارزان و قابل تولید انبوه برای پروژههای IoT یا صنعتی هستین، همین الان هم گزینههای جذابتری توی بازار وجود داره.
📡openpcb
👍20🔥3
چند وقتیه تو شبکه های اجتماعی مثل x حرف و حدیثهایی درباره گجت NanoKVM پخش شده که میگن این گجت یه میکروفون مخفی داره و بدون اینکه کاربر بدونه، میتونه حریم خصوصی رو تهدید کنه. ولی وقتی میری سراغ مستندات، تاریخچهی ماژول و روند توسعهی خود محصول، داستان یه چیز دیگهست.
گجت NanoKVM یه IP-KVM متنبازه که روی ماژول LicheeRV Nano ساخته شده. خود LicheeRV Nano یه ماژول استاندارد RISC-Vـه و از همون اول مثل اکثر بردهای توسعه امکانات پایه مثل MIPI LCD، تاچ، اسپیکر و میکروفون داشته. یعنی این قابلیت بخشی از برد اصلی بوده، نه اینکه NanoKVM بیاد یواشکی چیزی اضافه کنه.
اولین کاربران NanoKVM معمولاً کسایی بودن که قبلاً با LicheeRV Nano به عنوان یه برد لینوکسی کوچیک کار کرده بودن! پس براشون وجود میکروفون چیز جدیدی نبود. اما وقتی محصول بیشتر سر زبونها افتاد و کاربرای جدید اومدن، تازه چشمشون به میکروفون افتاد و از همینجا قصهی «میکروفون مخفی» ساخته شد.
ولی آیا اصلا این میکروفون مشکل امنیتی ایجاد میکنه؟ خیر! چند دلیل ساده داره: IP-KVM ذاتاً قابلیت صوت دوطرفه داره. حتی اگه روی بورد میکروفون نباشه، اگر KVM توسط یه نفر دیگه کنترل بشه، میتونه از میکروفون سیستم مقصد استفاده کنه. پس خود سختافزار NanoKVM موضوع جدیدی ایجاد نمیکنه. از طرفی درایور میکروفون ۹ ماهه حذف شده و عملاً غیر فعاله. یعنی حتی اگه میکروفون فیزیکی باشه، صدایی نمیتونه بگیره.
ولی چرا میکروفون همچنان تو مدلهای Cube و Lite باقی موند؟ مدلهای NanoKVM-Cube و NanoKVM-Lite مستقیم روی LicheeRV-Nano ساخته میشن. حذف میکروفون یعنی تغییر BOM، تغییر تولید، تغییر QC، و هزینهی اضافه. تیم توسعه ترجیح داده همون برد رو نگه داره تا قیمت و مدیریت موجودی پیچیده نشه. از نظر تجاری و تولید کاملاً منطقیه.
واقعیت اینه که خیلی از مقالهها و پستهایی که پخش شدن، مشکل رو بزرگنمایی کردن. NanoKVM ضعفهایی داره، ولی ضعفهاش به نتورک و کانفیگ اشتباه کاربرا مربوطه. نه به وجود یه میکروفون خاموش که اساساً درایور هم نداره. مزیت مهم NanoKVM اینه که متنبازه! یعنی جامعهی توسعه میتونه white-box و black-box تست انجام بده و امنیت رو واقعی بهتر کنه، نه با ترس رسانهای. این داستان «میکروفون مخفی» هم بیشتر نتیجهی سوءتفاهم کاربرای جدید با دانش کم سخت افزاری و هیجان رسانههاست.
📡openpcb
گجت NanoKVM یه IP-KVM متنبازه که روی ماژول LicheeRV Nano ساخته شده. خود LicheeRV Nano یه ماژول استاندارد RISC-Vـه و از همون اول مثل اکثر بردهای توسعه امکانات پایه مثل MIPI LCD، تاچ، اسپیکر و میکروفون داشته. یعنی این قابلیت بخشی از برد اصلی بوده، نه اینکه NanoKVM بیاد یواشکی چیزی اضافه کنه.
اولین کاربران NanoKVM معمولاً کسایی بودن که قبلاً با LicheeRV Nano به عنوان یه برد لینوکسی کوچیک کار کرده بودن! پس براشون وجود میکروفون چیز جدیدی نبود. اما وقتی محصول بیشتر سر زبونها افتاد و کاربرای جدید اومدن، تازه چشمشون به میکروفون افتاد و از همینجا قصهی «میکروفون مخفی» ساخته شد.
ولی آیا اصلا این میکروفون مشکل امنیتی ایجاد میکنه؟ خیر! چند دلیل ساده داره: IP-KVM ذاتاً قابلیت صوت دوطرفه داره. حتی اگه روی بورد میکروفون نباشه، اگر KVM توسط یه نفر دیگه کنترل بشه، میتونه از میکروفون سیستم مقصد استفاده کنه. پس خود سختافزار NanoKVM موضوع جدیدی ایجاد نمیکنه. از طرفی درایور میکروفون ۹ ماهه حذف شده و عملاً غیر فعاله. یعنی حتی اگه میکروفون فیزیکی باشه، صدایی نمیتونه بگیره.
ولی چرا میکروفون همچنان تو مدلهای Cube و Lite باقی موند؟ مدلهای NanoKVM-Cube و NanoKVM-Lite مستقیم روی LicheeRV-Nano ساخته میشن. حذف میکروفون یعنی تغییر BOM، تغییر تولید، تغییر QC، و هزینهی اضافه. تیم توسعه ترجیح داده همون برد رو نگه داره تا قیمت و مدیریت موجودی پیچیده نشه. از نظر تجاری و تولید کاملاً منطقیه.
واقعیت اینه که خیلی از مقالهها و پستهایی که پخش شدن، مشکل رو بزرگنمایی کردن. NanoKVM ضعفهایی داره، ولی ضعفهاش به نتورک و کانفیگ اشتباه کاربرا مربوطه. نه به وجود یه میکروفون خاموش که اساساً درایور هم نداره. مزیت مهم NanoKVM اینه که متنبازه! یعنی جامعهی توسعه میتونه white-box و black-box تست انجام بده و امنیت رو واقعی بهتر کنه، نه با ترس رسانهای. این داستان «میکروفون مخفی» هم بیشتر نتیجهی سوءتفاهم کاربرای جدید با دانش کم سخت افزاری و هیجان رسانههاست.
📡openpcb
❤22👌10🥱2