Мисля да приключа тази тема с един разказ за GSM модули
а лонг лонг тайм ин галакси фа фа ауей...
В една от електронните сфери бях един от първите GSM хакери и един от първите работеши у нас по IoT идеята на Бош/Сименс в "древноста"
Пред погледа ми приминава историята на GSM, от "дръжки", Симбияни до Андроиди и Ябълки... поради горното
За професията ни общото от изброените е че управляват GSM с АТ команди - за мен отживелица от времето на модемите га трябваше да пишем "думи" за влизане в BBS
Другото общо е че могат да изпълняват програми от вътре без външна намеса. В началото се използваше ДжаваТоМи ( Java2ME ) 90% игри за "дръжка", а тази Джаба се ползваше дори за спътници и луноходи поради "екстри"
В момента, който на някой му светна
идеята, че може да пакетират GSM във вид на модул за индустрията, бандата на Бош започна да лансира идея за IoT ( имаха едни Скади и Име пред индустрията )
или по-точно управление на "умни" печки, перални, хладилници... дори инвестираха (много пари) за R&D звено в България - някой познати там "творяха" бъдещите сървърни приложения за подобни модули
В прехода "игрите" минаха под управлението на Симбиан, но така и не се появиха модули с тази ОС и те така до Андроид/Ябълка, изпускам нарочно WinMobile и Linux
Имаше един период в който Бош подобните ( най-вече Германия ) изгубиха "IoT" инициативата - най-вероятно им спраха кранчето,
Симбиан почина, Ябълки и Дроиди мереха възходи, а Китай твореше GSM-и с телевизори с шарения на Айфон. Та през този период нямаше кой знай какви GSM модули.
Намираха се тук там за яки кинти модули и модеми като Siemens MC35 и разни други на по-по-най производители
Хакерството на телефони ми почна с клониране на мобифон Nokia 150, тази имаше отделна платка RF Rx/Tx аналог ауидио и си играх със синтезатора - слушахме СРС-та
Интересно беше с дръжките Sagem, кода за отключване се смяташе с хаш от ID ( one wire dalas чип ), private key[6] и разбъркан масив[256] от 0-255
Масива се намираше лесно във firmware, обаче KEY[6] трудно, За наша "радост", първите 3 числа бяха константа, оставаха 3 и ни светна идея ( приятел от Мобилтел ) за Brute Force на кода
Проба, тест - 10 минути на 350 MHz PC - YES, задоволитен резултат. След време метода BruteForce го подеха едни приятели в Англия(българи) с ферми от графични карти за кодове за Nokia ( BruteForce с графични карти говори ли ви нещо )
Имаше и комични начини за отключване на GSM - с брум ( 50Hz ) правиш висящо краче i2c data на еепром, пипаш крачето и го караш да се отключи - навярно брума мажеше данните, а firmware се опитваше да възстанови фабрични данни
това беше лирично отклонение...
След време ( дупка около 10 години ) инициатива я поеха китайците заради един много евтин GSM SoC - Mediatek MTK 62xx, като цена долар и половина на дребно,
и заради факта, че са произведени милиарди "дръжки" от Нокия Фенерче до GSM с телевизор
A като SoC разбирай всичко в едно: ARM, FLASH, от GSM модем и БлуТу до MPEG 1,2,3,4 енкодери и камери - на шарения изглеждаше Айфон с един единствен чип !!!
Та този SoC много китайци го пакетираха във вид модули за "смешни" пари. Една от фирмите извади едно нативно С апи за такива като нас да пишат приложения вътре в модула без външно МЦУ ( икономия на кинти )
нещо, което Java2ME навремето, но не ми даваше възможности за достъп до периферията.
Разцъквах го без особен интерес до момента в който един момък демонстрира продажба на около 1000 индустриални джаджи с Ардуино приложение ... мдам Ардуино в индустрия
До тогава Ардуино го "гледах" с насмешка и си нямах на идея какво има "под капака". В последствие се оказа окастрена C++ стринг библиотека(опростяване) работеща в супер луп, но със стандарт за драйвери за периферия
и заради този "стандарт" няма интерфейс, протокол, сензор, тиква ... за който да няма copy/paste Open Source библиотека.
А това дава нисък старт (съкращава време) за продуктова идея, експерименти, та дори обучение и реклама, дори фирми като Infineon ( ако ви говори нещо ) имат "играчки" под формата на Ардуино
Общо взето няма голяма фирма, която да няма подобни "дранкулки", най-вече за реклама и обучение.
Та това Ардуино(сорс) с онова горното С апи за GSM, със спомени за ДжаваТоМи и Симбиан ме накараха да си "начеша крастата" и за моя радост, с малко хакове, ако следите написаното,
Ардуиното в GSM заработи все едно не е излизало от там. Хаковете бяха за разширяване на възможностите на апито и влизане в стандартите за библиотеки за интерфейси, протоколи и периферия
Едно е да парсваш АТ команди с външно МЦУ, друго си е да пишеш С/C++ вътре в модула, а за някой - "кеф" на Ардуино. ( под Ардуино разбирай и С++ )
Не съм първия качил Ардуино в GSM - аз съм втория. Първи са едни китайци с Кикстартер, които имат пълната документация на оригиналното SDK на SoC-a с което са написани firmware за модулите
От Кикстартер играчка платформата им стана "лого" на Mediatek - LinkIt ( в момента не виждам развитие ) насочена към GSM, WiFi, BT с FreeRTOS + lwIP
Та тези SDK са много скъпи. Продава ги производителя на SoC или се "подаряват на наши хора", а за такива като мен/нас инфо няма ... между другото в GIT се намират SDK за стари чипове
Онези китайчета имаха директен и оригинален достъп до кернела, а аз използвах апи на апито, поради развинтените фантазии на производителя на модула
По едно време на GSM сцената се появи технологията LPWA NarrowBand ( NB-IoT, в Европа ) ( LTE-CAT-M1 в щатите ).
О баня, О кеф ... 1 долар сим катра за 10 години ... да ама в България нямаше мрежа, а се намираха модули и ако обърнахте внимание в началото на GSM хакер, наврно имам познати от стария Цитрон/Мобилтел
Търси стари забравени телефонни номера, биип, среща, бира - дай връзка с А1 - нова среща - абе вие знаете еди кво си еди що си - добре - и щрак шалтера, цяла София с NarrowBand
Това, че имат "извратени" финансови идеи за използване на NarrowBand, са си тяхни сънища и кошмари
Та - Китаец, дай модул, мога ли да пиша вътре - Можеш ... и защо си направил апи да пиша отвътре АТ команди ... ми щото толкова разбираме
Добре - Хак, Хак - директно викане на кернел функции от FreeRtos, lwIP, mbedTLS ---> Ардуино ... долетяха двама китаеца, мигат на парцали и се чешат по кратуните
Общо взето само мигането остана, а опита показа ( за NB-IoT ) че колкото и непокосано да напиша Ардуино приложение в модул,
то той ще си изпълнява заданието - общо взето ще работи приблизително 10 секунди и ще спи дълбоко ден/седмица/месец до следващо събуждане и като се има впредвид огромното Ардуино "наследство" размислите ги оставам на вас
2G, 3G, 4G, 5G модули - повечето имат С апита за писане на приложения вътре в модула.
Познавам един SoC, който работи с Linux почти като ПИ Зеро с разлика - флоат хард или софт, а повечето нови минават на FreeRTOS и "безплатни" ОС
Някой модули дори търкалят и microPython, може да "светне" дори Lua(има) и JavaScipt(няма)
пример:
https://www.youtube.com/watch?v=1vF9Lb7n_-kа Java2ME е отдавна забравена птица...
Мога да разкажа и как се "изроди" Андроид от Моторола Open Hardware "дръжка" с Linux + Java, но явно пазара опердели модела на развитие
и те така - Целта на темата беше да покажа колко: просто, лесно и бързо могат да стават нещата @ GSM модули