Skip to content
Jason Kridner edited this page Jan 9, 2019 · 23 revisions

Frequently Asked Questions

Table of Contents

What

What does the board look like?

What is the board size?

56mm x 35mm x 5mm

What is a USB key-fob computer?

PocketBeagle® is the size of a tiny mint-tin (35mm x 56mm x 5mm), less than half the size of the larger mint-tin or credit-card sized BeagleBone® Black (55mm x 86mm). Unlike a desktop computer where you connect a monitor, keyboard and mouse, PocketBeagle® is made to live inside your project and enables you to define its interfaces. PocketBeagle® is easily programmed through a web browser running on any other connected desktop.

What can I do with PocketBeagle?

Getting to the Linux command-line and text editor via your web browser is simple, providing you with a playground for programming and electronics. Exploring is made easy with several available libraries and tutorials and many more coming. Once you get a bit familiar with Linux and electronics, you are free to explore numerous more advanced projects from the community.

The sky is no limit; PocketBeagle makes a great starting point for building something as advanced as a computer for a CubeSat and there are several BeagleBone® Black examples out there already today. Flying a bit lower, PocketBeagle® is a good target for flight controller software, such as ArduPilot, similar to what is done on BeagleBone® Blue but with the flexibility of choosing all your own sensors and interconnects. Touching the ground, the combination of a 1-GHz Linux computer and 2 powerful 200-MHz hard-real-time shared-memory programmable real-time units (PRU) microcontrollers make driving robotic machines like 3D printers, CNC mills and laser cutters fast and simple with software such as Redeem, MachineKit or BeagleG as great starting points. If you’d like your ground-based machine to talk back to the cloud, the SPI, USB and UART expansion makes adding your own Ethernet, WiFi, Bluetooth and long-range wireless connectivity easy with Linux drivers and Node.JS or Python libraries to add smarts. If what you want is just fun, add a SPI-based display and run off of a single-cell LiPo battery to create your own custom gaming device with the sensors, such as cameras and software like OpenCV or just simple accelerometers, of your own choice to go on an adventure of your own.

What are Programmable Real-Time Units (PRUs) anyway?

Texas Instruments’ Sitara AM335x processor is built of several central processing units (CPUs), including two programmable real-time units (PRUs). These are 200MHz 32-bit microcontroller CPUs with a zero-depth pipeline and single-cycle access to a collection of pins and peripherals optimized for implementing software-defined peripherals. The PRUs don’t have pre-defined tasks in their system, so they are free to run your software. They are ideal for tight control loops; a must-have feature for building quadcopters, 3D printers and balancing robots, just to name a few.

PRUs are ideal for predictable low-latency, whereas the ARM processor is good for throughput. Latency is how quickly you can respond. Throughput is how quickly you can move once you reach top speed. When you need to handle a lot of little tasks, you need low latency and low overhead. When you have a large payload to process, you want good throughput. PocketBeagle® is designed to be good at both and efficient in enabling them to work together.

What is the pinout for the expansion headers?

What is the price?

BeagleBoard.org Foundation doesn't set pricing, but we expect it to be available at $25 through our major distributors.

Is this open hardware and what is the design in?

Yes, it is fully open hardware.

The production design was done in EAGLE.

We also validated an implementation in KiCAD.

What is the status of the software?

It is possible to modify the bootloader, device tree and boot scripts on existing BeagleBone images and we are in the process of releasing an updated image ready to boot. However, we have big plans. This hardware release is just the start and expect the software experience to improve radically over the next few months. We'll be sharing development plans on https://beagleboard.org/discuss.

Read more at Software status.

Why

Why is PocketBeagle good for a novice?

PocketBeagle is affordable, enabling you to dedicate one to live permanently in each of your different projects. Even though PocketBeagle® is very low-cost, it is made with top quality engineering and manufacturing. In the unlikely event it is damaged due to misuse, it won’t cost much to replace. PocketBeagle® will boot directly from on-board ROM that cannot be accidentally modified and will load software via USB, serial or microSD cards. A Chrome plug-in or cross-platform Node.JS Electron app can boot your board to add a Linux distribution to an attached microSD card. This means you can create reliably reproducible instructions on using the board, because it will behave the same way every time.

