Review: The Barr Group’s “Embedded Software Training in a Box”

I first heard about the Barr Group’s “Embedded Software Training in a Box” at Dan Saks’ CppCon talk “extern C: Talking to C Programmers about C++”. During the Q&A portion of the talk, someone had asked about breaking into the embedded software industry. Dan suggested the Barr Group’s course as a possible first step. I’ve worked in the embedded software world for a while. And I recognize weak areas in my skillset. Always looking for opportunities to learn and improve, I decided to give this course a spin.

The Barr Group’s “Embedded Software Training in a Box” is a cheaper version of their four day, in-person “Embedded Software Boot Camp”. Both courses share the same material and the same exercises, but the boxed kit is self-directed. There is no instructor and no peer support. At the time of this writing, the “Embedded Software Training in a Box” is $899. That’s a whole lot cheaper than $2,399.00, which is what the in-person boot-camp costs – a price difference of about $1500, plus whatever travel expenses you’d otherwise incur.

The Barr Group’s website provides a syllabus for the boot-camp. Major topics you can expect to learn about include idioms for embedded programming with C, memory management, multitasking, and interrupt handling, real-time OS concepts, and a few other odds and ends sprinkled in for good measure.

The Unboxing

The following is a picture of what I received after purchasing the kit.

Within the box are five things – an RX63N Demonstration Kit from Renesas, ($105.19 from DigiKey at the time of this writing), a USB drive, an “Embedded Software Field Manual”, an exercise manual, and a quick-start letter.

The “Embedded Software Field Manual” is the cornerstone of this course. It’s intended to be the primary course material. This surprised me, however, as the field manual turned out to be a giant, spiral-bound print-out of all of the slides used in the boot-camp.

The USB drive contains a lot of things, including exercise projects, datasheets, various interesting magazine articles, a few e-books, and the Windows installer for IAR Embedded Workbench 7.0 – the compiler/IDE of choice for this course.

It’s worth noting that a license for IAR Embedded Workbench isn’t provided with the training material. In order to do any of the exercises, you have to obtain a trial license from IAR. Directions are included for how to do this. And there are actually two flavors of the trial license – a time boxed evaluation (30 days) and a code-size limited, time-unlimited evaluation. The training materials instruct you to choose the “Code size limited”, which is plenty sufficient for the exercises in this course.

The way the course works is that you read through the slides until you hit a “Hands-On” exercise. At that point, you’re redirected to the exercise manual which provides more details. Once you’ve completed the exercise, you return to the slides and keep going. Wash, rinse, repeat. There are nine hands-on exercises in total, and a “Cap-Stone” project at the end that’s intended to tie everything together. With the exception of the processor user-manual, the rest of the documentation on the USB drive is supplementary and can be read separately from the course.

Course Pros

  • The course covers a wide range of topics, including programming idioms, real-time OS concepts and scheduling algorithms, ADCs, UML state charts, interrupts, multitasking approaches, etc.
  • The Renesas demo board contains a variety of different types of components to play with.
  • Getting up and running with the Renesas board and IAR Workbench is super easy.
  • There are plenty of good supplementary articles and books provided on the flash drive.
  • The flow of the course feels very natural.
  • The hands-on projects are somewhat fun. (You can’t go wrong with blinky lights.)
  • Solutions to the exercises are provided.

Course Cons

  • As I said before, the “field manual” is just a collection of slides. Slides provide talking points. And without discussion around those talking points, a lot of information is lost. The vast majority of the slides are good. But there are a lot of places where more context is sorely needed. Sometimes acronyms are used without being defined, sometimes formulas are defined without any explanation of what they’re used for, and sometimes graphs are included that are just baffling. I confess I had to turn to YouTube at least twice for clarity on a few topics.
  • Many of the hands-on exercises are virtually impossible for the uninitiated to complete without looking at the solutions.
  • If you’ve never read a data sheet before, you may feel a bit “thrown in the deep end”. The course definitely doesn’t provide a gentle introduction in that regard. When the exercise manual says something like, “Familiarize yourself with such and such 50 pages of the processor data manual”, they really mean read all 50 pages.
  • No discussion of embedded Linux.
  • The tooling used for the course isn’t cross-platform. It requires Windows.
  • No course videos.
  • No online forum to discuss material.


This course is just OK, in my opinion. There are definitely some good nuggets of information. The exposure to μC/OS-III was new to me and I enjoyed that. But overall, I was kind of disappointed. The slide format didn’t really work for me. And the exercises, while interesting, sometimes felt a little disconnected from the “field guide” material.

The course could have benefited greatly from some online videos. At the very least, some discussion forums. For a $899 self-directed course this day and age, one expects such things.

