Да, именно с нашими и происходят подобные вещи.
Ну, тогда скажу по не очень большому, но опыту, 80% заказчиков отлетают после введения весьма честных условий, которые считаются пробразные для обоих сторон.
В основном, получалось, в процессе общения, что человек ожидает чуда за небольшие деньги, при этом всецело дает понять что "о как так! да не может такого быть... я не знал", хотя он реально полностью осведомлен о затратной части его решения.
Иными словами человек УЖЕ тебя наебывает, хотя и делает это кося под дурака. В бизнесе дураков нет, как бы.
Что делать если очень хочется (нужно делать так как нужны деньги)
1. Вести ВСЕ обсуждения ТЗ и их приветнивных правок ДО исполнения.
2. Четко определять границы конечности. Красное-это красное, а то что "вы сделали UART интерфейс, но у нас ведь не совсем UART на нашем приборе..да и вообще - откуда мы можем знать какой у нас интерфейс" - это как бы уже третье.
3. Если заказчик не может выразить четко что именно ему надо в данной фиче - лучше обсуждать все другое кроме этой фичи:
- нам в общем надо бы сюда дисплей
- какой?
- ну на 3 дюйма
- эм..ясно, ну давайте тогда пока ограничимся выводом по serial в putty на комп, а там подумаем.
То есть вывод инфы как бы есть, но он ограничен. Не Вами, а дибильными ответами заказчика, тут нечего спорить или тем более предлагать, ибо вы скажете вот такую модель, Заказчик залупится купит в Китае какие то похожие-левые...виноваты будете Вы
3. Тестовые версии показывать на своем купленом железе. Я не думаю что Вы делаете какие то высокотехнологичные девайсы, поэтому не поскупитесь и купите нужные запчасти для теста. Сделайте и отдайте ему демо версию, она естессно должна быть рабочей, но с лимитом запусков (как пример). Это будет уже безпрецентдентный повод оплатить работу, или если функционал не полный - часть денег. Кстати, не знаю как у Вас, а у меня первый платеж и показ раотоспособности в большинстве случаев позитивно влиял на дальнейшие взаимоотношения.
Заказчик видит рабочую лимитированную версию, вы видите деньги и платежеспособность (заодно и озоту отдачи денег самим заказчиком)
4. О защите.
Если заказчик не уточняет тип распостранения вашей прошивки и методы ее использования, я бы делал так:
- самомодифицирующийся код (привязка к ID МК например), защита от копирования
- кастомный бутлоадер (ну мы же не о AVR...да? или нет? О_о)
- заливка прошивки через свой девайс (плюсы, можно давать заказчику версии прошивальщика на 10/20/1000/N количества девайсов, причем это не займет у вас много времени)
Данные подходы с высокой вероятностью защитят Вас от несанкционированного распостранения изменения считывания прошивки (ну, если эти методы адекватно реализованы)
5. (ИМХО) Несуществует "серебряной пули" в таких делах, тут все зависит насколько Вы осведомлены в происходящем, и насколько у Вас развита мания "меня хотят наебать". Просто, может выйти, что время ограничено, и нет времени на реализацию всех этих защитных средств, тогда, конечно, нужно вести разработку и показ полностью изолированно.