PocketBeagle runs GNU/Linux, which means you can leverage many different high-level programming languages and a large body of drivers that prevent you from needing to write a lot of your own software. PocketBeagle doesn’t require you to install a bunch of tools on your host computer. You develop directly in your web browser, a tool you already know, and most users won’t ever even need administrator privileges on their host computer.

Why is PocketBeagle good for a professional?

PocketBeagle® utilizes a simple open-source hardware design making it easy for you to take control of your own destiny, either customizing the board or sourcing and manufacturing it in any method you’d like. The processor is well-documented and available broadly, avoiding lurking issues that might otherwise be difficult to resolve. PocketBeagle® avoids consuming precious hardware resources, leaving them available for your design goals while still exposing features for expansion.

Most importantly, PocketBeagle respects your time and helps you avoid risk by providing a solution for rapid prototyping without slowing your path to production. BeagleBoard.org’s community of thousands of serious developers means that someone has probably already tried to do something similar and will be willing to share answers and experiences. PocketBeagle avoids re-inventing the wheel, just makes it smaller, simpler and more affordable while keeping it flexible.

PocketBeagle support is pushed upstream in Linux and u-boot such that you’ll always be able to leverage the latest features and bug fixes in those projects.

Why does PocketBeagle really matter anyway?

The BeagleBoard.org Foundation has the goal of increasing computer, electronics and robotics literacy at a point they are critical in human history. PocketBeagle® increases access to inspirational hardware and we believe hands-on experience is the best way to build understanding and empowerment. We also believe in empowerment at all ages and experience, so we give you the tools to take our designs forward. How did we make PocketBeagle® so small and affordable?

PocketBeagle is built around Octavo Systems’ System-In-Package that integrates a high-performance TI AM3358 processor, 512MB of DDR3, power management, non-volatile serial memory and over 140 passive components into a single package. This integration saves cost and a small amount of power by eliminating several packages that would otherwise need to be placed on the board, but more notably it saves the space of all those packages and simplifies our board design so we can focus on the user experience.

How

How do I get additional USB connections?

  1. Connect a microUSB breakout. By default in the current software, the system should be configured to use this port as a host. You'll need to modify the device tree to make it a client as of now
  2. Connect a USB type-A breakout. I still need a picture for this. The big delta is that ID and GND should be connected as the type-A breakout is only 4 pins and ID should be grounded to force host mode.

How do I get connected to the Internet?

  1. Many host computers support tethering. Configure your host to utilize tethering then use the virtual serial port to configure your PocketBeagle to acquire networking information from your host rather than providing it to your host. See the on-line discussion.
  2. The microUSB connector will act as a USB host. If using a USB-WiFi adapter, you'll need to configure connman to connect to your network initially, then reboot using the USB as a host rather than a client. You'll need to provide power to your board, but microUSB Host/OTG cables sometimes include the power input.
  3. It is possible to add an additional USB port as described above.
  4. You can utilize a mikroBUS ETH Click or ETH WIZ Click. Support for Wireless Clicks, like WiFi 7 Click, coming soon.
  5. There are many ways to utilize the expansion interface to create your own networking solution.

How do I boot the PocketBeagle?

The standard getting started instructions for a normal Beagle work with PocketBeagle, briefly:

  1. Download image from official releases
  2. Write to SD card (etcher, dd, or win32diskimager)
  3. Insert into beagle
  4. Power up via USB
  5. Wait for network adapter to appear and DHCP address assigned
  6. ssh or browse to 192.168.7.2

Typical Gotchas

Why isn't SPI1 working for me?

The spidev to use is /dev/spidev2.1. The Linux kernel on our default images start indexing SPI controllers at an index of 1, so SPI0 is /dev/spidev1.0 and SPI1 is /dev/spidev2.1.

Oh, and did you notice the .1? On the PocketBeagle headers we brought out CS1, not CS0, on the SPI1 controller, so make sure to choose the correct chip select (CS) as well.