You are currently browsing the tag archive for the ‘gadgets’ tag.

When I have a bug of the sort “nothing is working” or “the peripheral is acting like the processor isn’t talking to it”, the digital multimeter (DMM or DVM) is the tool I start with. It sits on my desk, all the time, even after a clutter purged. It is easy to use but a very yes/no, working/not working sort of tool. It is kind of binary, like a hammer. It is either hitting the nail or not.

If something is not working, the next tool is an oscilloscope. Like a microscope for electrons, an oscilloscope will let me see what is going on. However, to get an oscope, I need to call an EE friend and ask if I couldn’t please borrow his scope (he always says yes). Then I head over to his house after he gets home from work (I think his wife is afraid of the garage) and pick up the scope. I usually get it for a week or two, depending on whether he’s got a weekend project planned. (This is Phil of Weekend Engineering so he often has weekend projects planned.)

Where I’m going here… using an oscope requires planning. It requires me to admit my bug can’t be solved by just trying something else, that typing another line of code or doing a recompile isn’t enough. An embarrassing amount of my time is tweaking my code to do one thing just a little different. Admitting I can’t do that until it magically works, well, it takes a little while.

Even when I have 24/7 access to a scope, using it still means figuring out where to attach the probes to the board and configuring the scope. Admitting I have a problem, a real problem and not just a typo, is oddly difficult. I should just be able to figure it out.*

*This is a myth. A complete and total myth.

When I worked at HP, there were plenty of scopes around. But they all weighed 40-60 lbs (and dropping it would have been *bad* because they were hideously expensive (like 1/2 year salary expensive)). So in addition to admitting to myself I needed help, I had to find a big strong man to carry the thing for me. Who would inevitably offer to help me connect it to my board and then take credit for the solution. (Why didn’t we just put the darn thing on wheels? As I look back, I’m a little frustrated by that idiocy.)

There was another tool I used a few times there, one that I think was on wheels: the logic analyzer. It hooked up to dozens of digital signals and would help me figure out what was going on all over the system. But it was a very difficult tool to use (its manual was about four times longer than the oscilloscope manual and it cost a whole year’s salary). So to use the logic analyzer, I had to admit the problem was big enough to stop my normal work for three days, get someone to help me transport it, get another someone to modify my board so the signals were available, set up the analyzer, and then, within a few hours of getting the information, solve my bug.

Once I admitted the scale of the problem warranted a tool of that magnitude, and put in the diligent effort of setting up the tool, the solution was always obvious.

Now logic analyzers are tiny widgets that plug into USB ports and take all of ten minutes to set up. (I did it (almost) live unboxing of the Saleae Logic on my new podcast.)

But I still have to admit I need it. I wonder if I’m going about this wrong. In the past, I’ve always waited for a problem to happen. Then I’ve waited until I determined I couldn’t solve it the easy way (poke, poke, poke). Then I grudgingly admit it won’t fall to trivial debugging. Then I pull out whatever tool will help, grudgingly (still) hook it up and configure it. Then (usually), the problem falls fairly quickly.

First, the grudgingly parts… the fact that I can’t type my way out of a problem doesn’t make me stupid. I know that and yet… this is what programming is to many people.

Once I got my itty-bitty, super cheap new analyzer set up, I left it in place. And now I’ve moved on to other issues, just adding more signals. It is really handy. I can look at things whenever I want… before I start tippy typing randomly and pressing the recompile clean button for no reason.

But some tools take time and they don’t look like forward progress. It is hard to know when to throw in the towel on being a monkey typing randomly (and when to stop hoping Google, Stack Overflow, and caffeine can solve your problem). On the other hand, reading the manual or getting the right tool or taking a class… well, sometimes it is necessary to take a step to the side to get on to the fast track to the solution.

There is a lot of talk (and rumors) about watches.  I keep thinking “we don’t need no stinking watches”.

I like not wearing a watch. Having something on my wrist decreases ease of melding with my computer. I like the flow-state where it is just me and the bits, working together to make each other work.

Thus, if I was to give up my previous wrist space, it would have to be for a good reason.  It would not be a pedometer ( lives in my pocket), a GPS (lives on my phone), or a sports anything (lives nowhere on my person).

I’d consider a health monitor but I don’t think the technology is there. I’d want it to monitor core body temperature, heart rate, glucose levels, and blood pressure. Basically, it would be a wrist mounter tricorder. None of those are easy to do on the wrist (also, noninvasive was implied) so this seems like a pipe dream.

But I’m not completely unreasonable. I’d settle for an auxiliary screen for my phone. It would have to be light, more like one of those rubber cause wrist bands (i.e. livestrong) than a proper watch.

