Заказ PCB с доставкой DHL для частного лица

Я сделал ошибку...

Мне нужно было быстро сделать несколько PCB.
ALLPCB(https://www.allpcb.com) предлагает два типа доставки обычной почтой(до меня идет посылка где-то месяц) и DHL(в течении недели грубо говоря).
Я не видел, или не внял, на сайте ALLPCB какой либо информации касаемо физ. лица и DHL доставки.

Платы были успешно произведены, и успешно отправлены DHL.
Половина суммы, которую я отдал, пришлась на услуги DHL

За день до доставки, я случайно увидел на сайте DHL, что таможня отказала в провозе моей посылки(посылка уже была в моем городе).
Теперь посылка, помахав мне ручкой, возвращается назад к отправителю.

А теперь детали:
1) Как я сегодня узнал, на таможне 'Ввоз грузов на физические лица через DHL Express закрыт c 2010'(C)DHL
2) Это не помешало ALLPCB принять деньги за доставку и оплатить саму доставку. Хотя в моем профиле и в остальных данных указано что я физ. лицо.
3) Это также не помешало DHL принять заказ и взять(за явно не выполнимые услуги) деньги.
4) Никто меня никаким образом об отказе на таможне не информировал, хотя есть реальная возможность переоформить прямо на месте на юр. лицо.
5) Чтобы мне кто не говорил, все транспортные компании работают с отправителем(юридическая сделка осуществляется с отправителем), получатель для них никто(никакой юр. силы не имеющий)
6) Написал письмо ALLPCB, молчат, ждемс.

Ну и так, приятные мелочи работы с DHL:
1) Девочка в службе поддержки, после некоторого моего ожидания на телефоне(консультировалась с коллегой), сказав мне 'спасибо, пока' положила трубку(видать раньше времени переключилась на мою линию)
2) Не перезванивают, на старого оператора не соединяют, пришлось звонить и заново объяснять проблему.
3) При повторном ожидании мне включили рекламу, где рассказывалось какие они молодцы и как они качественно меня обслуживают.
4) В начале диалога звучит фраза, что после звонка нужно оставаться на линии для оценки работы сотрудников. Но никакого спроса оценки не происходит, видать сами знают какую я им могу оценку поставить.

Итого, получается, если вы физ. лицо, то быстро произвести и получить платы у ALLPCB нельзя, ждите доставку обычной почтой.
А оформление доставки на юр. лицо чревато дополнительными расходами налагаемыми таможней. Я таким образом когда-то давно купил мини компьютер отдав за сам компьютер и доставку 3 тыс. руб, и еще 3 тыс. рублей за расторможку.

Есть вариант через китайских частников, у которых нет проблем с доставкой с помощью транспортных компаний и с растоможкой, да и берут они гораздо меньше чем 3500 за 400 грамм. Похоже это единственный приемлемый вариант доставки.

P.S. Лично мое мнение о DHL стало сугубо отрицательным, это больше похоже на шаражкину контору, чем на солидную компанию.

IO модуль (powerd by core5277)

Забегая немного вперед...

Универсальный IO модуль позволяет подключать различные датчики на разъем внизу платы, слева.
Также поддерживает дополнительные порты для платы расширения.
На текущий момент я тестирую три платы(прототипы): Датчик температуры и влажности, инфракрасный приемник/передатчик и RGB светильник. Плат расширения будет много.









P.S. Мне недавно, на ВЭФ'е, московские специалисты из VEBVENTURES сказали, что мой проект похож на ардуино, не очень приятно было, хотя, может быть они и правы, в той части, что на базе моего проекта также легко строить решения в рамках автоматизации, только в моем проекте как минимум не нужно программировать.

Мини реле на 10А (powered by core5277)

Я уже писал, о последнем прототипе данного устройства.
Но за это время было выполнено несколько улучшений.

