BeagleBoard – O cachorrinho open-source

- por Sergio Prado

Categorias: Beagleboard-xM, Hardware Tags: , ,

A BeagleBoard é um projeto desenvolvido pela Texas Instruments em conjunto com a Digi-Key com os objetivos de demonstrar o uso do system-on-a-chip OMAP3530 e servir de plataforma de aprendizado em sistemas embarcados através do modelo de desenvolvimento open source. Enquanto que a TI é a responsável pelo projeto, a Digi-key seria a responsável pela distribuição.

A plataforma é totalmente aberta, liberada sob a licença Creative Commons SharedAlike. Com já mais de 2 anos de existência, ela tem cumprido bem seu objetivo de ensinar open hardware e open software no mundo inteiro. A página do projeto pode ser encontrada em http://beagleboard.org/.

Enquanto escrevo este artigo, existem cerca de 210 projetos desenvolvidos pela comunidade! Estes projetos incluem alguns portes do sistema operacional Android, controlador de câmera digital, sistema de segurança residencial, sistema multimedia para veículos, streaming de video, media center, diversos tipos de robôs, etc. Mais um indicativo das mudanças sociais e econômicas trazidas pelo movimento open source. Uma lista com todos os projetos pode ser acessada em http://beagleboard.org/project. Alguns vídeos com projetos interessantes podem ser encontrados aqui e aqui.

Das palavras de um dos responsáveis pelo projeto, Jason Kridner:

“The Beagle Board is intended for those wanting to learn about building embedded systems and [who] don’t need all of the support or costs associated with the typical development platform. Once you are done experimenting and need a silicon evaluation platform that will help you make a product, platforms with software compatibility are available.”

HARDWARE

A placa é pequena, medindo aproximadamente 7,5 x 7,5 cm, e já passou por algumas revisões desde seu lançamento. A que tenho em mãos é a Rev C4. 


Conforme já mencionei, a BeagleBoard é baseada no system-on-a-chip OMAP3530 da TI, um dos primeiros SOCs baseados no núcleo ARM Cortex-A8. Trabalhando a 720MHz, ainda possui integrado um DSP de 430MHz e um acelerador gráfico 2D/3D, que junto com uma placa gráfica onboard que provê saídas DVI e S-Video, transforma o kit em uma plataforma ideal para aplicações multimedia, com capacidade para reproduzir vídeos em HD a 720p.

Esta revisão possui 256MB de memória flash NAND e 256MB de DDR SDRAM, que junto com o OMAP3530, são montados na placa usando a técnica de Package-on-Package, onde um chip é montado sob o outro:


Interfaces de I/O também não faltam: RS232, USB 2.0 e USB On-the-go, cartão de memória SD/MMC, Audio In/Out (Stereo), JTAG, LEDs e botões, além de um conector para usar um display LCD e outro para placas de expansão com diversas interfaces disponíveis como GPIO, PWM, I2C, I2S, SPI e SD/MMC. A alimentação pode ser feita por uma entrada de 5V ou pela porta USB. Uma referência completa do hardware pode ser encontrada aqui. São 180 páginas de muita informação!

COMPARANDO COM A MINI2440

Quem acompanha meu blog sabe que gosto bastante do kit FriendlyARM mini2440 como ferramenta de aprendizado, principalmente para aprender sobre Linux embarcado. Mas qual é melhor, a Beagleboard ou a mini2440? A resposta: depende!

Sob o ponto de vista do hardware, a Beagleboard é muito mais poderosa. Sua capacidade de vídeo e a existência de um DSP tornam possiveis aplicações multimedia que não seriam possíveis na mini2440. Por outro lado, a minha revisão da Beagle Rev C4 não possui interface Ethernet. Se eu precisar de uma interface Ethernet, precisarei usar um dongle USB. Já na mini2440 temos uma porta Ethernet por padrão. Esta deficiência da BeagleBoard é resolvida na sua última revisão, a BeagleBoard-xM, que além da interface Ethernet, trabalha a 1GHz!

Outra desvantagem da Beagle com relação ao hardware é a ausência de um display LCD. A idéia aqui é usar as saídas DVI ou S-Video e plugá-la diretamente em um monitor ou televisor. Mas nada impede você de comprar um display LCD e conectar nos pinos de I/O disponíveis na Beagle. Já existem alguns projetos que fazem isso. Você só precisará comprar o display separadamente.

Por outro lado, a BeagleBoard, por apostar no formato open source, foi muito mais competente em documentar o projeto e montar uma comunidade onde as pessoas publicam seus projetos e compartilham informações.

De qualquer forma, os dois kits suprem bem a necessidade de uma ferramenta para aprendizado em sistemas embarcados. Escolha o que melhor couber no seu bolso.

ONDE COMPRAR

A BeagleBoard pode ser adquirida em alguns sites na internet, incluindo a Digi-Key e a Mouser. No site do projeto tem uma lista completa de distribuidores. Na Special Computing você também consegue comprar, além da placa, os cabos, fontes e até um case de acrílico para colocar a placa enquanto estuda ou desenvolve seu protótipo.