I’ve heard rumors of Apple and a slap band style. I could get into that. Say it is two inches wide and eight inches long. When flat, it could show me movies via, I dunno, Bluetooth (or BTLE). My headphones would plug into my phone so the wristband doesn’t need a jack. Though it could have one which would let me watch movies with someone, that’d be neat.

Given my goal “watch” is now about 2″ wide and 8″ long, the screen could be about 2″ x 4.5″ which would show movies in widescreen (16/9).

I could see using the wristlet in flat form as a display, using my phone’s screen for a larger keyboard. But I don’t have any problem with typing and seeing on my phone (most of this blog post was written on my phone).

When the wristlet is in coiled mode, it should show time and some chosen info from my phone: texts, emails from VIPs, tweets, etc. I’d like to be able to press something and say show me more and dismiss (also pause, forward, and back for movies). I don’t know if that means I need a touchscreen or just a few buttons on the end. With feature creep, I could see a stopwatch but I don’t really need a features I’ve got elsewhere.

I understand a lot of people are trying to make a wrist based phone and I can understand that. But even if they succeed, I don’t want that. How about instead of another me-too product, we get something really spiffy?

If you want my wrist, be innovative.

 

At the embedded systems conference, Star Simpson, Jen Costillo, and I did a talk called Start Tinkering. The goal was to get people interested in doing hobby projects: why we do it and how to get into it. We did a radio show, I announced at the inaugural podcast.

But if it is the inaugural, that indicates there would be more podcasts. So what would we do podcasts about?

This one was very high level, an introduction to getting involved. I think I'd want to do a deeper dive into technical things, but still with a hobbyist bent.

I'd like to have a podcast that was just Jen and me, getting a box from Amazon that contains an Arduino and maybe one other board (accelerometer? ThingM LED?). We'd chat and open the box and download the software to make Arduino work. We'd do the normal Hello World to make the LED on the board work (that code is included when you install the compiler), and then change it so the LED blinks at a different rate and all the stuff we'd want to do to get started. Then we'd make the other board (accelerometer? LED?) work to show a few more things. Then, I think we'd rip the Arduino part off and treat it like an Atmel processor. Jen and I would chat over all of this, talking about what we were doing, talking about why we'd do this instead of that, mentioning AVR Freaks and other helpful communities.

I suppose we could do this with Raspberry Pi as well. Oh, MBED, XPresso and MSP430's cheapest board as well. It could be a segment “box to xyz”

