1. 15

My best friend is a biomedical engineer, soon to graduate, and he’s been getting into programming lately. He’s drawn to low-level and mathematical programming, and he also has a knack for electrical/mechanical stuff (works on his car, has worked on houses as a contractor, builds medical devices for fun…)

For the holidays, I’d like to give him a complete kit of hardware specific tools, books, etc. I definitely want to go beyond the typical “Arduino starter kit”, I’m thinking more like Freescale mcu’s, Intel Atom, and maybe both to get a feel for different architectures… as well as more unknown mcu’s like the ESP8266 (which I only know about because he told me) and a whole range of sensors.

I know he also wants to get into custom fabrication, so he can make something like the OpenBCI or the eHealth boards.

Personally, I am a backend web/data engineer, so I’m definitely not an expert on low level hardware stuff. I’m hoping you guys could help me out: what are the best things to have in a hardware development kit? What resources did you wish you had starting out?

  1.  

  2. 6

    A cheap oscilloscope, multimeter, and bench power supply are always welcome additions to any workbench, as well as an electronics breaedboard.

    1. 3

      If money allows, I’d suggest a logic analyzer on top of these things. I’ve found that recording long traces of data on many IO ports to be useful for debugging, particularly for realtime systems where you do not have access to logging via printf. This lets you see when certain interrupts are triggered and how data is being processed without perturbing the timing constraints required by, e.g., the communication protocols. I imagine if the oscilloscope can write data to a file, this would be sufficient too.

      1. 4

        Depending on your needs, some other things can also be used as substitutes for a logic analyzer. For example you can hook something up to a Raspberry Pi’s GPIO ports and run some software. If you don’t need a high sampling frequency, I’ve even used a soundcard as a cheap two-channel, 44.1 kHz voltage sampler: just wire your stuff up to the line-in, use some resistors to make sure it’s in the right voltage range, and hit record in Audacity. In my case that worked out pretty well to log bus traffic on some MIDI interfaces.

        Admittedly, just throwing in a logic analyzer is a lot more straightforward.

        1. 3

          I definitely agree. The logic analyzer I was using seemed way overpriced (hundreds of dollars) and had a just barely usable windows-only interface. I’d prefer something more a long the lines of what you described: dump the data to a text/audio file and use some additional analysis to decode, for example, the data flowing on the I2C bus and display it to the user.

          Edit: While the interface was barely usable, meaning clunky, it was a great debugging tool

    2. 4

      Depends on how low-level you want to go. Anything with GPIO and I2C will be useful, and the question is what you’d want to go for. If you don’t mind working in lower-level C, AVR has a great set of microcontrollers that are widely used and don’t require a lot of external parts. If your friend is more comfortable with python / sshing into stuff, you might be better off with an Arduino or Raspberry Pi. I would shy away from the esoteric stuff especially if your friend is starting out, you want to work with easily googlable parts that other people have used until you’re more confident. Buying random parts off digikey and discovering that the datasheet is wrong can be extremely frustrating, so it’s helpful to tread where others have tread before you.

      I can highly recommend Adafruit’s shop, they explicitly design their modules to be beginner friendly with lots of documentation. If you wanted to go AVR they have nice premade boards, as well as the bigger beaglebone/arduino/raspberrypi stuff as well. They also have generic prototyping stuff, sensors, and a pretty comprehensive beginning electronics toolkit.

      1. 3

        I’d agree that anything with GPIO and I2C to be useful. Some other things to look for depend on what your friend wants to do. For example, it may be useful to get a board with analog-to-digital and digital-to-analog converters running at a high enough sample rate if they want to interact with analog devices (like analog sensors, or making noise on a speaker). Where high enough sample rate depends on the application. Getting something with CAN or UART support would also be useful if you need these communication methods.

        I started learning on PIC micro-controllers (e.g., Cerebot). I’ve found their manuals to be dense but provide enough information about all the hardware details. Probably these PIC boards are fairly similar to the AVR recommendations made by stip.

      2. 3

        I can’t help, but I am interested in what you put together because I’d like to get down to a lower level myself.

        1. 2

          I’ll edit the original post with my final list of purchases next week :)

          1. 1

            If this ended up happening, I’d love to see the list!

        2. [Comment removed by author]

          1. 1

            I wasn’t even aware hot air rework stations were a thing, but they look super useful. Might not make the cut in this gift, but I’ll keep it in mind for the future, thanks!