Monday, May 28, 2018

Building a display

Here I'm going to show you the steps to building one of our latest displays. This is just commodity Raspberry Pi hardware in a 3D printed enclosure, but it may be interesting to readers to see what goes into the device. We start with all the components laid out:

There's a 4.3" HDMI LCD display; a Raspberry Pi 3; an XBee breakout board; an actual XBee with a u.FL to RP-SMA connector and a 2.4 GHz antenna; a pushbutton encoder; a 3D printed enclosure with standoffs and screws; and a RAM mount base with screws. We have already wired the XBee breakout board and the encoder to the solder pads on the LCD display, which are wired into the Raspberry Pi.

Next we assemble the XBee into its socket. We mate the Raspberry Pi to the LCD circuit, and attach the (clumsy, I know, I know...) HDMI connector:

We then insert this into the back of our case:

And then we add our screws and standoffs to secure the LCD into the case (this also holds in the Raspberry Pi):

We then insert the encoder into its matched slot in the case:

And tighten the panel nut on the opposite side:

We then attach the u.FL to RP-SMA wire in the case panel mount slot, and attach the u.FL connector to the XBee:

Meanwhile, we screw the RAM ball to the case back. Note that it has a grid of #8 holes allowing the base to be positioned as you need it:

We then put some 3M VHB tape on the back of the XBee breakout and mount it to the case back:

Finally, we screw on the case back from behind:

We then attach the antenna and press the knob onto the encoder shaft:

This also works with a stubby antenna, depending on how far your probe is from your display and what's between them. Here is Linux booting up:

And here is an Airball display showing strong wireless signal (the battery status monitor is not yet working):

Friday, May 25, 2018

Airball system #2 is alive

A couple of days ago, I unboxed two new probes from Jeremy:

Isn't that sweet looking? Wouldn't you love to get that in the mail after ordering it from Sporty's? Well ... maybe soon. :) Anyway, this evening I got the second complete Airball system up and running:

The probe portion consists of:
  • Jeremy's V4 probe board (with the Atmel microcontroller directly on the board -- no more Arduino breakout boards!)
  • An actual temperature sensor probe exposed to the air
  • A probe housing built by Jeremy, duplicating the 3D printed designs I made in my garage (we both have essentially the same 3D printer)
  • Improvements by Jeremy to the probe housing as detailed in his last blog post
The display portion is:
  • A Raspberry Pi
  • A 4.3" 480x272 LCD display (still the kind with the clunky HDMI connector)
  • A 3D printed case
The display dimensions and resolution are now the same as what we're planning for the more long-term, compact display that Jeremy is working on at the moment.

Note the wireless signal meter and battery gauge. The battery portion isn't quite working right yet, probably due to a software problem on my part, but the wireless signal meter seems to be doing a good job. Jeremy's new probe firmware sends battery status, and he prototyped some code to read the signal strength (RSSI) from the XBee that I incorporated into the display.

A local CFI has our first system and is trying it out with his students. Now we can have 2 more systems. So I need to build up a second display just like the above, and we'll have that!

Exciting times. Stay tuned!

Wednesday, May 23, 2018

Airball takes a 30-hour trip to Houston and back

In addition to working on Airball, I also volunteer with FIRST as a mentor for an FTC middle-school robotics team. Although our team did not make it to the World Championship this year, I decided to go anyway to watch, learn, and meet people. I live in Reno, and the event was in Houston – what better reason to fly my DA40 cross-country?

It's about 15 hours of flying time each way, and I planned to do it over two days each way – with Airball attached, of course!

Attaching an Airball probe to a DA40 tiedown point

The first problem to tackle was how to attach an Airball probe to my DA40 reliably and have it be easily removed, easily reinstalled, and not in the way of anything important. My previous flight with Airball used the tiedown point, but required replacing the tiedown eye bolt with a RAM ball mount. For the cross-country, I wanted to ensure the tiedown eye bolt was still usable even with Airball installed, so I redesigned the mounting system.

