Posts Tagged ‘advice’

h1

Tools and parts

March 21, 2014

I posted the previous entry because I was talking to Phil about it, didn’t want to lose it to the depths of my folders.

He’s working on a tools list but there are a few existing as well.

Dangerous Prototypes has a parts list that describes what they commonly stock. It would have been helpful choosing parts for my little board. They also have an excellent tool list.

Adafruit has part finder (which I found slow to use) and a how to equip your lab note that sounds like what Phil was planning. They also sell a starter kit for $100. Finally, they offer advice on the tradeoffs of different soldering tools as you build your own setup.

Sparkfun also has similar beginner things and a ton of excellent tutorials. They sell a basic kit of parts and a deluxe tool kit (note there are also basic and intermediate).

As for kits of parts, search Amazon for the Elenco ones (i.e. caps and resistors). Even the cheap ones are pretty well organized.

(Post cancelled as I want to go do things. If this isn’t enough to get you started, well, MakerShed has a whole Intro to Electronic category. If you want to break into making a home lab, you can. Really!)

h1

Start Tinkering

March 20, 2014

We tinker: we create and build gadgets. Then, we leave work and do it at home, for ourselves.

Working on projects at home, in our garages and on our kitchen tables, is thrilling because we get to work on our own ideas. But tinkering at home can be tough without the financial support, the equipment usually available in a well-stocked lab, and the other engineering disciplines doing their parts. We’ve each worked out our own methods for getting things done (or done enough). The hardest part is getting started.

There are a few pieces of equipment and some websites you really need to know. Of course, what we think is important reflects our backgrounds and projects so we’ll tell you our biases upfront.

A little about us

Jen Costillo is one of the founders of Rebelbot, a software consulting firm. She is a firmware engineer who has done the occasional stint creating hardware designs. She also has an MBA with a focus on entrepreneurship.

El White wrote the book on Making Embedded Systems for O’Reilly.  In her professional life, she is an embedded software engineer working on race cars, DNA scanners, and gunshot location systems. She is the founder of Logical Elegance, an embedded software consulting company.

Star Simpson got into tinkering early, finding it the best way to teach herself electrical engineering while growing up in Hawaii. She has since attended MIT for a while, worked on hardware projects for fun, built robots for academic research, and done some work in industry.

While Star started young, Jen didn’t start until her job left her with a need to get her hands dirty. Early in Jen’s career, she had a job that was primarily cerebral (researching technology and marketing). She’s a hands-on engineer so it wasn’t enough to satisfy her needs.  At first, she was making quirky items that there wasn’t a market for, but she quickly had startup ideas.  During her MBA program, she started making hacked-together designs to illustrate key points in class assignments. Since then, she’s primarily focused her tinkering on merging art and technology and attempted to extend those ideas into business ideas.

El has a different approach, preferring to see herself as a mad scientist, inventing gadgets to amuse herself and friends. She admits that she gets bored with the ideas once they sort-of work and often moves on to the next shiny object. While her first thought-project was a robotic dog (well before AIBO came out), she was just a software engineer at the time. Happily, she quickly moved closer to the hardware, found electrical engineering friends, and was able to create a TTL-UART to thumbdrive datalogger (when USB was new).

Since then she’s gone through a period that was all about things that light up (such as the year-round Christmas lights presented at DesignWEST 2012). Lately, she has been working on health related things professionally and it bled into her tinkering; El’s been playing with a shirt to correct posture.

The last few projects Jen has worked on have been for her RFID Dance Project which convert dancer’s movements into music and electronic wearables using sensor and light for dance performances.

As for Star, after hearing about a blind teenager who taught himself to see through sound, she’s been working on electronic glasses (think opaque sunglasses) that put out a click to help the wearer learn to echolocate.

Setting up a tinkering space

Whenever you are building things, there are bound to be specialized tools that will make your life easier. And they always cost a fortune. Some companies will let you borrow tools for a weekend; others frown upon you taking the $30k oscilloscope out the door: you probably should get permission before the security guard notices.

If setting up a space at home is difficult, you might look at Hacker Dojo, TechShop, or other local hackerspace. These are physical locations that can provide workspace and tools. They can be expensive but so is setting up your own lab.

Soldering irons

While it is possible to do some embedded systems tinkering without a soldering iron, you won’t get too far before it becomes a blocking item.

What you need depends on your goals:

  1. Will you be prototyping using PCBs or (solder-less) breadboards? (PCBs will need more soldering.)
  2.  If you are soldering, will it be surface mount or through hole parts? The types of equipment used will differ.
  3. What is your budget for equipment?