O preço atual é de $125.00, mais frete e impostos. Mas esse valor é só pela placa. Você vai precisar de um cabo adaptador serial IDC10 -> DB9 macho igual este aqui para a console. Pode precisar também de um cabo HDMI tipo A -> DVI, se quiser ligar a placa em um monitor, e de uma fonte de 5V se precisar ligar muitos periféricos na placa e achar que a alimentação via USB não será suficiente para “aguentar o tranco”.

PRIMEIROS SINAIS DE VIDA

Estes são os primeiros sinais de vida da BeagleBoard, que podemos visualizar na console:

Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)
Loading u-boot.bin from nand
 
U-Boot 2009.11-rc1-00601-g3aa4b51 (Jan 05 2010 - 20:56:38)
 
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz
OMAP3 Beagle board + LPDDR/NAND
I2C:   ready
DRAM:  256 MB
NAND:  256 MiB
*** Warning - bad CRC or NAND, using default environment
 
In:    serial
Out:   serial
Err:   serial
Board revision C4
Die ID #7e1c000400000000040398da1402400e
Hit any key to stop autoboot:  0
No MMC card found
Booting from nand ...
 
NAND read: device 0 offset 0x280000, size 0x400000
 4194304 bytes read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
OMAP3 beagleboard.org #

Ela vem de fábrica com o X-Loader e o U-Boot instalados na NAND. O processo de boot acontece em 3 estágios:

  • 1o. estágio: Software residente em ROM
  • 2o. estágio: X-Loader
  • 3o. estágio: U-Boot

No fim, o U-Boot tentar carregar o kernel do Linux, e como não encontra a imagem, cai no prompt. Vamos tentar listar as partições da NAND:

OMAP3 beagleboard.org # mtdparts
mtdparts variable not set, see 'help mtdparts'
no partitions defined
 
defaults:
mtdids  : nand0=nand
mtdparts: mtdpart' - try 'help'loader),1920k(u-boot),128k(u-boot-env),4m(kernel),-(fs)

Veja que a tabela de partições encontra-se inicialmente vazia. Podemos configurar as partições padrão com o comando abaixo:

OMAP3 beagleboard.org # mtdparts default

E então podemos ver as partições:

OMAP3 beagleboard.org # mtdparts
 
device nand0 , # parts = 5
 #: name                size            offset          mask_flags
 0: x-loader            0x00080000      0x00000000      0
 1: u-boot              0x001e0000      0x00080000      0
 2: u-boot-env          0x00020000      0x00260000      0
 3: kernel              0x00400000      0x00280000      0
 4: fs                  0x0f980000      0x00680000      0
 
active partition: nand0,0 - (x-loader) 0x00080000 @ 0x00000000

 

Agora a NAND esta pronta para gravarmos o kernel e o rootfs. Que tal um pouco de Android no próximo post? Até lá!

Abraços,

