Things I want

September 24, 2014

I suspect that these this exist. Or that I could build them if they don’t. And yet, I’d rather someone send me a link where I can just buy them.

  • A tiny board that I can hook to my computer to download sounds, then hook to a button + battery to play them. My neighbor down the street has some action figures that would be hilarious to mess with. Should run for a long time off a coin cell battery. Also, possible bonus points for making it BTLE updatable (but cheap is important too so it is only possible bonus points). [Update: Adafruit just announced what I want: Audio FX Sound Board. It is a little bigger than I'd hoped but everything else is pretty good. I just hope they get on with the rest of my list.]
  • A USB rechargeable ring of battery, 3.3V and at least 350 mAh. Would be nice if it was already the right size (and shape, with connectors) to plug a MicroView into. And by “ring”, I mean, should fit my index or thumb.
  • An LED that follows along with music, can tell me if my singing along is sharp or flat. Must work in the car, with the radio. Second version should work in shower, no external music, just whether I’m in a key (any key).
  • A handheld microphone that wirelessly (BTLE? iphone dongle?) connects to my phone to be used in live podcast recording. Also, an app with few bells and whistles but the ability to reliably record. Bonus points for an accelerometer in the mic that causes two channels to be recorded separately, depending on angle of mic.
  • 2 and 4 AA battery holder with (very efficient) power switchers that provide clean 3.3V power.

Let me know when you finish or find them.





Beagles in Paris

September 24, 2014

I’ve been working on a way to demonstrate a networking feature. I should tell you all about the networking feature but let’s just pretend that, like all routing protocols, we don’t really care about how it works.

Actually, that is why it is hard to demo networking protocols: either the demos do something and everyone says, “oh, I could do that over TCP/IP” or they don’t have any interface other than wireshark and everyone says, “wow, I’m bored.”

Yeah, I’ve been working in networking and missing my microprocessors quite a lot.

ANYWAYS… the demo! I have:

  • 8 BeagleBone Black, rev Cs
  • 8 LCD screen capes (these are absolutely marvelous)
  • 8 Webcameras
  • 8 brochure stands
  • 2 100W power supplies (each feeding four units, 5V 2A)
  • 1 hub to rule them all
  • 1 laptop to run the obligatory wireshark
  • Assorted cables (Power, Ethernet, one USB for config/debug)

We’re running something that acts like Dropbox so they all share the same data. (Seriously, I could tell you how but I’d use phrases like “Bit Torrent for the Internet” and get dirty looks from my workplace or crossed eyes from you.)

Before I go on with a few details about the build, how would you demonstrate Dropbox? As a walk-up, show-n-tell style demo on a crowded expo floor? Something that makes sense once you use it is remarkably complex for a demo.

For my demo, every second, each BBB takes a picture. It displays it on its screen and puts it in the shared directory. In another window, it uses a slideshow program to look at all of the pictures in the shared directory. Think of it like a security system, I show you what I see and what everyone else sees. This setup lets people see the how fast files are sync’d and the Ethernet traffic that passes on the wire to implement the protocol (look wireshark, no TCP traffic!).


The main difficulty I have working with the single board computers like BBB and Raspberry Pi is that I don’t know the overly crowded space. Good software might have terrible websites, yet vaporware always looks real. It took me a multiple hours of research and testing to settle on streamer to take still pictures and on feh to display them.

For the most part I used three units to do the setup and testing. Eventually, I got it working well-enough to go ahead and set up on all eight units. That was when most of the problems actually showed up, of course.

My pictures kept getting overexposed. They’d start out ok but get lighter all the time until all images turned white if the system was left alone. Of course, it took some time to figure out that the exposure setting was the problems since if I interacted with the units, it took much longer to get to white. Eventually I searched for possible causes, downloaded v4l-utils so I could try v4l2-ctl which communicates with the camera to change settings.  I added it to my start script and apt-get installed on all 8 units.

However, my pictures kept being overexposed at the top, for the top 20%. It wasn’t due to light flicker, pointing at a window (or covering the lens) got the same top part lighter than the rest image. It was definitely the image capture program. I’d put camorama as a step to verify the webcam worked from the display (it is a touch display, so pretty, so nice).  It didn’t have the same problem, but it doesn’t get stills. So I tried a different capture program: fswebcam. That didn’t help the problem and all a change of each control parameter didn’t help. However, fswebcam lets me take a bigger picture and then crop it down. So… problem solved-ish, once I apt-get installed on all 8 units.

I don’t know if that was an artifact of the camera I chose (the fairly expensive Microsoft LifeCam HD-3000). I tried a $6 from the random-cheap bin at Central Computer and it worked fine though the stills didn’t look as nice so I put it in a drawer, forgot about it. I may try to see if it causes the top-image-light problem but since I’m locked into the gear I have for this month, the only way is forward.

Though the slideshow program has been the stable and reliable part of the system for the last few weeks, I’m not sure I like feh. It has a term that will cause it to reload the image. So if I am on Charlie, looking at Alpha’s pictures, feh can reload every second so it shows the latest of Alpha’s pictures. Well, it can do that only if it is not also in automatic slideshow mode. It can reload images or change images. It is as though there exists only one timer in the world and feh must do the best it can with its feeble resources.

It is open source, I could download the code, understand it, fix it, and copy it to all of my units. Or I can make the slideshow a little faster so you are never stuck on one unit for too long.

The slideshow already gets a bit frenetic. Even with only three units it is a bit dizzying: the BBBs bright blue blinking lights, the screen’s orange blinking light and green shining one, the slideshow updating its window every second or ten, and the captured image updating every second. I had five units working Wednesday and will have seven or eight working all at once tomorrow.

I’m not sure how many they will run in Paris, it is ok with me if they only unpack three. And, I’m not sure I’ll have all eight working in the lab tomorrow because DeltaPuppy seems sick. Who gets a kernel oops in a mv command? I sort of expected that when I named GolfPuppy and HotelPuppy, those sound like slackers. Delta has spent more time getting its hardware put on different mountings so maybe it just got knocked around too much. (Yesterday, the mechE turned down my offer of ESD bag and carrying box, popped it into his bag; I begin to see why Delta is sick. Though, maybe this isn’t a sick puppy, just a victim of happenstance, he isn’t always sick…)

Our intern is going to Paris to herd the demo along (and a couple other dogsbody duties [omg, pun totally intended, snicker]). He didn’t even flinch when I gave him the two page long “here’s how you run it” instructions. Not even when I gave him the five page long “here’s how you build the system”, told him he needed to know in case anything went wrong. I think he’s really excited about going. I hope he brings me back something French.

I’m not going. I thought I might want to go. But things here are keeping me here and that’s ok.

The multi page instructions have been replaced with an expect script. Now it takes N lines to set up N units. And you don’t have to look up their identifiers, just know the first eight letters of the international phonetic alphabet. (The intern doesn’t know about this improvement yet, I’m looking forward to surprising him.) Also, expect is wonderful. I haven’t used it in years but it really is efficient. Now I know why my coworker asked why I was typing things instead of making a script.

Speaking of scripts, I wish I could turn off all the cruft that starts with the BBB. There are all these programs and I don’t really want them running (heck, I don’t want them there). I know I could edit init.d but I’m a little worried about breaking something. I haven’t yet seen a good guide to stripping down the BBB Debian system to the bare bones. Anyone have any suggestions?

Overall, I like the BBBs, I love these screens, I’m indifferent about the webcams, and I’m uncertain about the final mounting. I retain my Linux-is-hard-because-nothing-quite-works feeling. There is little standardization (one program likes to use man, another info, another has a sparse man page but gives a nicely detailed output with a command line –help invocation). And I like that this demo is built from off the shelf components, only a bit of extra software (most of which the demo team will provide in tutorial sessions). It has an “I built it, so can you” vibe going for it.


Musings on Smelltaste

September 4, 2014

There is a word for smell (like when we smell roses) and a word for taste (mmm… ice cream). But there should be a word for the combination of them. As I have identified the deficit, I will use smelltaste until someone gives me a better term.

There are times when the smelltaste is exceedingly different from the smell or the taste of something.  Take Japanese sake as an example, if you smell good sake, it is often floral. If you drink it, the tastes ranges but is often fruity. If you take a whiff and then a drink, it tastes like tears of happiness. Errr… I mean it is a combination of fruity and floral that reminds me of honey without sweetness (yeah, I know that makes no sense, but still).

On the other hand, if you sample the smelltaste of cheap whiskey, it is a sinus burning phenomenon followed by coughing pain.

As much as I love champagne, its smelltaste is not often as good as its taste (which, I think, is why I like the less yeasty, less scented sparkling wines).

When you want to learn about an alcohol, one of the first things you need to figure out is if it should be tasted or smelltasted.

Fresh-baked chocolate chip cookies and hot coffee are two items that are almost all smelltaste. The smell can be wonderful but the taste by itself is not as good as you might expect (yes, I did just give you an excuse to make cookies this afternoon, its for SCIENCE).

I got to thinking about this last night… while neither the smell nor the taste is reminiscent of anything particular, the black licorice smelltaste of Pastis reminds me of my childhood.



Circle clockwise three times

August 14, 2014

I mentioned that I’m working on a Raspberry Pi project with video. It wasn’t going well.

I started with Python + SimpleCV because it looked easy and fun but then determined that frame rates of six frames per second would make it hard to show moving things. So I went a more native option: cross compiled C with OpenCV.

The problem with this path is that it feels like work.

While I strongly believe in life outside tech, I do some personal engineering-related projects. I consider the podcast my main personal project. But Element 14 has graciously been sending me hardware and the occasional check to write for them. This arrangement lets me learn new things and share my enthusiasm. It is pretty cool (zOMG, you guys, they pay me to goof off! If I whine enough, they send me even neater hardware! This is such a scam!)

But I do have a day job. Oh, don’t get me wrong, my billable hours are not totaling anywhere near 40. But I could be gardening, reading a book, writing a novel, designing my Halloween costume, or painting the ceiling; I could be doing other amusing things but I’ve opted to work on a technical project because I find it interesting. Getting paid is nice and directs my (often scattered) attention but it is not a large portion of my income (thus it is not motivation enough).

Having a project lose the joy of discovery and become a grind is not good for its prospects of completion. (Though I am excited about the end widget. But maybe it would be easier to do on my laptop. But then it isn’t embedded. Maybe there is an 8-bit microcontroller out there that needs me to do something with it. You know, my Halloween costume is likely to be pretty technical…)

Doing a project in Python on the Raspberry Pi is fun: hack it together, do a little experimentation, call it done enough, maybe revisit in a few weeks.  But it didn’t work, too slow. And then cross compiling and C felt workish, especially the starting over part. I actually had some things working in Python. I fought the evil of Linux video drivers. I learned about computer vision libraries too. It was fun in Python.

It was less fun in C. Though, realistically, I haven’t gotten to do much C, mostly build nonsense. But SimpleCV looks friendlier than OpenCV.

Imagine my disappointment to read that I can only expect ten frames per second in the C+OpenCV version. I don’t know how I missed that. It seems impossible. There is rasppivid video that is 30 fps, why can I get to something like 25? Oh, I know there is hardware acceleration and blah. blah, blah. But I want it. I want it more than they do. (Hey, you did read my Guardians review, right?)

So now I’ve found a different Python package, one with better Pi Camera integration. It is even linked from the Raspberry Pi Camera page. (Was it there before and I missed it? The idea of that makes me feel slightly insane. I looked around A LOT for Pi Camera stuff before deciding to leave Python).

The Camera Modes documentation shows some high frame rates.  The text later talks about all the interesting ways users can mess that up. And there is a section for rapid capturing and processing though I wasn’t clear that I could display them too. It would be interesting to try.

Ok, I think that, yes, I am going to restart the project but back to Python. All the paths are frustrating. But Python has the most potential for amusement and the chance that I’ll get beyond fighting tools and back to playing with gear. I hope.



Hooked on a Feeling

August 12, 2014

I’ve seen Guardians of the Galaxy. Twice.

I was excited about the movie, I loved the trailers, even the teasers. I was pretty sure they’d taken all the good pieces and left the movie bereft of jokes. I was wrong, happily, happily wrong.

I’ve been trying to figure out why I adored GotG so much. Was it the really good plot? Was it the awesome number of quotable lines? Was it the fact that they had that meeting I have had at least once a week where a decision was made and then someone said “what? I wasn’t listening. I was thinking about something else”? (That is officially called “draxing” now, so you know.)

I love the point where one of them completely embarrasses himself, just to stall for a bit of time. I wish I was that brave. And I don’t know why I wouldn’t be. Embarrassment is not fatal. I love that he had the faith that his team would fix it.

It made me happy that at the end of the movie, the characters were relatively unchanged, except they were happier, more confident.

Let me recall my review of Thor (the first one). I could have sworn I posted a review of Thor here but can’t find it. Anyway, I thought Thor was a good movie but I found it difficult to watch. At the beginning, Thor is happy: happy to be a prince, happy to be a warrior, happy to be Thor. Then he get tricked, loses his hammer, falls in love, saves our world, goes home a man burdened by responsibilities, a dysfunctional family, and a long distance relationship. The movie was a story of a boy maturing to a man. He grew up and growing up sucked.

There is (or should be) a point in growing up where you have all this freedom and potential and energy: you can save the world and you want to but you don’t have to. It is a wonderful point. I remember the night after high school graduation as being fairly incandescent with possibilities and lacking in responsibilities.

There have been other points like that but, more often, the reward for a job well done is a more difficult job. That’s good but can get exhausting, even damaging as the difficult job becomes impossible.

There was none of that in the movie. The reward for a job well done in Guardians was the gratitude of a planet, a rebuilt space ship named after an 80s celeb, a new family, and a galaxy of possibilities.

If I could watch any movie this afternoon, it would be GotG. Again. It made me happy.