In general, breadboards are a cheaper way to start. They come in different sizes, get the biggest one you can reasonably afford, it gives you more latitude for future projects.  When you get it, look for a kit of pre-bent jumper wires to connect pieces. Tweezers for dealing with tight spots, pushing the tiny wires in the tiny holes is much easier with tweezers. You may also want a few alligator clips (or hooks), some additional wires (which mean wire cutters and strippers).

You’ll probably still need a soldering iron. After Jen bought her sub-$100 Hakko FX-888, El tossed her old $40 Radio Shack model and bought the same. A crummy soldering iron will let you solder connectors just fine (well enough to work with a breadboard). But a good one lets you solder chips (and stained glass, but that is a different story).

If you are software engineer, or really, anyone who isn’t an electrical engineer, starting with PCBs is probably an advanced skill. Still, if you are going to do it, get the best soldering station you can afford (which if you are attempting to do surface-mount technology (SMT), should be around $200).

For either breadboards or PCBs, the soldering iron is not enough. You’ll also need tweezers (angled or flat), alligator wires, screwdrivers, wire cutters (angled is nicer), wire strippers, pliers, wire in different sizes (gauges), braided/solid, and colors. You’ll also need one clamps to hold a board (“third hand”). Oh, and solder, probably a medium to small gauge, preferably with flux. You may also want electrical tape, heat shrink tubing and extra hot blow-dryer like tube shrinker. Really, once you have all these things you’ll find other things you need, for example, a toolbox to store all this stuff in.

El suggests avoiding soldering as much as possible (but she came from the software world so that’s no big shock). She’s got an iron, some solder, wires, wire strippers and a magnifying glass. But she mainly solders connectors on things. And then hot glues them so they don’t break. Which they do anyway.

Jen’s more serious with a solder wick and solder sucker to get rid of excess solder. She’s also got solder paste, isopropyl alcohol, and horse hair brushes.

The board (and power supply)

Soldering irons (and all the gear that goes with them) are something you’ll want eventually, probably sooner than later. But you don’t have to start there. Start with a board, maybe a fully assembled Arduino if you are really starting out. That will give you a processor and some lights (and a huge number of add-on parts called shields). Then the big tool you need is a digital multimeter. A cheap $5 one is ok, you don’t need precision, just a check to see if the voltage is in the range intended and an ohmmeter to see if connections are being made.

If you go with a different board, you may need a power supply. Sometimes you can power them off of USB for programming but if you ever want to disconnect your computer, well, you need another power source. Batteries can be tricky; wall power is a lot easier to get started on. To convert wall power to something your board takes, you can get a bench top power supply ($70) which will be useful in lots of projects. A cheaper option is a tunable supply that has different voltages available (e.g., Adafruit has a DIY version). Another option is to cut up an old wall wart that supplies both the voltage and current you need.

Eventually, you’ll want an oscilloscope and maybe a logic analyzer. Bitscope and Seeed oscilloscopes and Salae logic analyzers provide excellent bang for the buck by attaching to your computer. More professional models can be in the $5-10k range for a starter unit (and maybe much higher for the one you have at work).

But back to choosing a board- what you need depends on what you are doing. But in getting started, look for free boards (there are usually a few available at DesignWEST and other conferences). If you have a stockpile, then you can figure out the details later. If you have to buy one, look for one that advertises it does things similar to your idea, particularly if you’d heard about it. The best part of well-hyped Arduino and Raspberry Pi is that lots of other people are using them so there are free tools and large communities. Most evaluation boards come with free compilers (and have onboard programmers/debuggers) but they are often limited in some way. If you spin your own board, you may need to invest in a JTAG (or SWD) programmer for the chip you are using.

Some resources we find useful

Sparkfun – A vendor of many prefabricated boards and pieces that make it so software engineers can build a system without even buying a soldering iron. And the tutorials section really can help. Great community!

Adafruit  – Very similar to SparkFun but with a different set of boards. Check out their Ask an Engineer section as other people may be looking to solve your exact problem!

Arduino – El went for a long time thinking Arduino was a little silly but then she found a few people who never did embedded systems playing with Arduino boards, not realizing they were creating amazing embedded systems. With so many plug and play devices, Arduino really takes the hard out of hardware. Plus, it is a nice microprocessor and not hard to break out of the Arduino mold to get something easy to use. If you head in that direction (or you have other Atmel based boards), check out AVRFreaks.

ThingM – They make LEDs that you can program, for example to match your outfit, and then put with a battery in your shoes. Seriously, they make lots of neat lights, programmable with an Arduino.

Digikey – Hardware in depth, including datasheets. They are expanding into being a bit more user friendly, adding a schematic capture and lots of tutorials. Star has a Digikey policy: Never search!  The product index is where it’s at. She uses Octopart to do more finding (and to get datasheets). There are other electronics distributors; if you can’t find things at Digikey, look at Mouser and Future. However, avoid Alibaba.com.