Итак, новые характеристики прототипа:
1) Управление по шине RS485(две витых пары), поддержка до 128 устройств, допустимое расстояние - сотни метров(зависит от свойств кабеля).
2) Компактный протокол, среднестатистический запрос-ответ выполняется за 15-20 миллисекунд.
3) Уникальная идентификация каждого устройства.
4) Обнаружение всех устройств на шине в течении нескольких секунд.
5) Ведение истории устройством (записывается изменения показаний, рестарт устройства и команды реле с учетом источника команды).
6) Информирование Java контроллера о событиях(изменено состояние реле или показание температуры и прочее) в течении 30 миллисекунд
7) Поддержка порта расширения для датчика температуры(DS18B20) или датчика температуры и влажности(AM2301) или кнопки без фиксации для управления реле или выключатель(кнопку с фиксацией) (также, в будущем, планирую добавить таблетку DS1990A)
8) Возможность обновления прошивки без дополнительных манипуляций, функционалом можно воспользоваться прямо в клиенте.
9) Съем потребляемой мощности нагрузкой на базе тока(напряжение не учитывается, используется константа) *(доступно только для реле с датчиком тока)
10) Поддержка таймера с минимальным интервалом в 10 миллисекунд
11) Защита от частого переключения реле (максимальная частота - 2Гц)
12) Поддержка триггеров, позволяют управлять реле на базе условий по показаниям температуры, влажности, потребляемой мощности нагрузкой.
13) Возможность блокировать каналы управления реле (ручной, шина, таймер, триггер)
14) Размеры, не более, 20х20х35мм
15) Потребление(при 5В) менее 20ма/80ма
16) Поддерживаемое напряжение 5-36В (постоянный ток)
17) Индикация: вкл/выкл реле(синий), опрос датчиков(зеленый), передача по шине(красный)
18) Опрос датчиков - каждые 5 сек, информирование Java контроллера при изменении состояния реле, dT>=1, dH>=3, dW>=200
19) Коммутируемый ток - характеристики реле: 10А(250V AC)
20) Трех контактная колодка: вход, НО, НЗ.

Фото прототипа (пайка не фабричная, паял сам!):





Ну и вот так она выглядит в клиенте:



В данный момент проводится мелкая доработка прошивки и функциональное тестирование.
После, закажу партию(со сборкой SMD), подготовлю документацию и определюсь с ценой.
Также рассматривается вариант сертификации.

P.S. Благодаря core5277 прошивка легко модифицируется(написана полностью на ассемблере), не сложнее чем с ардуино. Например на ввод поддержки AM2301 я потратил 15 минут с учетом модификаций библиотеки устройства для Java контроллера и модификации данных БД.

No C C++

Хотите немного шаблонов? Их есть у меня.

Ни строчки кода Си и Си++ на конечных устройствах и шлюзах.

Вся реализация на девственно чистом старом добром ассемблере.

Настоящая Realtime OS с вытесняющей многозадачностью для конечных устройств на чипах ATmega8/16/88/168/328,AT90CAN32(и не только) и даже некоторых ATtiny. Также на девственно чистом старом добром ассемблере.

Это по сути тематика пиктограм характеризующих проект, типа как "No PB".

Минимализм и искусство старого доброго кодинга в современных решениях.

Платформонезависимость от отцов Sun Microsystems в виде Java контроллера.


Максимализм, приведший разработчика к ОС на ассемблере и реализация на нем-же прошивок во времена подавляющего СИ и STM32 - явное свидетельство маниакальных трудозатрат ради надежности, стабильности и независимости.

Это моя затравка для будущей популяризации проекта.

Вопрос

Допустим, Вы стали обладателем квартиры, в новом доме.
И приступили к возведению стен, заливки пола, проводке силовых и коммуникационных линий, и т.д.

Допустим, Вы задумались о домашней автоматизации. Какое решение Вы предпочтете?

Я вижу несколько решений:
1) Ведем все силовые линии(включая практически каждый выключатель света, каждую розетку и прочее) до распределительного щита, в котором ставите логическую часть с силовыми реле, либо фиксированные коммутационные соединения(типа данные линии выключателя соединяют/разрывают линию до определенной лампы)
2) Оставляете без изменений существующие силовые линии, но, добавляете к каждому узлу, которым планируете управлять, низковольтные, коммутационные линии типа витой пары. Т.е. грубо говоря шину - один кабель проходящий через все узлы.
3) Оставляете все без изменений. Всю автоматизацию выполняете за счет внешних устройств с радио каналом, типа умная розетка, вставляющаяся в обычную розетку.

Пожалуйста, решите для себя что бы Вы выбрали, перед тем как читать далее.


Говорят я сильно навязываю людям свое мнение и им это очень не приятно, даже если мое мнение верно.

Я просто хочу задать несколько вопросов после вашего выбора.

Выбрали первый вариант?
Вы создали не простое решение, Вы явно разбираетесь в том, что сделали. Допустим, завтра Вы покинете этот дом. Кто будет поддерживать Ваше решение, и сможет ли простой мужик/электрик восстановить в спальне свет обеспечив включение и выключение через элементарный выключатель? Даже при наличии документации. И не будут ли дороже его услуги?

