Pastilda: resultados



Como é organizado o contrato de fabricação de eletrônicos nos Estados Unidos?
É possível capitalizar no crowdfunding?
Software que mata hardware. Mito ou realidade?
Os projetos de código aberto têm vida?

Tudo isso na parte final da história do detetive sobre o desenvolvimento de Pastilda, um gerente de hardware de senha de código aberto.

O que mais é Pastilda?
Pastilda é um gerenciador de senhas de hardware de código aberto. O dispositivo permite armazenar e inserir senhas sem o uso de software (inclusive na linha de comando e no BIOS'e). O banco de dados é criado usando o KeePass e baixado para o dispositivo no formato .kbdx. O dispositivo se conecta ao teclado do computador e liga quando você digita a combinação "Ctrl + Shift + ~". Por isso, o projeto foi chamado de "Pastilda" (da senha + tilda "~").

Para obter mais informações sobre a idéia e a implementação técnica, consulte Pastilda, um gerenciador de senhas de hardware aberto .

Após o desenvolvimento e a produção de um lote experimental, tentamos encontrar clientes e compradores na Rússia, mas as coisas não tiveram mais discussões. Decidimos arrecadar fundos através do crowdfunding e instalamos a plataforma Crowd Supply , especializada em projetos de hardware de código aberto. Estabelecemos uma meta e, como resultado, a ultrapassamos quase três vezes. Como isso aconteceu? Leia Pastilda: Niche Crowdfunding
Restava produzir e entregar o dispositivo aos investidores.

Iniciar produção


No momento do lançamento do primeiro lote, tínhamos pedidos para 182 Pastilds de 149 investidores. Os pedidos eram de todo o mundo:



Estatísticas atuais do país:
  1. EUA: 143 unid.
  2. Alemanha: 64 unid.
  3. Austrália: 14 unid.
  4. França: 14 unid.
  5. Rússia: 14 unid.
  6. Canadá: 13 unid.
  7. Suíça: 13 unid.
  8. Grã-Bretanha: 13 unid.
  9. Holanda: 9 unid.
  10. Espanha: 8 unid.
  11. Áustria: 5 unid.
  12. Dinamarca: 5 unid.
  13. Singapura: 4 unid.
  14. China: 3 unid.
  15. Israel: 3 unid.
  16. Bélgica: 2 unid.
  17. Finlândia: 2 unid.
  18. Irlanda: 2 unid.
  19. Itália: 2 unid.
  20. Japão: 2 unid.
  21. Colômbia: 1 pc.
  22. República Tcheca: 1 pc.
  23. Coréia: 1 pc
  24. Macedônia: 1 pc.
  25. Malásia: 1 pc.
  26. Nova Zelândia: 1 pc.
  27. Noruega: 1 pc.
  28. Romênia: 1 pc.
  29. Eslovênia: 1 pc.
  30. África do Sul: 1 pc.
  31. Vietnã: 1 pc.


Curiosamente, apesar de nossos artigos em russo, existem apenas 14 pedidos da Rússia. Pedimos 324 Pastilds para produção, para tal quantia havia fundos arrecadados suficientes.
Devido às especificidades do dispositivo, aproveitamos os conselhos da Crowd Supply e colocamos a produção nos EUA na fábrica da Macrofab . Um pouco sobre como tudo está organizado lá. Nós vamos ao site e criamos um pedido. Carregamos ODB ++ , por dentro há tudo sobre o nosso dispositivo: camadas da placa, uma lista de componentes (lista de materiais ou lista técnica), sua organização, etc. Em seguida, você precisa comparar sua lista técnica com os componentes disponíveis no armazém e também confirmar a localização correta dos componentes na parte superior e inferior da placa.



Depois disso, obtemos o custo e o tempo de produção para todas as partes. O preço de custo é descrito em detalhes: quanto custa mão de obra, quantos componentes, quantas placas de circuito impresso, etc.:



Também está sendo construído um gráfico que explica a queda no custo quando o lote cresce:



A fábrica é levada não apenas para montagem, mas também para testar dispositivos. Para fazer isso, você precisa pintar a metodologia de teste e firmware em uma seção especial. O custo do firmware é de cerca de US $ 1 por minuto.

A produção de um lote de 324 peças levou cerca de 8 semanas. 10% das placas não passaram no teste com um diagnóstico pouco claro de um “carregador de inicialização que está funcionando incorretamente”. A comunicação era extremamente lenta, as perdas eram insignificantes; portanto, simplesmente ignoramos esse problema e baixamos esses 10% para sucata. Lembre-se deste momento. As taxas de trabalho foram enviadas aos investidores, nenhuma reclamação foi recebida.

As vendas continuaram, nossa Pastilda apareceu na Mouser com uma margem feroz de US $ 125. Quando as placas foram vendidas, decidimos lançar outro pequeno lote de 55 dispositivos. Desta vez, a produção levou cerca de 7 semanas e os testes foram conduzidos pela equipe da Crowd Supply.

Aqui está um gráfico explicando a cronologia dos pedidos, remessa e produção do Pastild:



A produção é mostrada por traços condicionais.

Algo deu errado


Depois de algum tempo, descobrimos que alguns dos novos partidos tinham problemas. 10 Pastilds passaram no teste e os 45 restantes não. Os dispositivos estão piscando conforme necessário, o LED pisca, mas o teclado conectado não funciona. Problema na fábrica? Mãos tortas de um testador? Por vários meses, tentamos resolver o problema remotamente. Como não obtivemos sucesso, pedimos que nos enviasse algumas peças para pesquisa. Pegamos as amostras e descobrimos: um erro entrou no circuito. Aqui:



Na saída do conversor linear D4: 5 TPS76333 , a tensão é de cerca de 4V em vez de 3,3V. A capacidade de saída do C13 é muito pequena. O fabricante solicita pelo menos 4,7 microfarads e para nós - 1 microfarads. Em teoria, isso pode levar à excitação da fonte e a um aumento na tensão de saída. Depois de substituir o capacitor por 10 microfarads, a energia pareceu retornar ao normal, mas as placas não funcionaram corretamente.
É hora de "jogar por cento"
Isso significa remover o microcontrolador da placa e colocar em seu lugar um novo ou retirado de um doador. Nesse caso, jogamos o MK do quadro desde o primeiro lote. Ganhou.

Conclusão: devido à capacidade incorreta, o poder do MK aumenta, o que o danifica. O STM32 deve manter essa tensão? A documentação diz que a tensão máxima sem danificar o chip é de 4V, ou seja, andamos pela borda. Mas por que esse problema não apareceu antes? Informamos nossos colegas nos EUA sobre os resultados e solicitamos comparar as marcações dos controladores de diferentes lotes. As marcações são diferentes:



O que pode ser aprendido com a marcação? De acordo com o artigo e as informações da descrição no microcontrolador, podemos dizer o seguinte:
O primeiro lote é a China, fabricada na 19ª semana de 2007 ou 2017. Em vez de 2017, eles começaram a produzir a série F4 em 2011. Revisão do controlador - 2.

O segundo lote são as Filipinas, realizadas na semana 25 de 2017. Revisão do controlador - Y.
Os microcontroladores de revisão Y das Filipinas parecem ser menos resistentes ao aumento da nutrição do que os controladores da revisão 2 da China. Decidimos enviar todos os dispositivos de volta para a Macrofab, solicitando que eles realizassem suas pesquisas e trocassem os microcontroladores e capacitores em todas as placas.

Macrofab lidera a investigação


Lá, um engenheiro abordou o assunto, que usava um osciloscópio e um voltímetro, e encontrou nossos problemas. Aqui está o que ele nos disse:

  1. 75% das placas funcionam, isso elimina problemas com as placas ou erros nos arquivos Gerber
  2. O posicionamento (rotação) dos componentes está em ordem.
  3. Não há queixas sobre a qualidade da solda.
  4. Medimos a tensão de alimentação de 3.3V e 5V com um multímetro, a tensão é normal.
  5. Verificamos a frequência do relógio de 25 MHz.
  6. A maioria das placas congela durante a operação. Uma causa possível é um microcontrolador defeituoso ou flutuações de energia.
  7. A medição de potência de 3,3V pelo osciloscópio mostrou uma tensão de 4,1V durante a inicialização em todas as placas. Parece que o regulador não é capaz de manter a tensão de alimentação.
  8. Talvez alguns controladores sejam resistentes ao aumento da nutrição e outros não.
  9. Na saída do regulador, de acordo com a Folha de Dados, deve haver um mínimo de 4,7 μF. A julgar pelo esquema, a capacitância na saída de D4 TPS76333 não é suficiente, C13 é designado como 1 μF. Substituímos o capacitor por 10 μF e vemos como isso afeta a estabilidade
  10. A substituição do capacitor tornou a placa não operacional operacional por um tempo e, em seguida, travou novamente.
  11. A tensão de alimentação parece mais ruidosa do que o esperado. Recomendamos resolver esse problema antes da próxima produção.

O problema foi confirmado, provavelmente estamos lidando com erros de design. Não havia perguntas sobre a produção, elas não podiam ajudar. As taxas retornaram ao suprimento da Crowd e de lá foram enviadas para nós.

A investigação é conduzida pelo terceiro pino


Finalmente, temos 41 pranchas em nossas mãos. Bem, vamos consertar agora! A primeira coisa em todas as placas foi soldar a capacitância C13 a 10 uF. Começamos a testar todas as placas por sua vez. Temos vários comportamentos no quadro:

  • ele inicia, mas trava depois de um tempo, o teclado não detecta
  • não começa, não há sinais de vida
  • quando ligado, começa a piscar rapidamente
  • Liga, pisca, trava, o microcontrolador aquece

Não há placas de trabalho. Medimos a fonte de alimentação de 3,3V do MK e lá - 4 volts! De repente, percebemos que a substituição do capacitor na fonte não resolve o problema do aumento da tensão. Olhamos para o osciloscópio, estudamos o consumo atual, mudamos a fonte para LM1117-3.3,



remova os filtros de energia e terra, mas nada muda - a energia ainda salta para 4V.



Depois de ligar por algum tempo, a voltagem é normal, sem interferência, sem aumento de voltagem e depois muda abruptamente para 4V e dura indefinidamente.

Um comportamento anormal de energia foi detectado na inicialização: a energia é modulada por pulsos de ~ 100ms. Havia uma hipótese: a fonte de energia não tem nada a ver com isso, o próprio microcontrolador estraga de alguma forma o barramento de força. Talvez 5V da porta USB "flua" para o microcontrolador através da perna VBUS. No firmware de Pastilda, essa perna não é inicializada de forma alguma. Tentamos forçar a inicialização do pé na entrada:



Estamos no caminho certo! A energia é normal, embora não seja imediata - afinal, o carregador de inicialização funciona primeiro para nós. Nós vamos lá.

O carregador OpenBLT usado por padrão inicializa USART1, que atravessa a perna do VBUS. E este é Tx, ou seja, o pé é a saída. Uma saída à qual a energia externa vem diretamente de uma porta USB. Examinamos o gerenciador de inicialização e removemos a inicialização do USART1 - a energia tornou-se normal. Isto é uma vitória!

Para microcontroladores STM32 com fonte de alimentação de 3,3V, algumas pernas são resistentes a sinais TTL de 5V, na descrição são designadas como FT (tolerância a cinco volts). Vamos refrescar a memória dessas pernas do FT:

  • Esta propriedade se aplica ao pé somente se estiver configurado como uma entrada.
  • A tensão máxima na perna é de 5,5V.
  • A tensão na perna não pode exceder a fonte de alimentação mais baixa do MK em mais de 3,6V.

Aqui está o diagrama estrutural das "pernas":



Por que o pé sintonizado na saída não pode ser FT?
Pode-se observar que o buffer de saída contém dois transistores de efeito de campo , o braço superior é o canal P e o inferior é o canal N. Embora os transistores no diagrama de blocos acima sejam mostrados sem contra-diodos, você pode ter certeza de que eles estão lá. De fato, os transistores são assim:



Se a tensão no transistor do canal D exceder a tensão na Fonte (Fonte), uma corrente fluirá através desse diodo até que as tensões se igualem.

Nosso caso de alimentação de MK via LDO a partir de USB é considerado separadamente na AN4899 . A energia de 5V deve chegar ao pé do VBus somente quando o microcontrolador já estiver energizado. Fazemos assim:



O que acabou causando os problemas de produção?
  1. O programa do microcontrolador ajustou as pernas contra si mesmo.
  2. Por esse motivo, a energia aumentou e o controlador foi danificado.
  3. Erros de hardware não se manifestaram.


Agora sabemos quantos erros podem ser cometidos em uma placa com três conectores e um microcontrolador (quantos você desejar).
Temos três deles: dois hardware e um software. Levamos um ano para descobrir as verdadeiras causas do problema da "produção".

Economia


Vamos ver quanto ganhamos neste projeto.

Receitas por meio da Multidão - $ 14.610. Veja como as despesas foram distribuídas:



A maior parte da produção esperada de placas de circuito impresso. Tudo o resto: a comissão do site, taxas para transferências de dinheiro, entrega e montagem de mercadorias no valor de 24%. A plataforma recebeu 10% da comissão em todos os pagamentos. Cobramos todas as despesas do pessoal do site, para que o dinheiro nunca chegasse à nossa conta.

No último artigo, revelamos a complexidade do desenvolvimento - cerca de 1840 horas. Imagine que este projeto foi realizado a taxas comerciais. Em seguida, os custos de desenvolvimento podem ser estimados em cerca de US $ 100.000.

Para recuperar o desenvolvimento, precisamos vender cerca de 3.000 Pastilds.

Conclusão


Projetos como o Pastilda nascem no coração dos desenvolvedores e são implementados de maneira contrária ao senso comum.
Essa abordagem trabalha com projetos de hobby, onde o principal objetivo é experimentar coisas novas. Mas quando somos abordados em projetos comerciais, a primeira coisa que fazemos é realizar uma análise da eficiência econômica. Se a economia não convergir, desencorajamos o lançamento do projeto, a partir do estágio de desenvolvimento do ToR. Nós até tivemos a ideia de um novo artigo. Algo como "10 razões pelas quais você NÃO precisa desenvolver seu dispositivo". Tópico quente?

O que vem a seguir?


A principal conclusão que fizemos durante o trabalho neste projeto: na versão atual, Pastilda é adequado apenas para uso pessoal. Se queremos que o dispositivo resolva problemas no nível comercial - uma peça de hardware não é suficiente, precisamos construir um sistema.

Existem as seguintes idéias:

  1. Combine armazenamento de senha físico e de servidor (ou nuvem). Condicionalmente, divida a senha em duas partes. A primeira parte seria armazenada em uma chave física (como está implementada agora), a segunda no momento da digitação da senha foi solicitada ao servidor e transmitida à chave, por exemplo, via Wi-Fi.
  2. Semelhante à primeira opção, mas a senha não está armazenada na chave, mas a chave de criptografia privada que descriptografará a senha que vem do servidor via Wi-Fi (a senha é pré-criptografada com uma chave diferente).

Agradecemos os comentários de colegas do setor de segurança da informação.

Anúncio para usuários


É necessário atualizar o gerenciador de inicialização Pastilda para evitar danos ao MK. O carregador de inicialização atualizado está no repositório . Há também uma instrução sobre como exibi-lo em Pastilda. A soldagem de um capacitor para operação estável é possível, mas não é necessária.

Mais uma vez, pedimos desculpas pelo atraso dos compradores que ainda aguardam seus Pastilds. Todos os 40 Pastilds restantes voarão até você nas próximas semanas.

Inicialize os pinos com sabedoria, cuide das saídas desde tenra idade. E, claro, use senhas complexas.

Source: https://habr.com/ru/post/pt466533/


All Articles