[fusion_builder_container backgroundcolor=”no” backgroundimage=”” backgroundrepeat=”no-repeat” backgroundposition=”left top” backgroundattachment=”scroll” video_webm=”” video_mp4=”” video_ogv=”” video_preview_image=”” overlay_color=”” overlay_opacity=”0.5″ video_mute=”yes” video_loop=”yes” fade=”no” bordersize=”0px” bordercolor=”” borderstyle=”” paddingtop=”0px” paddingbottom=”0px” paddingleft=”0px” paddingright=”0px” menu_anchor=”” equal_height_columns=”no” hundred_percent=”no” class=”” id=””][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_title size=”1″ content_align=”left” style_type=”double solid” sep_color=”” class=”” id=””]Welcome to the Companion Website[/fusion_title][fusion_text]
This is the companion site for the book “Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux” Second Edition by Derek Molloy. It is maintained by the author and it contains supporting digital downloads, video, and source code examples. The website also contains additional materials that are too specific to include in the book. Each chapter in the book links to an individual web page (e.g., /chapter1), which can be accessed using the drop-down menu on the top right-hand side of this page.
[/fusion_text][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_tagline_box backgroundcolor=”” shadow=”yes” shadowopacity=”0.7″ border=”2px” bordercolor=”” highlightposition=”top” content_alignment=”left” link=”http://www.exploringrpi.com/” linktarget=”_blank” modal=”” button_size=”small” button_shape=”” button_type=”” buttoncolor=”” button=”Exploring Raspberry Pi Website” title=”” description=”” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ class=”” id=””] Exploring Raspberry Pi
Please also see my other book website on the Raspberry Pi. Exploring Raspberry Pi first covers the basics of the hardware platform, recommended accessories, software, embedded Linux systems, and Linux programming techniques. Then it takes you deeper into interfacing, controlling, and communicating, with detailed information about Raspberry Pi GPIOs, buses, UART devices, and USB peripherals. You will learn to configure a cross-compilation environment in order to build large-scale software applications, as well as how to combine hardware and software to enable the Raspberry Pi to interact effectively with its physical environment. Finally, you’ll discover how to use the Raspberry Pi for advanced interfacing and interaction applications such as the Internet of Things (IoT); wireless communication and control; rich user interfaces; images, video, and audio; and Linux kernel programming.
If you already own Exploring BeagleBone or Exploring Raspberry Pi, please visit the Exploring Raspberry Pi website to see how this book is different.[/fusion_tagline_box][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_title size=”1″ content_align=”left” style_type=”double solid” sep_color=”” class=”” id=””]The Book[/fusion_title][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”yes” overflow=”visible”][fusion_builder_row][fusion_builder_column type=”1_2″ last=”no” spacing=”yes” background_color=”” background_image=”” background_repeat=”no-repeat” background_position=”left top” border_size=”0px” border_color=”” border_style=”” padding=”” class=”” id=””][layerslider id=”1″][fusion_separator style_type=”none” top_margin=”20″ bottom_margin=”” sep_color=”” icon=”” width=”” class=”” id=””/][fusion_separator style_type=”shadow” top_margin=”20″ bottom_margin=”10″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_title size=”2″ content_align=”left” style_type=”single solid” sep_color=”” class=”” id=””]Purchase the Book:[/fusion_title][fusion_text]
Available worldwide in January 2019. Released in the US and Canada in January 2019. Released to the rest of the world in late January/early February 2019. Kindle and eBook versions released in December 2018.
[fusion_tagline_box backgroundcolor=”” shadow=”yes” shadowopacity=”0.1″ border=”1px” bordercolor=”” highlightposition=”top” content_alignment=”left” link=”” linktarget=”_self” modal=”” button_size=”” button_shape=”” button_type=”” buttoncolor=”” button=”” title=”” description=”” animation_type=”0″ animation_direction=”down” animation_speed=”0.1″ class=”” id=””]A personal note: Thanks to everyone for taking the time to write such kind reviews on Amazon, this web site, and on other web sites. I really appreciate your support and feedback. Thanks, Derek. [/fusion_tagline_box]
Americas:
- Amazon (United States) (Canada) Look Inside available.
- Amazon (Brazil) (Mexico) Kindle only
- Wiley (United States)
- Book Depository
- Barnes and Noble
- Books-a-Million
Europe:
- Amazon (United Kingdom) (Germany) (France) (Italy) (Spain) Look Inside available.
- Amazon (The Netherlands) Kindle Only
- eBook.de (Paperback) (eBook — epub)
- Wiley (Europe)
- Book Depository
- Waterstones
Rest of the World:
- Amazon (China) (India) (Japan) Look Inside available.
- Amazon (Australia) Kindle Versions
- Book Depository
e-Books: (now available)
- Kindle versions (United States)(Canada)(Brazil)(United Kingdom)(India)(Japan)(Germany)(Italy)(France)(Spain)
- iTunes iBook (United States)(UK)
- Google (play.google.com)
- Barnes & Noble NOOK Book (eBook)
- Read online with Safari Books Online: Exploring BeagleBone
- Books-a-Million
- O’Reilly Shop eBook
Full List of Worldwide Locations: Wiley International List[/fusion_text][/fusion_builder_column][fusion_builder_column type=”1_2″ last=”yes” spacing=”yes” background_color=”” background_image=”” background_repeat=”no-repeat” background_position=”left top” border_size=”0px” border_color=”” border_style=”” padding=”” class=”” id=””][fusion_title size=”2″ content_align=”left” style_type=”single solid” sep_color=”” class=”” id=””]Description[/fusion_title][fusion_text]
Exploring BeagleBone (Second Edition) is a hands–on guide to bringing gadgets, gizmos, and robots to life using the popular BeagleBone and PocketBeagle embedded Linux platforms. Comprehensive content and deep detail provide more than just a Beagle board instruction manual—you’ll also learn the underlying engineering techniques that will allow you to create your own projects. The book begins with a foundational primer on essential skills, and then gradually moves into communication, control, and advanced applications using C/C++, allowing you to learn at your own pace. In addition, the book’s companion website features instructional videos, source code, discussion forums, and more, to ensure that you have everything you need.
In–depth instruction and practical techniques for building with the BeagleBoard.org embedded Linux platform
The BeagleBone and PocketBeagle’s small size, high performance, low cost, and extreme adaptability have made them a favorite development platform, and the Linux software base allows for complex yet flexible functionality. The Beagle boards have applications in smart buildings, robot control, environmental sensing, to name a few; and, expansion boards and peripherals dramatically increase the possibilities. Exploring BeagleBone provides a reader–friendly guide to the device, including a crash course in computer engineering. While following step by step, you can:
- Get up to speed on embedded Linux, electronics, and programming
- Master interfacing electronic circuits, buses and modules, with practical examples
- Explore the Internet–connected Beagle board and the Beagle boards with a display
- Apply the Beagle boards to sensing applications, including video and sound
- Explore the AM335x Programmable Real–Time Controllers (PRUs)
- Second edition updated to cover the latest Beagle boards, Linux kernel versions, and Linux software releases.
- Second edition includes new content on Linux kernel development, the Linux Remote Processor Framework, CAN bus, IoT frameworks, and much more!
Hands–on learning helps ensure that your new skills stay with you, allowing you to design with electronics, modules, or peripherals even beyond the Beagle boards. Insightful guidance and online peer support help you transition from beginner to expert.
[/fusion_text][fusion_separator style_type=”shadow” top_margin=”20″ bottom_margin=”10″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_title size=”2″ content_align=”left” style_type=”single solid” sep_color=”” class=”” id=””]Author[/fusion_title][fusion_text]
Dr. Derek Molloy is an Associate Professor in the School of Electronic Engineering at Dublin City University, Ireland. Derek produces a popular YouTube series on the BeagleBone platform and a wide variety of embedded Linux topics. His videos and personal blog have introduced millions of people to the BeagleBone, embedded Linux, and digital electronics. See the About the Author page for more information.
[/fusion_text][fusion_separator style_type=”shadow” top_margin=”20″ bottom_margin=”10″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_title size=”2″ content_align=”left” style_type=”single solid” sep_color=”” class=”” id=””]Technical Editors[/fusion_title][fusion_text]
Marcia K. Wilbur is a technical communicator consulting in the semiconductor field, focusing on industrial IoT (IIoT). Marcia holds degrees in computer science, technical communication, and information technology. As the Copper Linux User Group interim president, she is heavily involved in the East Valley maker community, leading regular Raspberry Pi, BeagleBone, Banana Pi/Pro, and ESP8266 projects including home automation, gaming consoles, surveillance, network, multimedia and other “pi fun.”
Jason Kridner is the Software Community Development Manager for Sitara ARM processors at Texas Instruments Incorporated (TI). During his over 20‐year tenure with TI, he has become an active leader in TI’s open source initiative and played an integral role in creating open‐source development tools such as BeagleBoard, BeagleBoard‐xM BeagleBone, and now BeagleBone Black.
Robert Zhu is a principal development manager at Microsoft for the Windows Operating System Group. He is an expert in OS leading‐edge development, research, and design in computer engineering such as kernel, device driver, and board support packages.
[/fusion_text][fusion_separator style_type=”shadow” top_margin=”20″ bottom_margin=”10″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_title size=”2″ content_align=”left” style_type=”single solid” sep_color=”” class=”” id=””]Source Code[/fusion_title][fusion_text]
All of the source code that is described in this book is available in a public GitHub repository: Derek Molloy Exploring BeagleBone repository.
You can clone this repository on a Linux desktop computer or your BeagleBone using the command:
git clone https://github.com/derekmolloy/exploringBB.git
You can also install a Windows GitHub desktop application or a Mac OS X GitHub desktop application. Alternatively, you can download a full ZIP archive of the code using the following link: Download Source Code (this is a live link that automatically provides you with the very latest files).
[/fusion_text][fusion_separator style_type=”shadow” top_margin=”20″ bottom_margin=”10″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_text]Molloy, D. (2019). Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux, Second Edition, New York: Wiley, 978-1119533160, 740pp.
BibTeX Citation:
@book{1119533163, Author = {Derek Molloy}, Title = {Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux}, Publisher = {Wiley}, edition = {2}, Year = {2019}, ISBN = {1119533163}, URL = {http://www.exploringbeaglebone.com/} }
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container backgroundcolor=”no” backgroundimage=”” backgroundrepeat=”no-repeat” backgroundposition=”left top” backgroundattachment=”scroll” video_webm=”” video_mp4=”” video_ogv=”” video_preview_image=”” overlay_color=”” overlay_opacity=”0.5″ video_mute=”yes” video_loop=”yes” fade=”no” bordersize=”0px” bordercolor=”” borderstyle=”” paddingtop=”0px” paddingbottom=”0px” paddingleft=”0px” paddingright=”0px” menu_anchor=”” equal_height_columns=”no” hundred_percent=”no” class=”” id=””][fusion_builder_row][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_title size=”2″ content_align=”left” style_type=”double solid” sep_color=”” class=”” id=””]Early Reviews[/fusion_title][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_testimonials design=”” backgroundcolor=”” textcolor=”” class=”” id=””][fusion_testimonial name=”Prof. Burford Furman” avatar=”male” image=”” image_border_radius=”” company=”San José State University, California.” link=”http://www.engr.sjsu.edu/bjfurman/” target=”_blank”]Derek Molloy’s, Exploring BeagleBone, is THE book to go to if you are interested in learning about embedded Linux programming and how to use it to exploit the powerful capabilities of the BeagleBone single board computer. The book clearly presents the essential elements of embedded systems and explains in detail how to interface the BeagleBone to sensors, actuators, and electronic circuits.
I appreciate the author’s approach of not making the book a compilation of recipes or focusing on a grand project, but rather building the reader’s understanding of core concepts in a ‘learn-by-doing’ manner, so that any project suitable for the BeagleBone could be subsequently tackled.
Exploring BeagleBone is the book that I’ve been looking for to demystify embedded Linux and shorten the learning curve regarding how to do more sophisticated projects, such as incorporating vision or interaction over Internet.
[/fusion_testimonial][/fusion_testimonials][fusion_separator style_type=”shadow” top_margin=”” bottom_margin=”25″ sep_color=”” icon=”” width=”” class=”” id=””/][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_testimonials design=”” backgroundcolor=”” textcolor=”” class=”” id=””][fusion_testimonial name=”Brian DeLacey” avatar=”male” image=”” image_border_radius=”” company=”Founder of the IoT Festival, long-time activist in the Boston Linux/Unix User Group.” link=”http://www.linkedin.com/pub/brian-delacey/0/a6/b88″ target=”_blank”]… you’ve covered the content from a dozen titles on my bookshelves. What I’ve learned on this topic has taken me a decade of self-study culling through books and release notes and various platforms. Here, you’ve demystified it all in the span of a single (large) volume – I wish I had this Explorer’s guide a decade ago!
… I do think your book is MUCH needed. The conceptual material applies to all these “tiny computers”, and I’m thrilled you’ve tied it to the BBB!
… Your book brings together a great collection of chapter topics. I previously had to piece this together from a small library of books on electronics, physical computing, embedded systems, Linux, software, image processing (OpenCV), and Git. Your one book is enough to get me up and running on all those topics. Additionally, you’ve gathered in one place valuable BBB information that previously was hard to find and only buried deep in the web. Thanks for making my bookshelf a little lighter and deeper.
[/fusion_testimonial][/fusion_testimonials][fusion_separator style_type=”shadow” top_margin=”” bottom_margin=”25″ sep_color=”” icon=”” width=”” class=”” id=””/][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_testimonials design=”” backgroundcolor=”” textcolor=”” class=”” id=””][fusion_testimonial name=”Christine Long” avatar=”female” image=”” image_border_radius=”” company=”BeagleBoard.org Foundation” link=”https://twitter.com/christilongosm” target=”_blank”]Loaded with helpful information and coding tutorials, this exploration around the extensive capabilities of BeagleBone Black has me excited to connect everything I encounter to the Internet, simply because I can now.[/fusion_testimonial][/fusion_testimonials][fusion_separator style_type=”shadow” top_margin=”” bottom_margin=”25″ sep_color=”” icon=”” width=”” class=”” id=””/][/fusion_builder_column][fusion_builder_column type=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”no” center_content=”no” min_height=”none”][fusion_testimonials design=”” backgroundcolor=”” textcolor=”” class=”” id=””][fusion_testimonial name=”Prof. Ray Simar” avatar=”male” image=”” image_border_radius=”” company=”Professor in the Practice of Digital Signal Processing Architecture, Rice University, Texas.” link=”http://www.ece.rice.edu/simar.aspx” target=”_blank”]This wonderful book is at the nexus of so many of the skills that are vital to today’s computer scientists, electrical engineers, and innovators of all stripes as they turn their ideas into transformative creations.
The melding of these skills, which are often taught in a disparate manner, into a synergistic form is a wonderful achievement. This book, which spills beyond the printed page, to a collection of hands-on videos and additional sources of information, will become a mainstay in teaching any members of the next generation of computer scientist and electrical engineers who are eager to turn their ideas into reality.
[/fusion_testimonial][/fusion_testimonials][fusion_separator style_type=”shadow” top_margin=”” bottom_margin=”25″ sep_color=”” icon=”” width=”” class=”” id=””/][fusion_text]Please post comments related to the content in the book under the relevant chapter web page (see the top right menu). This section below is for comment/feedback on the book in general. Thanks. Derek.[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]
As an R&D engineer, I could judge the text even without completing it. From the outline and the early introduction, I see that it’s an amazing book. It covers almost all things needed for developing for BBB. Derek, you did an amazing job. I wish all teachers and book authors teach and write like the way you did.
Awesome book! Good work Derek! Just received it yesterday and started reading right away. Looking forward to building some cool stuff. Highly recommended!
Thank you sir for keeping my request of making it available in India. The print edition will be releasing on 22nd January and I am planning to grab a copy by February.
Have waited patiently for the arrival and it has been well worth the wait – excellent job Derek in such a short time? Just proves the adage “if you want a job doing, give it to a busy man”.
This is a superlative text. Reading it is a pleasure. It has been an astonishing five chapters, thus far.
hello Derek,
i’am not very proud of my english.
i wonder your book will be traducted in french !
I hope so … Could you tell me about it ?
Hi, I’m afraid that Wiley has no current plans to translate the book into any other language. Apologies, Derek.
ok i buy it anayway
What a great book, It answers questions which i had in mind for a long time now and you answer questions before anyone can ask them, Also for Linux in general. Good job Derek.
Prof. Molloy, let me start out by saying your book is absolutely fantastic. You’ve covered enough detail in it to keep me busy for a long, long time. I’ve set up a number of things now that I could not figure out before…. thanks so much.
Now, my first major hurdle: I’m trying to set up the tmp36 to measure temperature using c++. Following your steps on page 384 when I try sudo sh -c “echo BB-ADC > $SLOTS” I get a response that says “sh: 1: Syntax error: end of file unexpected” (quotes mine). Could you explain a little bit more what this command is doing and perhaps what I might be doing wrong? It looks to me like it is setting up things to be able to read the ADC, but I’m lost at this point. Thanks for your consideration.
Hi Marty, thanks for your feedback. I think that your SLOTS environment variable is not set. You can test this by echoing the value of the SLOTS environment variable using the following:
You have a problem if this is blank — see page 223. Then see page 224 on how to ensure that this variable is passed to the root account by using the visudo command.
The command that we would like to execute is sudo echo BB-ADC > $SLOTS but unfortunately it won’t work. This is because we are redirecting the output using > but that step is performed with your user permissions (not superuser permissions). So, it has to be packaged up using a sudo sh -c command, which is used to perform the entire command (including the redirection) with sudo permissions. Hope that helps, Derek.
Very clear now… thanks for the amplification. I have the SLOTS environment variable set up now and the TMP36 is working fine now. I’m guilty of kind of jumping around the book some and tried the TMP36 implementation before I should have. I didn’t realize that the instructions given under the heading “A Room Temperature Sensor” in chapter 10 relied on previously absorbing the SLOTS discussion you had in chapter 6. I had skipped the section on “The BBB Cape Manager” thinking since I wasn’t using a cape it would not be too interesting to me. It wasn’t till I realized that the cape manager is the heart of how one sets up the GPIO pins that I needed to understand more about that topic.
I’m still very, very impressed with your book and the depth of understanding you’ve helped me with. I’m beginning to get this beaglebone to do some really useful things for me now! Thanks!
I think this is the best book about BeagleBone. I have read some other book but this is different. Good work Derek!
It took me 6 days to absorb this work! (I did have to rest after the thrid day.) 🙂
Really, what an outstanding piece. There are a couple of areas that you entirely glossed over that are key to my moving forward. One was using Qt. I have stuided 2 other books on Qt but learned nothing from either. Oh, I’ve been programming since 1977 and a software “engineer” since ’81 or so. UNIX/IRIX/Linux/Solaris is my background, along with Winblows, of course. My past work has centered mostly on the other end of the scale, like multi-user databases, for example.
Currently I’m tinkering with sensors but just can’t seem to get the basics through my thick skull, even though I’ve been at that for a while. Your book got me leaps and bounds ahead of where I was, via picking up tidbits in short web pieces and the occasional worthy book. So enough about me – just needed to establish my bona fides. 🙂
Back to Qt. You have a 45 minute vdeo on the web that I have watched twice, but you move through the keyboard so quickly I could not follow (plus the text is teeny-tiny) that I could not use your video as a reference. Is Qt a RAID environment or is it purely an IDE?
The money I spend on your book was well worth it and saved me probably months in my current effor, that of using a BBB for an IMU with WAAS GPS for some other tinkering I’m doing.
Thank you for the great work, sir!
Thanks for your feedback and kind words. Yes, I would have liked to add a lot more on Qt, but it’s not to everyone’s taste and I was under pressure to keep the number of pages, and hence the cost of the book, down. Unfortunately, it would take an entire book just to describe Qt and its application to the BeagleBone — from development tools, to the APIs, to building libraries, to deployments etc. What I tried to do in the book is to give people enough of a taster so that they could get a project up and running and see why it is a valuable extension to C++ for embedded systems development. I think that Qt is best understood once you think of as a set of platform-independent C++ libraries (yes, complex ones!). The Qt Creator program is an IDE, but it’s not required in order to build Qt applications — in particular it provides for a nice drag-and-drop UI designer. In the book I reinforce this point by building a Qt project directly on the BBB without the need for Qt Creator (pg. 442), but then I use Qt Creator for a more complex rich-UI client/server application. The code examples in the GitHub repository have a lot of extra comment that may help with your understanding. I appreciate that there is a lot going on but hopefully the two client/server examples (pg. 448 & 463) might be useful for information display using your WAAS, as they are quite complete. Kind regards, Derek.
Hi Derek, congratulations on the excellent reviews that you have received so far. I am interested in learning about interrupt-driven Linux device drivers. Does your book discuss such techniques? Best regards, David
Thanks David. In Chapter 6 I present userspace code for interacting with GPIOs using /sys/poll.h, pthreads, and callback functions. With this approach I demonstrate response performances of less than 350us with insignificant CPU overhead. The approach does not use interrupts but the performance is much better than a simple file poll and it is sufficient for most userspace applications. Unfortunately, writing device drivers was one step too far for the book but it is the next logical step for the content in the book, and it is on my list of things to describe. I just need to find the time now! Kind regards, Derek.
Thanks Derek. That is helpful. Best regards, David
Hi Derek… I just got a copy of the book today and my initial impression is very favorable. However, there’s one very fundamental (newbie) question that I have that I don’t think you answer (in the opening 3 chapters, admittedly read very hurriedly). I picture the eMMC as the BBB equivalent of the HD of my PC. If that’s the case, if I flash a new image on it do I lose all files and data that I’ve added over time? If so, is there an easy way to back up data to an SD card (assuming I’m flashing to a system that’s still functioning, of course). Indeed, such periodic backing up would appear to be prudent in any case if reflashing does indeed destroy everything. Thanks Dennis B. (Vermont, USA)
Hi Dennis, thanks for your support. Yes, that is a fair point. Flashing the eMMC will destroy all of the data on the BeagleBone, including your own files. There are a couple of different steps I would recommend to back up your home directory and transfer them off the device:
However, in the longer term I would recommend that you perform your software development on your desktop PC and remotely deploy the files as descried in Chapter 7. That way, should you damage your filesystem using your code, then you can restore it very quickly. I think that you always have to be prepared to lose the contents of your BeagleBone when you are developing code that interacts with the system. Hope that helps, Derek.
Hello Derek, This is, unquestionably, the best book I have ever read on the BBB or similar boards. I really appreciate the effort you put in making it accessible to people ranging from those with a rudimentary knowledge all the way to experts. Are you compiling all the erratas in a single place? If so, where can I find them?
Thanks, Pedro
Thanks Pedro for your support! For the moment I am adding the errata to the bottom of each chapter web page. I will create an aggregated guide once it appears that we have found them all! Kind regards, Derek.
Thanks for the great book. I had watched many of your videos, so when I saw you were writing a book on the BBB I preordered it. It’s the best book on BBB ever. Just a few comments, these things are problems I encountered while setting up cross compilation on my windows desktop. These probably are the results of my ignorance with Linux. The first problem was trying to find a live image of Debian 64 bit. I found a live 32 bit Debian image and I installed it without much trouble in VM VirtualBox. After following the instructions in the book I could get a “Hello Word” program to compile but it wouldn’t run in the emulator. Following the error messages from the console I had to copy 5 files from /usr/arm-Linux-gnueabihf/lib to /lib to get it to run correctly. The files were: ld-linux-armhf.so.3; libstdc++.so.6; libm.so.6; libgcc_s.so.1; and libc.so.6. Thanks for great book.
Thanks Bob for your support and kind words. The Debian 64-bit image has the name “amd64” and is suitable for Intel platforms. For example, the network install (netinst) is available on the right-hand side of this page: https://www.debian.org/CD/netinst/. Ideally, I would recommend the use of Debian 8 (Jessie) due to problems with cross compilation. See the instructions on the Chapter 5 web page. That was a strange problem with the emulator! Thanks for letting us know as it may be helpful to others. Kind regards, Derek.
Thanks again for your awesome book. I did try the “amd64” image but had trouble getting it installed in VM VirtualBox, I’m not sure why. I’m a retired aerospace engineer. Years ago we used Unix running under Solaris, but by the time I retired we had switched to windows workstations, so I lost some of my skills with Unix/Linux. I had read a number of books based on the BBB. but they all lacked the depth of your book. They all were “starting out with the BBB” level and left me with many unanswered questions. Your book fills in all of those questions and more.
Thanks Bob, Derek.
Hi Derek,
I am completely new to Linux and have been working on other embedded systems with OS and C/C++. I searched on the web and found that BeagleBone board would be a good way to start off with Linux learning and development. I have ordered my copy of the BBB as well as the book which I hope to receive in a day or two.
But hearing about all these reviews i just hope that me, being a newbie to Linux, try and get as much out of the book as i see others are.
Thanks!
Vani
Hi Vani, if you have experience of C/C++ then you should be fine. If you have experience of development on other embedded platforms then you will find the interaction with GPIOs under Linux more verbose and less efficient, especially for real-time tasks. However, you will be impressed by how you can leverage Linux to build advanced network-attached embedded applications. Enjoy! Derek.
HI Derek….
Yes I do have experience on other embedded systems, have been working on those for 9 years now….Wanted to get my head into linux embedded as well….too late but still!!
Looking forward to make the most of this book…
Wah! My book is already starting to fall apart. It is almost new and I’ve used it so often, it is starting to disintegrate before my very eyes.
It is SO handy!!!!
Dr. Dereck Molloy.
I am definitely going to buy your book.?
However, I have a question:
Do you have a list that mention all the electronic components needed
to complete the projects in the book? That way I will order all together.
Thanks Daniel, I’ll have to do up a full list and add it to the website — please check back later. Kind regards, Derek.
Hi Daniel, I just added a parts page. See: http://exploringbeaglebone.com/example-parts/ Kind regards, Derek.
Thank you so much for the information Dr. Derek Molloy.
Also, thank you for the corresponding links added, those are very helpful, as well.
Derek,
You’ve written a wonderful, comprehensive book that really make it easy to use the BeagleBone. I’m moving up to Beaglebone from years of working on small, single-chip micro controllers. One thing I have not been able to find in your book is this: I’ve got an application written and test and it works fine. How to I get it to run automatically at power-up without logging into the board? For truly embedded systems, this seems like a very important thing. Solutions involving systemd don’t seem to run until you login to the board (maybe because they rely on bash scripts?).
Is there is easy way to autostart a binary that was written in C or C++ at power on without requiring someone to log in to the board? You have some info on installing scripts in /etc/rcx.d directories in Chapter 3, but installing in /etc/rc5.d seems to only run the script after a login.
Any ideas on how to make BBB autologin/autorun a program at power on?
Thank again for such a great book!
-John
Hi John, thanks for your kind words! Yes, to start a service on boot is covered, but it is hidden away in Chapter 9, beginning on page 368. Once you have the C/C++ program built, it is reasonably straightforward to start it — use the bbb-serial-server.service that is listed on pg. 369 as a template for your custom service, placing the executable name against ExecStart. Use systemctl to enable the service. Hopefully that helps. Kind regards, Derek.
Derek, thanks for putting together the best practical reference/tutorial on the Beaglebone. Your book and this accompanying website are my go-to twins on most everything BB. I am running the latest Debian (3.8.13-bone70). I hope to use this board in a programmable irrigation system for a garden. I am porting some existing code from a Kinetis board to the BB. I like the idea of having a real TCP/IP stack at my disposal versus having to spoon-feed an add on module for communications. For real-time requirements (PWM, input capture) I’ll be using the PRU.
Thanks again.
Best Regards, Frank
Derek, this book is simply fantastic. All that info in one place, this is a worth while investment for anyone getting into this space. I have been playing with pics, motorola controllers, stm’s etc and have several dozen books on this subject matter, this one is pretty incredible with indepth technical detail and how-to’s for beginners and advanced alike. the accompanying website with updated info is superb with new content, code and articles etc saved me hundreds of hours of googling, a lot of effort has gone into this book, thanks to everyones contributions, especially to Derek for taking the time to write this comprehensive treasure of a book! This is THE book to own if anyone is interested in jumping into IoT space, microcontrollers, hands on solution development using reasonably yet powerful modern soc type processors, just buy this book asap, you wont regret it. Looking forward to more from you. -Elliott, Ontario, Canada
This book along with the companion website are incredible. I have read the book from cover to cover and now carry it with me everywhere in my backpack as an invaluable resource to refer back to. I recommend it to anyone I meet who is interested in BBB. There is no other way to so thoroughly learn BeagleBone. From what you learn in this great book and the companion site resources a, there is very little you cannot do with this BBB platform. I strongly believe a dedicated person could make a living developing solutions using simply their mind, and the powerful BeagleBone Black and this book (and website) as a guide.
Thanks! Derek.
I finally took the plunge and bought a bbb and the book! It was my new year’s resolution to start learning this, so I’m just a few months behind 😉
Coming from a windows application programming side, never having touched linux, let alone building linux for an embedded device, anyone know if visualgdb or wingdb is commonly used (either in the book or communiity) ? It’d be nice to use the M$ Studio IDE for developing/debugging, at least until I’m familiar with gnu toolchains, etc.
My main learning objectives are working with linux embedded system and network programming… specifically, I’m interested in UDP programming, as I understand it is the common way IoT devices communicate. I assume a dedicated book on TCP/IP is needed to understand networking, any recommendations or videos that would be a good start? I saw a book for ‘WireShark’ but it seems geared for advanced readers.
Thanks!
Hi Ben, well done — it’s always good to keep learning new things! It is possible to use the GNU toolchains from within Windows with MingGW but I have found it to be extremely painful, particularly if you with to use 3rd party libraries. I think that the best way to go is to install an Oracle VirtualBox image and do all your Linux-based development within that. The nice thing about using a VM is that you can back it up and revert to an earlier version if you make a bad mistake — great when you are learning. For IoT applications, you can get a good start with the TCP communication work in the later chapters. There is everything there that you need to get started with TCP client/server applications (UDP can come later). Having the VM also means that you can build a multi-tier client server application all on the same machine and bring wireshark into the picture! Good luck with your studies! Derek.
Derek,
Thanks for a really grand treatment of the BBB in your book and videos. I gave both a shout-out on my company web site today.
Tomm
Thanks Tomm, Derek.
Are you going to write a book on the MSP432? How about some more videos?
Andy
Hi Andy, No book planned on the MSP432 — I’m involved in a different project at the moment that is consuming all of my time… Kind regards, Derek.
My first compiled language was Fortran with no dates after the name. My son now wants to include a microprocessor in some airborne camera pointing and he’s all in favor of a Raspberry Pi. For a bit more than a year I have been trying to find out how to program it. Yes it will run Linux, Python, and perl, but I need to use the extra little goodies that Broadcomm put in. So far all I have seen is guess work by some other folks who finally figured out a way to get pulse width modulation to work. I made folks mad when I refused to work that way and insisted on at least a listing of assembly commands for the parts. That’s proprietary information is the answer.
With that as a background I was absolutely pleased to see a list of commands in your book which the lady brought home from the library. My order for a personal copy has been sent off. I’ll have a real Beagle soon and I just might be able to make a contribution. Thank you for doing it right, including the discussion of timing without interrupts. It will be fun going to my pre-fortran days and get back to an assembler and a soldering iron.