Второй вариант?
Та-же ситуация, допустим, завтра Вы покинете этот дом.
Разве не сможет самый обычный мужик/электрик выкинуть Вашу умную железку из стакана выключателя, соединив силовые линии на обычный выключатель как в обычном доме? Ну да, останутся Ваши коммуникационные кабель каналы, которые он может даже просто вырезать.
Какие здесь недостатки с первым вариантом?

Третий вариант?
Безусловно это лучший вариант! Вы, наигравшись с железкой просто выкидываете ее. Это может быть wifi лампа, кофе машина, чайник или холодильник. Или станция Алисы. Да много чего на самом деле.
Для этого не нужно ломать стены, проводить кабель каналы. И вообще каким-либо образом портить интерьер. И выглядит оно красиво!
Вопрос только в одном. Вам это нужно для эффекта? Баловства? Показухи? Или для реального повседневного использования дабы облегчить Вашу жизнь?
Когда Вы можете похвастать среди пьяной компании, как Алиса запрограммировано Вами отвечает на Ваши же вопросы - это одно, это эффектно. И совсем другое, когда Вы пытаетесь получить от той-же Алисы выполнения действий улучающей Вашу жизнь каждый день - типа Алиса включи в зале свет(удачи Вам, может быть через несколько лет она и сможет понять что только что Вы сказали, и это не стёб, Алиса кривовато распознает подобные реплики).

Ну хорошо, Вам понравился третий вариант(а кому нет?). Но Вы же должны понимать, что радио канал не надежен? Вы же должны понимать что современный Wi-Fi не рассчитан на такое большое количество Wi-Fi устройств? Вы же должны понимать, что программная составляющая Вашего умного дома должна уметь учитывать отвратительно слабую надежность Wi-Fi, Bluetooth и всяческих 433MHz?
Вы написали сценарий по управлению обогревателем на базе температурного датчика? Что если до обогревателя не дошли показания датчика температуры? Или дошли слишком поздно, когда пользователь уже сам дал немного другую команду обогревателю? Если что, там таких 'что если' вагон и маленькая тележка.


Наверное я опять навязал кому-то свое мнение, наверное так. Но пока я ничего умнее не вижу, с удовольствием проанализирую более умные решения.

Пршивка датчика двери на ATmega88 на базе core5277

Сегодня я закончил основной код прошивки датчика двери на базе своей ОС(https://github.com/w5277c/core5277)

Поддерживается следующий функционал:
1) Опрашиваются 2 порта для датчиков сухого контакта(опрос каждые 100мс, анализ портов можно отключить в настройках)
2) Светодиодная индикация режима опроса и индикация открытой двери
3) Поддержка кнопки без фиксации, можно настроить сценарии на разные комбинации нажатия(короткие, длинные нажатия, 4 комбинации максимум, +удерживание)
4) Ведение истории событий, данные не будут утеряны из-за временной остановки Java контроллера.
5) Шина bus5277, позволяет находить новые устройства, производить быстрые опросы устройств и практически мгновенно обнаруживать устройства с новыми данными

Как уже сказал, эта прошивка базируется на моих открытых исходниках ядра core5277.
Устройство работает под управлением операционной системы реального времени в режиме вытесняющей многозадачности.
Также используется дополнительная прослойка кода(5277 environment) разработанная для моих устройств - это закрытое ПО.
И вишенкой на торте - программа верхнего уровня, около 200 строк кода на ассемблере - это  и настройки и сама логика работы(именно эта часть будет отличаться в разных устройствах).

Все это заняло 98% 8КБ FLASH, т.е. умещается в ATmega88. Лично меня такой результат впечатлил.

Если взять чип ATMega168, то функционал будет расширен бутлоадером, т.е. появится возможность обновлять прошивки прямо через клиент.

На данный момент я тестирую решение на старой железке, с чипами ATmega88.
Где-то через 2 недели я получу необходимые компоненты и опишу здесь новую железку.

P.S. Жека, я помню, уже скоро.


