Month: April 2014

Flashed Cyanogen back to my phone

It is strange, before installing Android KitKat (4.4.2) on my Xperia S I was using CyanogenMod (not sure about exact version should be CM9.1 stable or CM10 experimental) and it was working great.

Some issues I faced using native (AOSP) KitKat:

– Volume Up/Down keys doesn’t wake up the system;
– The toggle LED flashlight and the toggle Mobile data doesn’t apper in the Notification drawer;
– The dial icon doesn’t start with a numeric keypad like in CM;
– Voice recorder software doesn’t work, it doesn’t record any audio.

Then today I decided to return to CyanogenMod, then I notice there are already these files on my interface /sdcard partition:

FXP203-cm-10-20130119-UNOFFICIAL-nozomi.zip
gapps-jb-20121011-signed.zip

Then I decided to install these files using ClockWorkMod recovery that was already flashed on my phone.

Then when I noticed that after pressing the Power button the system doesn’t start. Well, the FreeXperia logo appears and then the screen becomes dark. I noticed that if I plug the charger then it started the charging screen and when pressing the Power button now Android starts correctly.

I searched for an option on Android Setup to make VolUp/VolDown wake up the screen, but nothing appears, at least the button used on Xperia S to take pictures is able to wake up. I’m worried about wake-up because some friends one mine who used to have Nexus 1 phone faced some issues with “wear” of switch power button, then I prefer to have other options and avoid forcing only the same button all the time.

I double checked the files inside /system/usr/keylayout/ and it was correctly (114 VOLUME_DOWN and 115 VOLUME_UP should wake up the system).

Then I installed rvoix_mod_kaefert_v2.apk but it doesn’t record voice callings. I can’t recall what I did in the past to get it working…

Normally I also document everything, but I forgot to document what CyanogenMod version I installed last time and what I modified to get everything working correctly.

Update: Link for the FreeXperia: http://fxpblog.co/qualcomm-scorpion-family/sony-xperia-s/

Update 2: The issue of using Volume keys to wake up Android and the buttons at Notification drawer were just a configuration on Android . To enable Volume keys to wake-up go to: Settings -> Display -> Volume rocker wake (Pressing the volume rocker up/down will wake the device). To show the LED flashlight and Mobile data control icons at Notification Drawer go to: Settings -> Notification drawer -> Widget buttons and activate “Toggle LED flashlight” and “Toggle Mobile data”.

Termos tecnicos sobre CNC (Dicionario do CNC)

ACME Screw – é o mesmo que fuso trapezoidal, ao contrário de um fuso rosqueado comum que possui uma rosca triangular, no fuso trapezoidal a rosca é em formato de trapézio, assim o atríto com a castanha é menor.

Ballnut – é o mesmo que castanha, ela é uma espécie de “porca de parafuso” do fuso trapezoidal/fuso esfera que desloca de forma linear com a rotação do fuso.

Backlash – uma folga que pode existir em fusos (comum e trapezoidal) ou em polias que causam problemas quando o motor inverte o sentido de rotação. Um CNC com backlash terá dificuldades em fazer cortes em forma de círculo, o corte sairá oval ao invés de circular. Existem formas de reduzir o backlash nos fusos e alguns software tentam compensar o backlash, mas a melhor opção é usar um fuso de esfera de qualidade, onde o backlash é quase zero (desprezível).

Step-over – quando o CNC está fresando uma área ele precisa passar novamente nas adjacências (bordas) do local onde ele já havia passado anteriormente para garantir que não sobrará material sem fresar na peça. Esta pequena sobreposição é chamada de “Step-over”.

Spindle – Motor que controla a rotação da broca. Em CNC amadores o Spindle pode ser substituído por retíficas manuais ou tupias.

VFD (Variable Frequency Drive) – normalmente trata-se de um inversor de frequência que controla a velocidade do motor (spindle) de rotação da broca.

Para um dicionário mais completo acesse: http://www.cnccookbook.com/MTCNCDictionary.htm

Escolhendo o motor de passo para seu CNC

Nem todo mundo se atenta aos detalhes do motor de passo para usar num CNC, acreditando que o principal (ou único) fator importante é o torque do motor.

A escolha de um motor inadequado pode gerar perdas de passos e/ou redução drástica de torque em velocidades mais altas.

Se você quiser saber mais sobre quais são os fatores limitam a velocidade do motor de passo, leia esta página wiki do LinuxCNC:
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?Stepper_Motor_Speed_Limitations

Felizmente encontrei estas dicas antes de comprar o motor, do contrário teria comprado um motor inadequado.

Se você quiser saber mais sobre motores de passo:
http://reprap.org/wiki/Stepper_motor
http://homepage.cs.uiowa.edu/~jones/step/
http://hobbymilling.com/choosing-a-stepper-motor-for-your-cnc-machine/
http://www.nmbtc.com/step-motors/engineering/torque-and-speed-relationship.html
https://www.selene.co/Blog/2011/07/stepper-motor-voltages-explained/