I decided on an Aluminum plate (3/8" 6061) shaped in an aesthetically-pleasing way with two holes drilled and tapped 1/4"-20 threads for RAM ball mounts, and a third through hole for the tiedown eye bolt:

A custom mount for DA40 wing tip tiedown bolts.

This mount allows up to two RAM ball mounted devices per wing tip tiedown, so Airball and a GoPro can co-exist as well.

Waterproofing my Airball probe

In building and collecting data from the Airball probe designs up to this point we had not been terribly concerned with waterproofing the probe, because our data collection flights were generally on really nice days. I put some thought into how to (at least nominally) waterproof my probe so that I would not have to worry about whether or not to attach the probe on any given flight, and wouldn't have to worry about it if I ended up IFR in some clouds.

There were a few things I could identify and pretty easily fix or modify on the probe to ensure it didn't get any substantial amount of water in it:
  • The nose and the part that attaches it to the acrylic tube (which are 3D printed in two separate parts due to their geometry) are attached to each other with small screws, but I also glued them together with CA glue.
  • I added rubber gaskets for the RAM quick attachment mounting hardware between the "saddle" part and the tube and between the "saddle" and the RAM mount.
  • I 3D printed custom hexagonal-shaped plugs for RAM bracket's screw/nut holes to limit any water ingress which could then get around the screw. (These could be glued in for more permanency and perfect waterproofing of that path, but I opted just to press-fit them into the holes as I don't expect any forced water ingress anyway and a drop or two of water won't hurt anything.)
  • I glued the static probe into its hole with CA glue, and plugged its set screw hole with foam which was also CA-glued in.
  • I sealed the gaps between the tube and the 3D-printed mount parts with kapton tape, so that they could still be disassembled if needed.
  • Finally, the tail part has a slot which allows charging the probe and turning it on and off so it could not be permanently or even semi-permanently sealed, but I opted to just cover it with electrical tape and see how it did in flight. It was fine!
These are the rubber gaskets on the RAM mount parts:

The Airball probe's mount "saddle" got some gaskets.

The full probe, ready for flight (I also added a nice information card inside the clear tube, with contact information in case the probe was lost for any reason):

A ready-to-fly Airball probe (after returning from the trip).

It worked well! We didn't get to fully test the waterproofing of the probe as there wasn't really any significant rain anywhere on our flight legs, but we went through a few clouds and got the probe misted pretty good, and it was rock solid.

A portable data logger

In order to collect data from about 30 hours of flying, I needed to get the Airball display into some sort of shape to be taken along in the plane without getting in the way. Unfortunately I ran out of time to get the actual Airball software up and running nicely, and given some recent software changes my probe wasn't talking to the Airball display software. However, I could run some logging software so that I could collect and log all of the flight data (which I can then compare to the data my Garmin G1000 logs, for comparison and validation purposes).

I needed to do a few things:

  • Get everything to fit in a small package. I made some 3D printed parts to hold the display and all the guts into a "sandwich" form factor that could be compact and sturdy enough to survive the plane trip intact.
  • The Raspberry Pi doesn't have a typical PC's battery-backed real-time clock, so I added a Maxim DS3231 added RTC module so that it could keep time between flights without internet access to do an NTP sync at every boot.
  • I added a radio antenna and mount which would, I hoped, maintain constant signal from the probe.

This is the prototype display that I ended up with (missing the antenna and RTC module, but otherwise complete and totally functional):

The prototype display's "sandwich" form factor.

I didn't have sufficient hardware or space to mount the display on the panel anywhere, so instead I tossed it into the back seat on top of my flight bag:

My prototype Airball display "lovingly" placed in the back seat.

The flight went well overall, and I look forward to sharing some of the data I collected!

We made a fuel and lunch stop in Sedona, where I captured this shot of the plane parked on the ramp – Airball is so small you can barely even see that it's attached, but there it is on the left wing:

My DA40 parked on the ramp at Sedona (KSEZ).