Amazon – Has a wide range of electronics tools at generally ok prices.

Microcenter, Fry’s and Radio Shack – Sometimes you need to see what you are getting. These physical stores can help with that though you may need to go to all three to find what you are looking for (and the best price).

Make Magazine – This is a magazine of people doing awesome stuff out of their house. The issue with the garage-created jet engine is an excellent read. But they’ve branched out into kits, many directed to the teen market so they are easy to use.

Oh, and El’s book – Making Embedded Systems. It is for people who start out in CS or EE and want to go to embedded software where a combination of skills is needed. It is also for people who tinker who want a more professional view and some tips and tricks on interviewing.

Finally, if you are doing this for yourself (and you don’t intend to productize it), sharing it with others will make development more fun (and can look great on your resume). Github is a good place to share software and Open Design Engine is a good place for hardware.

my lab bench

Note: this post was originally written in conjunction with DesignWest 2013 for the Start Tinkering presentation with 

h1

Where to start?

October 16, 2013

I got a message from someone who read my book. He said he enjoyed it (yay!) but  was disappointed it was mostly theoretical (boo!), and didn’t recommend a specific chip and give some tutorials on how to start using it. He asked if a $500 class would be a good way to get started. His background is software (I’d suggest different things for a hardware engineer but that’s a different post).

This seemed like a neat question so I answered and I figured I’d tell you my answer too, with a few only a few mods:

The chips change so fast that a book would be out of date before it was published. The class might be a good way to get started though, really, I’d say spend $50 on an Arduino board and build yourself a fancy Christmas light (or, if you’ve got time now, a Halloween scar-ifier of some ilk).

Arduinos have Atmel chips, usually the Atmega, a line of chips that is used in many shipping products. The community is huge so you won’t be learning alone. And the accessories for ti are amazing. You can start out in their C++ environment but strip it down to a microprocessor system and your own drivers if/when you are ready.

Another good source of software-to-embedded boards are the ones from mbed.org. They cost a little more but do some of the underlying drivers for you (and don’t make you fuss with cross compilers). They have more processing power (a lot more) so you’d get to see the ARM Cortex-M0 and Cortex-M3 which are the hot processors in the 32-bit space.

Maybe look at Electric Imp. They’ve got a neat system that lets you hook wifi and cloud services to lots of things. They do some embedded and it isn’t necessarily something you could build a career on but to stick your toe in, well, hooking your oven to the internet has never been easier. 🙂

Finally, lots of people love Raspberry Pi (and Beagle Bone Black). I see those more as Linux computers with a few limitations than proper embedded platforms. But maybe that is a good way to transition.

Circuit Cellar Ink is a good magazine. So is MAKE. They both will let you see what processors people are talking about and using in hobby stuff. Or look on the adafruit.com, makershed.com or sparkfun.com tutorials pages.

For more professional development (less hobby fun), contact TI, ST, Atmel or NXP and ask when they’ll have training in your area. Many times the training is free (and they give out dev kits!)… essentially you are letting them brainwash you to use their parts. But they all have good processors so no harm done. The embedded systems conference (DesignWest) isn’t until March 2014 but that is a good place to see all the vendors in one place (San Jose, CA).

Does that give you enough places to start?

