Can someone explain the BBB a bit more?

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

mattd2

Well-Known Member
Joined
Sep 23, 2009
Messages
3,843
Reaction score
387
Location
NZ
So looking at all the options for DIY contollers. Currently I am working with an Arduino Mega. I like the fact that with a microcontroller everything basically happens in a distinct flow path - no management of processes holding things back to allow others to perform better. But the arduino are somewhat slow compared the micro-computer alternatives, and I have faced the fact that even though you can get a more powerful Arduino some of the other features of the BBB are interesting.
Most interesting is the comment I saw that the BBB actually has 2x microcontrollers built in... is this the best of both worlds... there must be a catch? And I guess that catch is I can't find any information on how one would "unlock" these microcontrollers to do you bidding.

So can anyone with some knowledge of the BBB tell me a bit more information about it and how to use it both as a minicomputer and a microcontroller?

Cheers:mug:
 
BBB is a linux computer. Computer processors (CPUs) are generally not cut out for tasks which need to be processed within strict time limits e.g. refreshing the screen is passed off to a dedicated graphics chip. BBB contains two fast processors called "PRU"s which can be programmed to do that kind of stuff. But it's hard to get your head around, and also not really necessary for out purposes. Computers also tend to crash (unlike Arduinos which basically run forever) but this is not so much an issue for mashing where you are likely to be standing nearby. It could be a problem for fermenting though which is why having a separate Arduino type board to control the hardware side of things is often a good idea, leaving the Linux side of things free for the touchscreen, webserver etc.
 
BBB is a linux computer. Computer processors (CPUs) are generally not cut out for tasks which need to be processed within strict time limits e.g. refreshing the screen is passed off to a dedicated graphics chip. BBB contains two fast processors called "PRU"s which can be programmed to do that kind of stuff. But it's hard to get your head around, and also not really necessary for out purposes. Computers also tend to crash (unlike Arduinos which basically run forever) but this is not so much an issue for mashing where you are likely to be standing nearby. It could be a problem for fermenting though which is why having a separate Arduino type board to control the hardware side of things is often a good idea, leaving the Linux side of things free for the touchscreen, webserver etc.

Thanks alien, so am I correct in reading your comment as - nobody has really worked on using the PRUs and so there is not much info about how to go about it, i.e. it would be starting from scratch.
And if the CPU crashes do the PRU go down too?
Cheers.
 
Thanks alien, so am I correct in reading your comment as - nobody has really worked on using the PRUs and so there is not much info about how to go about it, i.e. it would be starting from scratch.
And if the CPU crashes do the PRU go down too?
Cheers.

Programming the PRU just looks bloody hard. There's no C compiler so you have to do it in assembly language. The technical manual is more than 4000 pages (not a typo). There are some code examples but not a huge user base like with Arduinos.

As for the second question, good point, it might be possible to use the PRU as a fallback processor in case the CPU crashes. Someone has done something similar for motor control http://www.embedded-things.com/bbb/wireless-servo-control-part-3-1-failsafe-servo-control/

I think there is some code out there for reading 1wire devices too, and the PID loop (in its most basic form) shouldn't be that much of an ask, but it's not a weekend project.

Just coding up a Python or C script to do the PID on the CPU should be pretty straightforward and perfectly adequate if it doesn't need to be bomb proof.

IMO Arduino Mega is pretty much ideal unless you want internet capability and/or a fancy screen.
 
Programming the PRU just looks bloody hard. There's no C compiler so you have to do it in assembly language. The technical manual is more than 4000 pages (not a typo). There are some code examples but not a huge user base like with Arduinos.

As for the second question, good point, it might be possible to use the PRU as a fallback processor in case the CPU crashes. Someone has done something similar for motor control http://www.embedded-things.com/bbb/wireless-servo-control-part-3-1-failsafe-servo-control/

I think there is some code out there for reading 1wire devices too, and the PID loop (in its most basic form) shouldn't be that much of an ask, but it's not a weekend project.

Just coding up a Python or C script to do the PID on the CPU should be pretty straightforward and perfectly adequate if it doesn't need to be bomb proof.

IMO Arduino Mega is pretty much ideal unless you want internet capability and/or a fancy screen.

Yep no compliler means that I would be way out of my depth (considering I would probably be just treading water with a compiler :D)
It would be a nice to have, even though it is not really needed as getting a BBB to brew beer is not exactly taxing it, to have the best parts of the hardware handle what they are good at - CPU for HMI and PRU(s) for process control.
Maybe I'll give it a year or so and it might catch on and I can stand on the shoulders of giants!
In the meantime maybe I'll look at getting a BBB just for the beagleSNES :D
 
Yeah plenty of other reasons to get a BB.

It's a better product than the RPi but not as popular so there is less in the way of published projects.

Last time I coded assembly language was on a BBC micro in the mid 80s, with 8 bit registers A X and Y...
 
Yeah plenty of other reasons to get a BB.

It's a better product than the RPi but not as popular so there is less in the way of published projects.

Last time I coded assembly language was on a BBC micro in the mid 80s, with 8 bit registers A X and Y...

I definately see the potential in the BBB, maybe just the time between release is the factor here... hopefully more and more people pick up the BBB over the RPi now and things take off.
I can't remember what I was doing in the mid 80s, but that is probably because i had just been born!
cheers!
 
OK another question on the BBB. The expansion headers, these are the boards I/O right. But am I correct in my understanding that most of these pins also have a specific feature - driving a LCD for example. My question is generally speaking are any of the IO pins also connected to other connections on the board - HDMI?
 
Back
Top