The good news is that at the time of this writing if you’re interested in attending the in-person, boot-camp within a month of purchasing the boxed kit, the Barr Group will refund the cost of the kit so long as you bring it with you to the boot camp.

Do I recommend “Embedded Software Training in a Box”? It depends. If the company you work for has a good training budget and is willing to pay for it, sure, go for it. It’s not bad. If you’re paying out of pocket, however, I suggest maybe looking for alternative learning opportunities first.

Fatshark 600TVL Camera Holder for Diatone FPV250 V2

A couple of years ago, I built a 250mm quadcopter using a Diatone FPV250 V2 frame. This particular frame came with some sort of FPV camera holder that doesn’t actually seem to hold anything. So for a very long time, I resorted to zip-tying down my FatShark 600TVL camera. Inevitably, the camera would shift during flight. Sometimes the camera’s orientation would be weird but fine. Sometimes it wouldn’t be so great, often making it hard to even land.

I recently decided to do something about it. Using 3DSMax, I created three different frame-supported camera holders based on a design I found from a guy named Thomas Sevaldrud, which created a 600TVL holder for the ZMR250 frame. Kudos to Thomas for designing such a nice, and well-fitting, 600 TVL camera surround. I basically took his camera surround piece and added in custom frame mounts. All pieces were 3D printed using Shapeways’ “Strong and Flexible” plastic.

Design #1

At first glance, this design seems really nice. However, the tolerances on the gaps between the prop blades and the cage posts are pretty tight. It turns out that one of the props comes into contact with the camera holder. Not great if you actually want to fly the thing. Also, I realized that the camera is quite vulnerable in the event of a crash. The last thing I want is for my FPV system to be a casualty of my bad flying.

Back to the drawing board.

Design #2

This design works much better. The camera sits fully within the cage and the holder posts aren’t in any danger of being knicked by a prop blade. However, with design #2, my worry was that the camera holder was taking up valuable real estate inside the cage. I still have some tidying-up I’d like to do with my other components. So I wondered if I could do better, keeping the camera holder mounted using the front frame posts instead.

Design #3

This sort of blends designs #1 and #2. The camera sits back fully within the cage, and is still mounted using the front frame posts. In the design, I removed material from the frame mounts in the vicinity of the prop blades. It actually works pretty well. The only downside to this design is that I may have seated the camera holder a little TOO far back in the frame. Edges of the holder supports are slightly visible in the sides of the video feed. They don’t particularly get in the way, but they’re noticeable. I’ll fix this if I ever break it and need to reprint.


The latch is important as well. It’s what secures the camera in the holder and is used with all of the designs. (Again, big props to Thomas Sevaldrud for designing this).

The latch can be fastened to the camera holder using 2x8mm screws.


As for which design I like best between #2 and #3, I’m not entirely sure yet. It’s been too cold to fly with them. So time will tell.

If you’d like to try either of these designs out for yourself, here are the links to the STL files.

Design #2
Design #3

The inner diameter of the support posts is a bit tight and may need to be “opened up” a tad depending on your 3D printer settings. This was certainly the case with Shapeways prints. It’s not a big deal though. A 7/32″ drill bit used slowly will clean this up just fine.


Book Review: Motors for Makers – A Guide to Steppers, Servos, and Other Electrical Machines

Many months ago, I picked up a copy of Matthew Scarpino’s “Motors for Makers: A Guide to Steppers, Servos, and Other Electrical Machines” on a whim. I came across it while perusing Amazon. The reviews were good. And I’ve always been motor-curious. So I bought a copy.

Since then, it sat on my night stand. Each night, I’d pick it up and digest a few pages while enduring the stares from my wife, for she believed I may in fact be reading the most boring book ever written. That’s not a knock against Scarpino’s book. I’m fairly certain she thinks every successive book that graces my bedside is the new, most-boringist book ever written. But that’s neither here nor there.

As you might expect, the bulk of this book is about motors. Scarpino does a fantastic job describing the different types (e.g., DC, AC, Stepper, Servo, etc.). He covers the material in a very practical way, presenting theory where appropriate and without overwhelming the reader. There are lots of illustrations and photos. And for the math inclined, the formulas for things like power, torque, efficiency, etc. are all laid out with minimal fuss and fanfare.

But this book is more than just about motors. It has “Maker” in the title, after all. You’ll find chapters for controlling motors using the RaspPi, BeagleBone Black, and Arduino. An unexpected surprise for me was an entire chapter on building quadcopters and another on building your own ESCs.

The ESC chapter was a little over my head. And being a drone enthusiast, I found the quadcopter chapter a little underwhelming. But the rest of this book is great. Scarpino has a clear writing style and does a great job of making an otherwise dry subject matter a little more palatable.

If you’re into building things that move, or incorporate motors in some way, I highly recommend picking up a copy of this book! Two thumbs up!