Sergio Prado

  • Juliano Alves de Oliveira

    É isso ai Sergio,
    Mais não abandone nosso velho amigo mini2440 hein
     
    abraços

  • Emerson

    Olá Sérgio, venho acompanhando seu blog faz um tempo, mas só agora postei. Também tenho um mini2440, que acabei agora deixando de usar devido a ter comprado uma PandaBoard (Dual Core). No momento ando mais focado na beagleboard xm, mas logo passarei a mexer mais na Panda! Depois que analisei a beagle, vi que a comunidade por trás dela faz por si só valer a pena aposentar de vez a mini 2440! Além do suporte, existem vários projetos rolando entre eles destaco: um robo que segue pessoas utilizando a beagle e o Kinect para o tracking, também tem um projeto da Super Jumbo Image, que roda 4 OS's na beagle (Ubuntu, AIOS, ChromeOS e Android Gingerbread 2.3). A versatilidade em se colocar um android/ubuntu/wince e rodar com rapidez e ainda ter o PowerVR para gráficos 3d, fazem da beagleboard XM melhor que alguns netbooks. Não tenho dúvida que com as novas gerações de processadores OMAP, os sistemas embarcados nunca serão os mesmos! Abraço!

    • Legal Emerson!

      Me diz uma coisa. Como você comprou a PandaBoard? Quanto pagou incluindo frete e impostos?

      Um abraço!

      • Emerson

        Olá Sérgio! A Panda custa $174, 25 a mais q a Beagle XM. Paguei em torno de 800 reais (com frete, imposto, um cabo adaptador para o usb OTG e a fonte de 5V@4A) pela digikey   recebi em 3 dias! Tem que ficar de olho, porque a digikey publica e logo em seguida acaba o estoque! Além de ser dual core, a panda possui wireless integrada (o q vale amis q os 25 dolares de diferenca), HDMI full HD 1080p (XM é 720p), ainda tem saida DVI e um LCD, em um evento de sistemas embarcados o proprietário da AlwaysInnovating (Gregoire) rodou em modo demonstrativo a Super Jumbo Image com 3 OS´s separadas em 3 telas distintas ao mesmo tempo (HDMI,DVI e LCD). Realmente impressionante o desempenho dessa Panda. Ainda veremos muito projetos fantásticos por vir! Abraço!

        • Olá Emerson,
          Parece que vc já respondeu algumas de minhas dúvidas referente as comparações entre a Panda e XM e esse detalhe que vc citou do WIFI é muito importante.
          obrigado e abraços

  • Olá Sérgio,

    Como sempre nos presenteando com excelente artigos.  Alguns comentários:
    – Já estou aguardando seu artigo sobre a versão XM da Beagle pois com uma diferença de 20 dólares entre uma e outra, a relação custo-benefício já me levaria a comprar automaticamente a XM. Se compararmos os features de cada modelo a XM ganha de braçada…
    – Apesar da Panda ser dual core não tenho certeza de quanta performance ela tem a mais que a Beagle XM (a Panda custa 30 dólares a mais que a XM e pelos comentários, seu prazo de entrega não é dos melhores).  Seria outro artigo interessante uma comparação de performance entre ambas.
    abraços

  • Olá Sérgio!
    Você sabe de algum kit com Cortex A8 e display touchscreen? Dei uma pesquisada, e não achei a Beagleboard com display. Recomenda alguma coisa?

  • Paulo Sherring

    Sérgio, parabéns pela iniciativa de publicar seus trabalhos! Tenho uma pequena experiência em sistemas embarcados pequenos e sem sistemas operacional, como pequenos a até médios códigos para divesos microcontroladores da microchip de da atmel, ficando no máximo em até 16 bits, ou seja: sem barramentos externos e outras coisas chiques. Estou querendo começar a entrar mais no mundo dos embarcados high end e vejo que as possibilidades são muitas!
    Gostaria de lhe pedir, humildemente, uma indicação de onde começar, definindo uma marca que possua uma boa placa de desenvolvimento. Estive estudando o que tem afora e as principais opções que encontrei foram: FriendlyARM (que encontrei 4 modelos), BeagleBoard, PandaBoard, HawkBoard (que foi oficialmente desaconcelhada pela texas, então, já foi descartada), uma da ST que vem com LCD built in (no mercadolivre) e uma baseada no AT91SAM3U, da atmel. Todas estão dentro do orçamento.
    Pessoalmente, fiquei bastante atraído pela da atmel, por simplesmente simpatizar com a marca. O que você me diz? Desde já agradeço. Abraço!

    • Olá Paulo,

      Se você já quiser que o kit venha com um display touch para brincar, pegue a FriendlyARM mini6410. Se você que algo mais “parrudo”, prinpalmente para aplicações multimedia, leve a BeagleBoard-xM ou a PandaBoard.

      Um abraço!

  • George Tavares

    Olá Sergio
    Realmente uma placa muito interessante. 
    Uma duvida. Pelo seu diagrama esquemativo vi que ela tem duas saidas de video (uma SVideo e uma Dvi). Elas podem ser usadas simultaneamente e  independentes dentro do Linux? Tipo, são montados dois framebuffers?
    Obrigado

    • Olá George,

      Ainda não testei usando as saídas simultaneamente no Linux, mas são duas saídas independentes mesmo.

      Um abraço,

      Sergio Prado

  • Jorge

    Olá Pessoal,
    Estou vendendo a minha BEAGLE novinha, apenas abri para verificar o conteúdo. O motivo da venda é que mudei de ramo, e ia usá-la em um projeto novo.
     
    Vendo por R$ 450,00. Interessados enviar e-mail para :
     
    jorgefrancisco.melo@gmail.com
     
    Abraço,
    Jorge.

  • Cássio Origuela

    Sergio, ótimo post, como sempre.
    Pessoal, qual loja vocês recomendam para a compra da BeagleBoard ? De preferência, a de menor preço. Procurei no ebay mas não encontro. Quanto fica, em média, o pedido na digikey ?

    Abraços!

    • Olá Cássio,

      O negócio é comprar mesmo nos distribuidores oficiais. Com o dólar em alta, deve sair (com impostos), em torno de R$500,00.

      Um abraço.

  • Silas Bruder

    Alguem saberia me informar a resolução da analógica desse kit/Arm? Obrigado

    • Olá Silas,

      Até onde me lembro, o ADC da Beagleboard tem resolução de 10 bits.

      Mas pra confirmar você precisa dar uma olhada na documentação do projeto em beagleboard.org.

      Um abraço.

  • Gorio

    Boa tarde Sergio, pelo que andei lendo nem todas as Beagleboards vem com NAND, esta afirmação é correta ? Tentei executar o comando acima e ele informa que não encontrou a nand0. Obrigado

    • Olá Eduardo, 

      A Beagleboard antiga (esta do post) tem flash. A Beagleboard-xM não tem.

Navegue
Creative Commons Este trabalho de Sergio Prado é licenciado pelo
Creative Commons BY-NC-SA 3.0.