Category: electronics

Como projetar placa no KiCAD para facilitar a montagem em empresa externa

Você já viu aqui algumas dicas de como preparar seu projeto para fabricar a PCB.

Felizmente seu projeto deu certo e o cliente pediu milhares de placas! “Ôh, e agora? Quem poderá montar minhas placas?” Existem várias empresas que podem montar os componentes na sua placa, mas será que você desenhou sua placa pensando nos detalhes para montagem numa empresa externa?

Neste artigo você encontrará várias dicas de como preparar seu projeto pensando na montagem externa:
http://rheingoldheavy.com/design-assembly-kicad/

Creating a ZVS high voltage circuit

This site has the ZVS schematics and explanation:

http://wiki.4hv.org/index.php/Flyback_transformer

There are many tips in the forum, but it is not accessible anymore, fortunately it is archived:

https://web.archive.org/web/20080218130627/http://old.4hv.org/index.php?board=18;action=display;threadid=5667;start=msg58867

To discover the Flyback pinout find this tutorial:
http://lifters.online.fr/lifters/labhvps/tht.htm

I need to create a high voltage circuit to implement an electrostatic painting. It will be used to coat a virgin PCB with photosensible ink.

Update: I will start with a more simple and less powerful driver using the CI 555 : http://www.eleccircuit.com/efficient-flyback-driver-circuit-by-ic-555-irf510/. These ZVS are ways over the lethal current (10mA) your heart will support.

Listagem de algumas empresas de fabricação de PCB no Brasil

Esta é uma lista com as principais empresas que fabricam PCB no Brasil:

Circuibras:
http://www.circuibras.com.br

Digicart:
http://www.digicart.com.br

Griffus:
http://www.griffuspcb.com.br/fabricacao-placas-circuito-impresso.html

Lauquen:
http://www.lauquen.com.br

Micropress:
http://www.micropress.com.br

PCB Brasil:
http://www.pcbbrasil.com

Stick:
http://www.stick.ind.br

Tecnel:
http://www.tecneleletronica.com.br

Caso você conheça outras empresas, poste seu comentário para que possamos atualizar esta lista.

Como usar o modulo SparkCore – A Saga

Eu fui um dos muitos (mais de 5500) patrocinadores do projeto SparkCore no Kickstarter e fique muito ansioso para que o módulo chegasse logo.

Depois de uma longa espera meu SparkCore chegou e para minha surpresa ele não funcionou como o esperado. Assim que eu liguei ele acendeu na cor magenta (LEDs azul e vermelho acesos) e o aplicativo para Android não reconheceu meu dispositivo.

Tentei todas as dicas do site: https://community.spark.io/t/spark-core-troubleshooting-guide-spark-team/696, mas ele definitivamente não entrava no modo DFU e a função de restaurar configurações de fábrica não dava nenhum resultado. Contactei o pessoal do SparkLab e eles disseram que minha placa era uma das 1% que por algum motivo falhavam durante a produção.

Foi então que resolvi fazer alguma coisa, compilei o firmware deles a partir do código fonte e gravei usando uma placa STM32F4Discovery (st-linkv2) como programador SWD usando o OpenOCD, como expliquei aqui: https://acassis.wordpress.com/2014/01/19/flashing-spark-core-when-dfu-fails/

Este deu algum resultado, mas foi então que meu amigo David Sidrane sugeriu que eu gravasse o bootloader DFU no STM32 e a partir dele gravasse a memória serial flash externa.
Para entrar em modo DFU você deve pressionar ao mesmo tempo os botões MODE e RST, então solte o botão RST e mantenha o MODE pressionado por 3 segundos. E assim eu fiz:

$sudo dfu-util  -d 1d50:607f -a 0 -s 0x08000000 -D bootloader.bin
$sudo dfu-util  -d 1d50:607f -a 0 -s 0x08005000:leave -D core-firmware.bin

Com o bootloader gravado resolvi fazer um backup do conteúdo original da serial flash externa. Para minha surpresa ela estava limpa (cheia de 0xFF) indicando que estivesse formatada. Como eu não formatei, acredito que durante o processo de gravação do firmware na fábrica ela não chegou a ser gravada. Contactei o SparkLab novamente para explicar o problema e eles decidiram me enviar uma placa substituta, mas eu não precisaria mandar de volta a placa que estava comigo.

Após fazer o “backup” resolvi gravar o firmware na serial flash externa e criar os certificados, como explicado nesta página: https://community.spark.io/t/troubleshooting-my-core-is-flashing-yellow-red-lights-after-it-connects-to-wifi/627/2

Criando as chaves do certificado:

openssl genrsa -out core.pem 1024
openssl rsa -in core.pem -pubout -out core_public.pem
openssl rsa -in core.pem -outform DER -out core_private.der

Gravar o firmware na serial flash:

$sudo dfu-util -d 1d50:607f -a 1 -s 0x00020000 -D factory_firmware.bin

Gravar o certificado:

$ sudo dfu-util -d 1d50:607f -a 1 -s 0x00002000 -v -D core_private.der

Gravar a chave pública do servidor:

$ wget https://s3.amazonaws.com/spark-website/cloud_public.der
$ sudo dfu-util -d 1d50:607f -a 1 -s 0x00001000 -v -D cloud_public.der

Só precisei enviar minha chave pública (core_public.pem) e o ID do meu SparkCore para hello@spark.io e depois disso consegui conectar meu roteador wireless e criar as aplicações para a SparkCore.

Nota: Para ler o ID do seu SparkCore você deve entrar em “Listening Mode”, pressione o botão MODE por 3 segundos até o LED do seu módulo ficar azul. Use o minicom ou outro programa configurado para 9600 8N1 e pressione ‘i’ para exibir seu ID.

Replica do AGC

O computador usado no projeto Apollo era fascinante, mas comparado com a tecnologia atual ele é inferior a um microcontrolador de alguns centavos de dolares. Em termos comparativos ele seria equivalente a um microcontrolador com 2KB de RAM e 32KB de Flash (embora a ROM dele tivesse 36KB e as palavras fossem de 16bits).

É interessante ver que alguém criou uma réplica do computador AGC original:
http://agcreplica.outel.org

Você também encontrará muita informação e um emulador do AGC neste site:
http://www.ibiblio.org/apollo/

Ativando o Single Sequence ou Single Shot no meu osciloscopio

Sempre que tenho que ativar o Single Shot no meu osciloscópio (Uni-T UTD2062CE) gasto algum tempo até achar a configuração certa, apesar de ser algo teoricamente simples, a quantidade de opções atrapalha.

Para evitar ter que perder tempo novamente com isso, resolvi documentar os passos aqui no meu blog, assim quando precisar vai ser mais fácil olhar aqui.

Então vamos lá:

1) TRIGGER -> MENU
2) Type = Edge (F1)
3) Source = CH1 (ou o canal que você estiver interessado)
4) Slope = Rise (rampa positiva ou Fall para negativa ou Rise/Fall para ambas)
5) Mode = Single (apenas uma single sequence)
6) Coupling = DC
7) CURSOR
8) Type = Time
9) SELECT
10) Move SELECT Knob to adjust Cursor's end;
11) SELECT
12) Move SELECT Knob to adjust Cursor's start;
13 RUN/STOP