[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.
“512K of RAM”? I’m pretty sure it has a smidgen more than that. 640K at least! ;)
Nope, 512K is right. This is a micro-controller-based board, not a Raspberry Pi.
I’m looking at it as a good opportunity to learn how to use one of those 2-8Kb 40-50-pin SOP RAM modules :)
Uh, Mb that is…
It has 512MB of RAM, according to the other HAD article on it
https://hackaday.com/2017/09/23/the-tiny-25-pocketbone/
Oops 512M — I’ll fix that real quick.
K is only one key away from M
But you have to go through “L” to get there!
B^)
Nope, its a single _qwerty asm operation: SDL (shift down left)…
The Beaglebone is whatever form is the Hackers single board computer. All the documentation is fully open. And those PRU units are a fantastic tool, especially if you want hard real time along with linux.
Except for the accelerated graphics on the Beaglebone, that is. What a PITA those are.
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.
And in case you need some more PRU code to drool over: https://github.com/n8vi/pru-dds
“Perhaps you want to output BPSK31-modulated RF.”
> “Perhaps you want to output BPSK31-modulated RF.”
…in fact I do! Thanks for the link; I have a Beaglebone Black and I’ve never experimented with the PRUs
Love how the ‘beagleboard.org’ text in the top photo is in the Digital Equipment Corporation (DEC) font :)
I think this would be a lot more useful if it had integrated WiFi / Bluetooth.
Does your display-name has anything to do with Chandrabagha?
I lifted it out the Mahabharata.
Oh..Nice
So are you strong as The Bhima to fight Bakasur ?
Not quite the same form factor, but they do have Beagleboards with wifi and bluetooth, check out the Green/Black Wireless.
Yeah, my other thought is that perhaps there might be a PocketBeagle Green or similar in their R&D pipeline.
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…
Price?
Well, appart from price?
It’s only the cpu that is isolated. The memory, IO, and internal buses are still shared. In the Linuxcnc world, isolcpus is used to reduce latency, not eliminate it.
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
BeagleLogic, Machinekit and ArduPilot are good examples.
“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!
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.
Does anyone know if PocketBeagle can also run Machinekit? I am so frustrated trying to build a low latency Linuxcnc system without breaking the bank.
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?