P.P.S Чипы стали золотые, особенно ATmega, особенно в россии у барыг. Там же, на гитхабе(https://github.com/w5277c/core5277_stm32) есть мои скромные попытки разработки нечто подобного для STM32, но пока только в рамках задачи работы с SD картой(поэтому ОС там появится уж точно не скоро). Было бы куча свободного времени я бы глянул в сторону STM8, думаю адаптировать core5277 будет не сложно.

Новый функционал шины 5277

И так, когда мне напомнили о обещании предоставить несколько железок, я открыл свою старую коробку и убедился, что почти все железки, которые я обещал спаяны.

Но, с того момента, когда я их спаял, было сделано много изменений в программной части.
В основном это новые фичи, и весьма серьезные.
Например, с тех пор я перестал писать прошивки под каждое устройство на ассемблере и реализовал свою операционную систему на ассемблере(пока без поддержки файловых систем), да и в добавок сделал окружение(типа SDK) для устройств 5277.
Ну и как обычно встал вопрос - какой прошивкой снабжать данные устрйства?
Казалось бы все просто - возьми старые прошивки и точка. Можно было бы, но как отказаться от новых фич? Как поддерживать устаревший код? Это явно не тру подход.
Поэтому, в последние две недели я работал над закрытием основных задач моего SDK.
Буквально сегодня я оттестировал механизм идентификации новых устройств на шине.
Когда-то давно похожую задачу я закрыл для DIPEX, но там другой протокол и совсем другая реализация.
В общем, я хочу сказать, что с этого момента все мои устройства имеют функционал для обнаружения их на шине, также они имеют функционал позволяющий определить наличие новых данных на устройствах в течении 0.1-0.2 секунды. Поддерживают историю(т.е. запоминают в памяти изменение показаний, действия над реле и прочее), которую считывает контроллер после восстановления связи.
Пока я закрываю глаза на почти готовый функционал обновления прошивок по сети.
А еще, я в core5277 поменял регистр Z на Y в процедурах работы с выделенной памятью, что привело к большому количеству правок и сбоев. Большая часть устранена.

В общем, да, я хочу сказать, что все это требует серьезных усилий и я стараюсь, и я надеюсь, что скоро наступит день X, когда проект не будет требовать таких больших вливаний сил.
А пока, ждем.

P.S. Я помню, как мои одноклассники спрашивали меня - 'А игру сделать можешь?'. Если бы они знали сколько людей, сколько разных специализаций, сил и финансовых влияний нужно что-бы что-то сделать подобное... они бы просто не задавали подобные вопросы.
Я не знаю никого, кто бы делал что-то подобное в одно лицо. Поэтому, уж простите меня, но все объять я не могу, однако есть определенная, конкретная  цель и я прилагаю для этого максимальные усилия.

Оффтоп, stm32h750 cortex_m7

Прошло некоторое время, я изучаю периферию STM32H7 и  armasm в среде Keil(под VrtualBox)
Очень много непонятного, все сильно усугубляется отсутствием полезной документации.

Основной, текущий вопрос -  как исключить повторное добавление подгружаемого файла(include/get). В своем проекте core5277 я это легко решил проверкой дефайнов при использовании avra. Здесь не работает, в официальной документации никакого решения я не увидел. Как же так, кэп?

Мои труды вы можете посмотреть на https://github.com/w5277c/core5277_stm32

А вообще моя текущая задача отгрузить железки одному товарищу, для гаража. Но отгружать железки для гаража без автоматического поиска устройств на шине и экстрасканирования шины для обнаружения новой информации как-то не хочется. С чем и воюю, почти победил при этом все по феншую, прогресс однако. Скоро все будет.

Оффтоп, stm32h750 cortex_m7

Одна из моих задач привела меня к STM32, мне нужны были ресурсы гораздо большие, чем мне могло предоставить семейство AVR.

В настоящее время существует понятие в обществе, что ничего нет лучше STM32 и Си. Так как есть библиотеки, HAL, достаточно серьезные аппаратные реализации, среды разработки и тому подобное.

Просто делюсь свои опытом, сейчас я нахожусь на уровне 'пишу свою прошивку на асме без использования сторонних библиотек' параллельно создаю операционку для STM32(только первые шаги).

Изначально я выбрал стандартную IDE STMicroelectronics со стандартным проектом на Си и стандартным HAL. Я даже реализовал на 80% свою задачу(тестирование SD карт), но на определенном этапе я столкнулся со сложностями, все эти колоссальные труды производителя с аппаратной поддержкой SD привели к результату 3МБ/с, не более, для чипа в 480МГц.
Все попытки выжать большую скорость приводили к сбоям.
Вопрос, зачем нужен хал, который не может интуитивно понятно раскрыть возможности чипа? И каков уровень такого профессионала 'разработавшего HAL'?

Конечно, всегда можно списать, на мои якобы слабые интеллектуальные способности. Но так ли это? За потоком оскорблений от якобы специалистов, часто кроется сама непосредственность и полная зависимость от чужих шаблонов.

Пару дней назад я набрал инструментария для разработки проекта на чистом ассемблере. И о чудо, я стал понимать с чем я имею дело, все встало на свои места, исчез 'высокоуровневый туман', скрывающий от меня примитивный и интуитивно понятный механизм работы с оборудованием на уровне регистров(просто читаем даташит и шлем нахер си).

Я конечно понимаю, что есть фанатики, и среди Си и STM их больше всего. Но я не понимаю, что их делает фанатиками? Способность следовать только шаблонам типа HAL? Он же просто кусок говна написанный индусами, неужели вы это не видите?

UPDATE.

Я вижу многие противники ассемблера не понимают, почему я пишу именно на нем, а не на Си.
1) Как схемотехник я являюсь любителем, как программист - профессионал с большим стажем работы.
И затраты времени при выполнении своих задач зачастую связаны с решением головоломок, а не с кодингом так называемой 'бизнес логики'.
Не сложно написать простую ОС на ассемблере или на Си, сложно реализовать само решение, и на это уходит гораздо больше сил, чем на кодинг на асме или си.
2) Существует предвзятое мнение, что почему-то на ассемблере, особенно при работе с регистрами, нужно постоянно дербанить даташиты и каждый раз заново писать код. Полная чушь, асм код точно также выноситься в отдельные файлы в виде библиотек, а регистры имеют хоть и сокращенное название но запоминаются не хуже названий структур Си. Более того, дербанить даташиты нужно что на Си, что на ассемблере. Если конечно Вы не пишете что-то очень простое, но много.
3) Существует мнение, что кодер на асме умственно отсталый, ведь какой специалист, будет оптимизировать код, при чипах работающих почти на гигагерцах. Может быть не стоит считать людей за идиотов основываясь чисто на своих представлениях о жизни? Лично я пишу на асме, потому, что для меня это более эффективный инструмент, а не потому, что я пытаюсь экономить каждый такт.
Хотя в моей ОС для AVR мне часто приходиться именно экономить память и процессорное время.
4) Главная отличие микроконтроллеров от остальных процессорных решений - периферия, именно для работы с периферией мне и нужны микроконтроллеры. И для того, чтобы знать эту периферию - нужно работать с даташитом и регистрами. Здесь ассемблер подходит идеально.
Не забываем, что кроме МК есть еще и чипсеты(которые, например используются с смартфонах и микрокомпьютерах - отличное решение для бизнес логики)
5) Еще раз, работая на асме вы работаете напрямую с регистрами описанными в даташите. При дебаге вы видите в точности тот код, который написали. Соответственно и выполнение, выполняется ровно то, что вы написали, без влияния компиляторов. Если вы не умеете писать алгоритмы, то да, асм не для вас, и уж точно вы не инженер-программист, максимум техник.