Update: Este site ensina como descobrir a pinagem do motor de passo, caso você não tenha o datasheet do seu motor: http://techref.massmind.org/techref/io/stepper/wires.htm

Update 2: Este site calcula as revoluções por segundo baseado na corrente, indutância e tensão do motor de passo: http://www.daycounter.com/Calculators/Stepper-Motor-Calculator.phtml

Compilando Kicad a partir do codigo fonte

Tentei instalar a versão mais nova do Kicad a partir do repositório do Ubuntu:
https://code.launchpad.net/~js-reynaud/+archive/ppa-kicad/

Mas o programa pcbnew travava por causa de um BUG no suporte a script python:
https://bugs.launchpad.net/kicad/+bug/1299217

Então resolvi compilar a partir do código fonte seguindo estas instruções:
http://www.kicad-pcb.org/display/DEV/Building+KiCad+on+Linux

Infelizmente as instruções não funcionam como descrito no site, então seguem os passos que usei:

$ sudo apt-get install bzr bzrtools build-essential checkinstall cmake doxygen zlib1g-dev
$ sudo apt-get build-dep kicad

$ bzr whoami "Seu Nome <nome@site.com>"

$ mkdir -p ~/build/kicad
$ cd ~/build/kicad

$ bzr checkout lp:kicad kicad.bzr
$ cd kicad.bzr
$ mkdir build
$ cd build

$ cmake -DKICAD_STABLE_VERSION=ON -DKICAD_SCRIPTING_WXPYTHON=OFF ../

$ make -j 4

$ sudo ckeckinstall

$ cd ~/build/kicad
$ bzr branch lp:~kicad-product-committers/kicad/library kicad-library.bzr

$ cd kicad-library.bzr
$ mkdir build 
$ cd build/ 
$ cmake ../ 
$ sudo checkinstall

Chegou a hora de mandar fabricar a placa, como fazer?

Então você desenvolveu sua placa no KiCAD e deseja envia-la para alguma empresa fabricar o PCB, certo?

Como já comentei num outro post (link), existem várias empresas que fabricam PCB pra você. Você só precisa escolher a que melhor atende seus requisitos de preço e qualidade.

Se você ainda está na fase de protótipo, talvez não seja interessante gastar muito dinheiro com uma placa PCB de excelente qualidade, neste caso você pode optar pelo DirtPCBs. Por apenas $12 USD eles te entregam 10 (dez) placas de 5 x 5cm, com frete gratuíto, devidamente testadas, porém com acabamento um pouco inferior. Para mais detalhes clique aqui.

Infelizmente as empresas não abrirão seu arquivo .pcb ou .kicad_pcb para fabricar sua placa, você precisa converte-la num formato padrão da indústria, chamado de Gerber Format.

Felizmente alguém já documentou os passos necessários para enviar sua placa para fabricação no SeeedSudio Fusion:

http://koblents.com/Ches/Original-Work/46-KiCAD—Seeedstudio-Fusion–Getting-Started/

O link para o SeeedStudio Fusion é este aqui:

http://www.seeedstudio.com/service/index.php?r=site/pcbService

Esta dica também servirá para o DirtPCBs e para outras empresas que fabricam PCBs.

Update: Nos comentários do HackADay os usuários deram outras sugestões de empresas que fabricam pelo mesmo preço do DirtPCBs e com qualidade melhor:

Preço $9.9 USD por 10 placas de 5x5cm:
http://imall.iteadstudio.com/open-pcb/pcb-prototyping.html

Preço $9.9 USD por 10 placas de 5x5cm com frete gratuíto:
http://www.elecfreaks.com/store/pcb-service-c-39.html

Update2: Ian do DangerousPrototypes revelou que o DirtyPCBs era apenas uma piada interna, mas que alguém resolveu postar como real no site HackADay! Hahaha, sacanagem!

Getting started to OBD-II using OBDSim

If you are getting started to OBD-II protocol used for cars’ diagnostic, then you need to know the OBDSim simulator. If you want to know more about OBD-II I have posted some links here: http://acassis.tumblr.com/post/81403602911/mais-informacoes-sobre-obd-ii

It is different from others OBD-II simulators because you can emulate the ELM327 dongle interface and the car data. In fact it is a little confuse at start, but it is because this software is very powerful.

The easy way to get started is using the fltk GUI, this way:

$ obdsim -g Cycle -g gui_fltk -g Cycle
SimPort name: /dev/pts/6
Successfully initialised obdsim, entering main loop

Please note it creates a virtual serial port (tty) to receive commands (using ELM327 standard) then use “minicom” or other serial console software to open /dev/pts/6 (I tested it configured to 115200 8n1).

Now you can send some commands:

>ATZ                                                                            
ELM327 v1.3a OBDGPSLogger                                                       
>ATH1                                                                           
OK                                                                              
>010D                                                                           
7E8 03 41 0D 09 09

The above command will read the “Vehicle Speed” you defined in the gui_fltk interface. Just click on the pointer of Vehicle Speed and move it, then execute the “010D” to read the new speed.