Hands on with PocketBeagle

[Ken Shirriff] is no stranger to the pages of Hackaday. His blog posts are always interesting, and the recent one talking about the PocketBeagle is no exception. If you are old enough to remember the days when a Unix workstation set you back tens of thousands of dollars, you won’t be able to help yourself marveling at a Linux computer with 45 I/O pins, 8 analog inputs, 512M of RAM, and a 1 GHz clock, that fits in your pocket and costs $25. What’s more the board’s CPU has two 200 MHz auxiliary CPUs onboard to handle I/O without having to worry about Linux overhead.

These last parts are significant, and although the Beagles have had this feature for years ([Ken] talked about it earlier), the access and communication methods for using these slave processors has become easier. [Ken] shows a small snippet of C code that outputs a 40 MHz square wave no matter what the Linux OS is doing. In this way you can use Linux for the parts of your application that are not that critical, and use the slave processors to handle real time processing.

The code for the slaves is easy enough to understand, too, since you program them in C. Here’s the square wave code:

void main(void)
{
 while (1) {
 __R30 = __R30 | (1<<1); // Turn on output 1
 __delay_cycles(1);
 __R30 = __R30 & ~(1<<1); // Turn off output 1
 __delay_cycles(1);
 }
}

Unlike its big sibling, the PocketBeagle lacks a network port and video output. However, when plugged into USB it presents an IP address through which you can gain shell access. You can also use the onboard serial port, or even plug in a USB network card, wired or wireless.

It is easy to imagine we will see plenty of little serial protocol analyzers and scopes that will fit on a keychain with these devices. We looked at the device ourselves recently. If small and cheap isn’t your thing, don’t despair. There’s always the X15.

31 thoughts on “Hands on with PocketBeagle

      1. Yeah, that’s true. But accelerated graphics aren’t really what the value added proposition for Beaglebones. If folks are really interested in accelerated graphics on little ARM boards they’d be better off suffering through the PITA that is ODROID graphics or maybe one the RPi boards.

  1. What would be the difference between what this device can do with the “external” realtime CPUs and what I can archieve with isolcpus and taskset combined on any GNU/Linux system?
    If I add isolcpus=1-3 to my kernel commandline, I can see the isolated CPUs don’t get ANY interrupts at all, it can be verified with “watch -n1 -d ‘cat /proc/interrupts”. ONLY when I run a program on those CPUs with taskset, they start receiving interrupts.
    So, what its the advantage between this and any modern multicore system with isolated CPUs regarding running programs with “realtime” guarantees? (Meaning the program won’t be losing the CPU because of another program, which won’t happen if a program runs on an isolated CPU and nothing else is sent here explicitly via taskset).
    Appart from I/O ports, of course.

    I am VERY curious about this question…

    1. The big thing with having them on the same SoC is memory bandwidth. In addition to their own GPiOs and shift registers (and UART and MII), they can access all of the ARM peripherals with low-latency, including DDR, DMA, GPIOs, and more

  2. “What’s more the board’s CPU has two 200 MHz auxiliary CPUs onboard to handle I/O without having to worry about Linux overhead.”

    Oh! Is that what is special about Beagle Boards? I thought they were just your typical ARM SBCs running Linux, not much different from a Raspberry Pi. I wondered how they could sell them for so much more money all this time!

    1. i started reading the comments above figuring i wouldn’t care much even if this board iteration had 512 gigabytes of RAM. and now i’ve read through the (25) comments, i realize i don’t care about “Linux overhead” or MHz or I/O or costs or availability or brands or computing. wow.

  3. With the realtime I/O of the auxiliary processors, would it be possible to implement a similar, but more accurate system than the Raspberry PIrate radio? Or could one even do analog video stuff? Or MP3 decoding in low power modes?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s