I have a podcast (http://embedded.fm/), some of the shows cover how to get started with one thing or another though, again, those are starting points, not in-depth discussions.

Let me know how you get on.

And if you, dear reader of my blog, use any of this advice or want to suggest other things, please let me know.

 

h1

An email to a coworker regarding instant messaging

September 27, 2013

I asked why he was never online. He replied:

The [group IM program's] notifications have trained me to ignore it since the notification are from someone who has sent an ALL message. For me, [it] is as effective closed as it is open. Is there a better way to use it? The thing I cannot have is interruptions every few minutes.

I left it alone for nearly a week, it wasn't important. But it mattered so I decided to write up the following.

If we worked in the same office, I would occasionally come up to your desk and ask if you had a minute. Then, if you said yes, we'd have a conversation that was back and forth (and often more friendly) than via email.

We don't work in the same office but IM gives us the opportunity to have conversations. I don't mind sending you emails but sometimes it is easier to have a faster flow of back and forth for little issues.

For example, if you were on IM today, I'd have asked the questions about schematic revisions I sent over email (and probably spent less time wondering if it was something broken on my end). Actually, if you were on IM, I probably would have asked that two days ago since I put it off until I was sure I couldn't figure it out on my own.

Another example: last week, I sent you two lists of schematic issues. If you'd been on IM, I would have asked if each one made sense, about an hour after sending them… since you didn't see the second one until I asked why the modifications were absent, in a group meeting, that would have been useful. Actually, [another EE at this company] and I have done the whole review via IM so he could clarify each point as I was making them (and fix them while I went to look for others). That was probably the best not-in-person review I've ever been part of.

Sure, it provides interruptions but you can always ignore or turn it off for a few hours when you are working on something hard. Having it on and available is like having an open office door. I won't interrupt you for stupid crap (unless I'm in a “let's not work, let's play nerf wars” sort of mood but that is pretty seldom since I'm a contractor, and even then you can close your virtual door).

This IM program is a part of this company's culture. I understand not liking the interruptions but urge you to give it a try for a few days, see if the benefits outweigh the annoyances.

I'm done with my soapbox. 🙂

My coworker appeared on IM today. I hope it works for him.

 

h1

Blah blah blah

August 12, 2013

Everyone needs ways of talking about themselves. And many people  says “I’m <name> blah blah blah” in their own heads because we don’t really like to talk about ourselves to ourselves.

On the other hand, you need to practice your personal introduction so you don’t end up vocalizing something that sounds like “blah blah blah” to the other person.

I’ve got my twitter self-description:

I’ve made DNA scanners, inertial boxes for airplanes and racecars, children’s toys, a gunshot location system and other neat gadgets. Oh, and I wrote a book!

Which then links to my book. This is my basic go-to introduction in a networking context (not that I quote it, it provides the highlights of what I say when meeting someone new). People often want to hear more about one of my past projects, so it starts a conversation. Plus I give the other person the option to choose the conversation path while still talking about *me*.

Ok, that last bit is terrible. Conversations do not need to revolve around me. Though, if my intro lets a conversation start that way for a minute, that’s ok. My followup question back to them is either a request for info about them or a query as to why they are interested in whatever path we’ve gone down.

See, the goal is to have an introduction that starts a conversation. Like a chess game, it is the opening gambit. Plus, I’ve given myself a plan for dealing with whatever move they make. Hopefully after we’ve each moved twice, the conversation is in play and we can stop with these silly games, get to real connections.

I’ve been thinking about this today because I’ve been writing other introductions to myself.

I wrote Making Embedded Systems for O’Reilly. I have shipped dozens of projects from DNA scanners to children’s toys to FAA certified airplane system. I have made many simple embedded systems (so many projects seem to be LEGO blocks: processor, sensor, some software algorithms, connect to USB, Bluetooth or WiFi, etc.). I also enjoy projects with more complicated math (signal processing, machine learning, control loops). For example, I worked at ShotSpotter, identifying gunshots in the midst of busy city soundscapes. I’ve been an engineer, a manager, and a director.  While the others roles were interesting and rewarding, I prefer engineering. I am founder of Logical Elegance, a consulting company focusing on embedded software.

I wrote that as an introduction to a company that I’d like a contract with. I didn’t want to just send my resume as I hate getting cold calls. I think this describes my skills and personality without taking all day. It may need to be broken into paragraphs but I didn’t for that email.

I had to write a section on a form, 1000 characters of “achievements” so I took the above email-description, made a few tweaks and wondered what else made me who I am. So I added this at the end:

I’m easily amused but care deeply about the application and users of the products I work on.

It isn’t exactly an “achievement” but it fits (to me).

In the same form, I had to write a linkedin-like 300 character description “what I do” so here is what I came up with.

I write software for things that aren’t computers, whether you call that firmware or embedded software. I like the little processors, dealing with their RAM, ROM, cycle, power constraints. I design and implement system architectures.

These forms are tough because I want to keep saying the same thing over and over again. I have to work to find a different spin. Ideally, something that will make the person reading it contact me to work on something neat. 

I wonder if I should change my LinkedIn profile. Let’s see… yes, it is getting a little stale:

My goal is to make interesting gizmos that make the world a better place.

I have deep experience in embedded systems and signal processing over a broad range of applications: a gunshot location system, educational toys, inertial measurement in race cars and airplanes; and a DNA scanner.

I am interested in solving big picture problems, producing quality designs and implementation, and delivering excellent technology products.

I can help you with signal processing, hardware/software intersections, complex system problems and resource constrained systems.

All this and management and mentoring experience.

Specialties: Embedded systems!

Preferred languages: C/C++, Matlab, some assembly, some python

And then it goes into acronym bingo with processors that is annoyingly out of date. And that “Specialties” line needs to go. I’m glad I wrote my new intros without looking at this. It sounds too sell-y to me know. What was I thinking?

Well, I kinda merged my new one with my old one. You should be able to see it on my public profile.