And I'd like to do an interview with Jeri Ellsworth, asking her about what she's done and what's she planning. Actually, I'd like to interview all my friends first- Phil over at Weekend Engineering would have a lot of interesting things to say, especially about designing for consumer products. My husband could talk about FDA and UIs and embedded systems. Star could come on and talk about TacoCopter (she's locationally challenged so having her be a regular part might be difficult).

Maybe we could do a radio show of teaching someone to solder. Or talking about software design.

We'll need theme music, I think. And editing software. And good mics. And time. Lots of time. That may be the most difficult part.

lt has been a month so I figured I’d talk about the new car, give it a review. And then this week was full of NYT and Tesla arguing like internet n00bs (proving, even if you are the NYT and CEO of a medium-sized company, someone on the internet is wrong).

Let’s recap my views on the Tesla… I thought it was silly and expensive. While C likes bleeding edge technology, I’d rather wait until someone else dealt with the bugs before getting mine. Since I write (err, fix) bugs for a living, well, I understand that it just takes awhile before things are solid.

Also, it is an expensive car. Really, really expensive. We could use that money for something else. Something worthwhile. Maybe three normal cars that we juggle in the backyard using our giant robot.

More than a year ago, I tried to get a friend to convince C it was silly to put down the deposit on a car that wouldn’t ship for a year and would be on the gushing bleeding edge. Said so-called friend told us he’d already put down his deposit; my hope for rationality was quashed.

Then it was like a game of chicken. I figured C would use his refundable deposit to have a stake in watching things. It would be amusing to him. And we’d never go through with it. Because, wouldn’t it be better to have a giant car juggling robot? Or something?

In the end, it is much cheaper to buy the car than to put my foot down and have my husband be unhappy. Clearly, I am a pushover for him.

But I wasn’t entirely a pushover for Tesla.

I didn’t like that Tesla isn’t a car company. While I don’t like the car lots or the dealers, I understand the process. Tesla isn’t that and I’m not confident I can navigate the shoals of an up-and-coming car manufacturer. Plus, I saw Tucker. I know how this story can end. (The Tesla has side headlights that come on when you turn, highlighting where you are pointing. It was eerily familiar after the Tucker movie. Also, quite amusing.)

Tesla did not help their case during the decision-making process. We went to one of their test drive extravaganzas, with balloons, soft-serve ice cream, a DJ, and the opportunity for one of us to drive the car on windy roads while the other one tries not to throw up on the super-expensive backseat. I hated the whole event. I was frustrated I couldn’t talk to the salesfolk because the music was so stupidly loud. I declined to ride along as I tend to get car sick and already knew the road they were taking; it wasn’t going to end well for anyone. I generally made my husband unhappy with my complete crankiness. But he still enjoyed test driving the car.

I was worried that we’d get the car and I’d still be cranky: unable to drive it for fear of hurting it, unable to look at it without thinking how many hours we’d have to work to pay it off, unable to ever bond with something that financially irresponsible.

It took two days. Maybe less. We got the car on Saturday, took it for a long drive, had annoying problems (had to stop at a gas station! oh, the chagrin!) and eventually came home with me liking the car but not loving it (also, slightly carsick). I didn’t drive it until Sunday and then only to pop to the library and back: boring, even in a nice car.

The next day, I took friends out to lunch in it. I accelerated outrageously and cornered hard (I <heart> freeway on-ramps). I showed them the frunk (front trunk). They oooh’d and aaaah’d over the utterly ridiculous retracting door handles. We talked about the car always having a full tank when it leaves the house. They played with the sunroof. I showed them the adorable key (vroom, vrooom!).

In showing them the sweetness of the car, I somehow realized I’d fallen for the Tesla.

It’s name is Electron.

C says it is too dirty for a photo shoot, I’ll just take a picture I’ve been thinking about for awhile…

 

Let's take a look at what's under the hood...

Let’s take a look at what’s under the hood…

Hey! This car is puppy powered!

Hey! This car is puppy powered!

Does anyone have 30-60 hamsters I can borrow? I think that will be even funnier.

About a decade ago, I had the idea to create a data logger, it would write data from a serial port to a USB thumb drive. I'd worked on a lot of devices that had serial output for their main interface or for debugging purposes. Normally, to get data, I'd have to hook a computer up to the gadget, hoping that the laptop batteries didn't die, that Windows didn't go to sleep, and that I didn't need to timestamp anything to greater than 4ms granularity (Window limitation). The ability to store days or weeks of data would be fabulous.

I chose the processor because it had the bare minimum I needed and a USB device. I got a wonderful and generous EE to help me choose the other components and make a schematic. I paid for it to get laid out, ordered all the parts, built kits, got boards fabbed, bought cases, worked with a model shop to get the cases cut for the boards. I learned a whole heck of a lot. The boards came in and came up ok but the vendor's USB library worked with only one or two thumb drives. I worked with the vendor to expand their library. Then I got a full time position and the frustrations of dealing with the vendor… well, I just finally got rid of the boards and cases recently (though not the completed one, there on the left of the pic). About two years ago, someone else built a data logger, one that I could just buy and it would do what I wanted.

About six years ago, I saw a product design contest and entered it with a neat new idea. I wanted microcontrolled Christmas lights, ones that I could put up and never take down because they'd change color to match the upcoming holiday. With a marketing VP friend, I wrote a complete business plan (summary: holiday decoration is a huge market). The software was easy to explain and the market was there but the hardware was difficult. The way the lights were to be controlled led them to have an unwieldy cable, making them expensive and essentially unmarketable.

Two years ago, GE came out with individually addressable LED strands (on the right in the pic). A hacker worked out the control protocol shortly thereafter. Anyone who wants to make my holiday lighting needs the $50-80 light strand, a $30 Arduino controller, and freely available program. Ok, so it is still expensive but it isn't impossible anymore. After I (and another wonderful EE) presented how to put this together at this spring's Embedded Systems Conference, I was accosted by an engineer for a lighting company asking if I had patented the idea (no, I just wanted someone to build it for me, I didn't want to block development). After a bit of searching, a generous patent agent friend found that Philips had patented “LED as applied to…” well, anything… including the “tidy bowl” application.

About three, maybe four, years ago, I got an idea for a video game called Shoe Shopping Adventure. The player would make life choices (i.e. career, friends vs. work) and that would translate into their need for different varieties of shoes, their available funds, and their time allotted for shopping. I learned a bit about iPhone programming, drawing shoes, and designing games. I tried to get Zappos involved because I was thinking that one way to avoid doing a lot of UI design is to use actual pictures of actual shoes. And as a revenue source, people who bought shoes in the game might want to see those same shoes for themselves later. Anyway, I only bugged one software friend and she mostly just had to listen to me babble one afternoon. Well, and my husband who has been supportive through all of these. So far, no one has made this game for me (yet) but I stopped development because it is a heck of a lot of work (and because I started writing Making Embedded Systems).

It isn't that I don't finish things. I do. I mean, I wrote a book (two, actually!). And I've shipped tens of products. But those have been for other people, for the companies that I've been employed by. The book was for myself but I had some external impetus there.

So it is with some trepidation that I say, once again, I have an idea. I wonder if I'm ready. And what I'll learn.