Для понимания, как я 'работаю с регистрами' на ассемблере:


В этом отрывке кода я опрашиваю датчик температуры влажности DHT11 и записываю его показания в память, которая будет считана драйвером моей шины. Видите как мне приходится каждый раз писать код заново оперируя адресами регистров? И я не вижу.

А вот так я инициализирую драйвер DHT11


P.S. Что-то мне подсказывает, что люди выступающие против ассемблера его совершенно не знают, или не способны создавать алгоритмы или просто пишут на контроллерах тот функционал, который я бы вынес на чипсеты.

Посылка

Сегодня получил посылку из Китая после почти двухлетней паузы, мешали другие более важные дела, и всякие лохотроны в виде короновирусов.

Посылка кстати шла через всем известное 'село' (в котором якобы съели летучую мышь) которое размерами с маскву. Так что ждите, завтра у меня начнут расти жабры и вытекать мозг.

В основном заказ был из большого набора SMD резисторов и конденсаторов.
И здесь я хочу обратить ваше внимание на один магазин на площадке Таобао, пример покупки -
https://item.taobao.com/item.htm?spm=a230r.1.14.31.22345daakuQjUS&id=622680368583&ns=1&abbucket=11#detail
Там большой выбор SMD компонент (резисторы, конденсаторы) и адекватная цена.
Пришло все в аккуратных пакетиках с наклеечками с полной информацией, чего боле?

Кроме этого я заказал новый датчики температуры и влажности(DHT11), IR приемник и передатчик, пару модулей LORA, логический анализатор на 16 портов и dev board для STM32H7XX для реализации проекта(по работе) для тестирования SD карт.

И еще кучу мелочи, например, пришла мелочевка, которой мне не хватало для своего счетчика Гейгера.

А еще в пути новые платы устройств которые будут работать на базе core5277 и еще кое-какие компоненты, например недорогой но качественный датчик CO2.
Эти устройства, после разработки прошивки и тестирования пойдут в реализацию, хватит сидеть ровно на одном месте.

P.S. и да, я не вижу дешевых STM на столько, чтобы был смысл уходить с ATmega8,88 и подобных.