Enginursday: For those of us on Macs


Before I get into this, I just want to announce our new twitter account for engineering; @SFE_Engineering. The account will be a way for us to show you guys what we’re up to, where we are going, and the occasion off topic twitter thread before we’re told to knock it off. So come for the engineering news, stay for the dogs in silly hats.

Dog in a Silly Hat

Every Monday morning, I sit down in the largest conference room at SparkFun, unpack my Macbook Pro, the power adapter for it, and the VGA interface cable to connect to the projector in anticipation for pitching new products to the engineers. More times than not, I’ll receive some form of ridicule for some feature of OSX (or for the fact that I use Yahoo as my homepage). I usually retort with something along the lines of “I’m going go to the Genius Bar and tell them what jerks you guys are” or something playful like that.

Engineering types have relied more on Windows and Linux than OSX machines up until now. Rightfully so, most of the higher end software does not have OSX compatibility. But what about those working on the hobby or tinkerer level? We’re probably not going to need a seat of Solidworks for our home automation project or a QuadCopter. Don’t get me wrong, it would be nice, but not necessary. Even if we did need something like that, a utility called Boot Camp allows users to run Windows on Macintosh computers. However for most tinkering and hobby level electronics, the expensive stuff is not needed.

There are a few programs that would be difficult to get by without that only run on Windows (or are better suited for hardware on Windows). Again, while Boot Camp can cover this, running Boot Camp for some of these programs can seem quite overkill. Luckily out of necessity, people have created Mac versions of those programs. Based on my personal observations, the amount of tinkerers and hobbyists using Macs is on the rise. When we first started teaching classes at SparkFun, you would see one or two Macs in the crowd. As I’m writing this, the class in the classroom is comprised of people using Macbooks with one person on a Windows laptop.

The most popular tinkerer programs such as Arduino, Processing, Eagle, Fritzing, and Scratch are all thankfully cross platform, so there aren’t issues here. The first thing most people run into is a useable terminal window for hardware. While the OSX Terminal Emulator works well for the software side of things, it’s not the greatest for serial communication over USB. That’s where a program called Cool Term came in for me. With Cool Term, I was able easily set the baud and stop bits of my device and stream data in an extremely readable manner, something that would have taking a lot more work and frustration in the OSX terminal window. It also includes a ton of great features you wouldn’t see in the standard Windows terminal emulator that are perfect for working with the sort of hardware tinkerers use.

Cool Term Screen Shot

Another example of a Mac incompatibility issue I ran into happened a few years ago when working with XBees. Those who have will know that the Digi XBee configuration software, X-CTU only runs on Windows at the moment. Now, since the last time I needed to do any XBee configuration, a company called Moltosenso has come out with a great cross platform program for configuring XBees that works on OSX. However, a few years back, the program XBeeConfigTool was made out of necessity as the only other option was working in a terminal Window or Boot-Camping X-CTU. This program, made by Shigeru Kobayashi (of FIO fame), is an easy GUI for configuring XBees on OSX machines (it’s also works for Windows). One of the biggest benefits of it is the ability to quickly configure XBees to wirelessly load sketches to Arduino boards (specifically with the FIO).

XBeeConfigTool Screen Shot

Further in, the topic of iOS comes up. This becomes rather tricky as the host-slave debacle of tablet devices makes it difficult to work with hardware on a tablet. At the moment, I am unaware of any programs that would let you program a board like an Arduino over iOS. The majority of the applications are reference based such as Circuit Playground or others that allow you toggle pins or receive data over a Wifi/Ethernet connection.

In closing, I’d like to ask you Mac users out there what programs have you found helpful in your endeavors of making, tinkering, hobbying? Also, what would you like to see in terms of OSX support in the near future? Load the comment section up. This is actually more of a personal appeal than anything else. It’s rare to find a good applications list among the community, especially for OSX.


Comments 48 comments

  • I recommend that anyone doing any MCU development on Macs make sure they have the Xcode Developer Tools installed. They’re free and offer some of the base libraries you need to connect to drivers (avrdude works on Mac only if you have Xcode installed).

    Another tool I’ve used on Mac, and love, is MacPorts. It’s like apt-get (Debian) and yum (Redhat). It makes installing some toolsets for Arduino or anything else a lot easier.

    Last thing, and most people will not do this, but I recommend installing VirtualBox and running a small VM of your favorite flavor of Linux. I am a all about the FPGAs, and I’ve tried hacking pro tools onto the Mac, but it just never ended up working at all. By running a VM of Linux, you’re able to use the FPGA dev tools for the Papilio and Mojo v3. On the side of caution, FPGA tools are quite large (+20GB) in cases, and can use a lot of RAM. I recommend at least 2-3GB of RAM and 40GB size VM to be comfortable).

  • Pearce,

    First off, that better be Ayrton Senna’s McLaren running through the streets of Monaco in the background. And if it indeed is, great taste sir!

    I’d like to thank you for this. I’ve gotten into electronics recently, and use a MacBook Air. My next adventure is down the XBee road, and I was wondering how I’d communicate with them from a Mac. You’ve solved my issue. Great idea, and a timely one at that. Best regards.

    • Hi Fabio,

      I would have just included the shot of the window, but wanted to see if there were any fans out there. That is indeed Senna at the second apex of La Rascasse.

      Glad to hear it helped. Part of writing this came from my days in tech support. We would get a lot of calls for working with Macs and they’d go Tim or I as the Mac guys.

      • Aha! :). I’m a huge Senna fan, long story short, my father (a pilot) flew him a couple of times (I’m originally from Brasil), so I’m lucky enough to have a poster signed by him, with the wording “Fabio, hugs and best wishes, Ayrton Senna”. I also attended his funeral.

        Sorry to get off-topic here.

        • No, No. That is awesome! Thank you for sharing. I’m a big fan of his as well. Our director of education, Lindsay got me a poster of the movie, Senna that I have framed.

  • I wanted to take a moment to thank a few companies that are classy enough to support Mac-based engineering tools. First, Saleae for their wonderfully-Mac compatible “Logic” analyzer. And, in the Kickstarter realm, big words of appreciation to Othermill for making OtherCAD Mac compatible, Pixy (for promising a mac version of PixyMon), and Formlabs for their recent release of PreForm for Mac. I only wish there were more companies brave enough to step up their game and make Mac engineering tools.

  • On your wallpaper, is this Senna in 1989 in Monaco, La Rascasse turn? McLaren MP4/5 Honda

  • I use the command line for my development, and Aquamacs for my editor. I’ll second sgrace’s recommendation for MacPorts; it seems to have a larger collection than Homebrew. And XCode is a necessity (and an easy install) for any command line development (I don’t use the IDE, however).

    A while back, I wrote a blog post for PIC programming from the command line. I’ll shortly be posting a similar one for Arduino programming from the Mac OS command line.

    For PCB design, I’ve been using Eagle.

  • I think it’s worth mentioning nodebots here, since (in my experience) the coincidence of web (thus JavaScript) developers and Mac users approaches 100%. Being able to control hardware using a familiar language is quite compelling. Moreover, since node.js provides it’s own web server and an easy way to deploy web apps, hardware/webapp mashups naturally follow (e.g. streaming web video from your mobile robot).

    • Also, I got one of those Johnny 5 stickers at some meetup, and it’s awesome.

      • Edit Config.sys (Increase XMS ratios so wing commander can run) Edit Autoexec.bat (match sure the config.sys is loading in the right order) :)

        • wing commander

          As it happens, I still have my original Wing Commander box, with the ship posters and the manual and all 3(!) install floppies, on the shelf behind my desk. I’ve been thinking about doing a replay one of these days…

    • I’ve been hearing more and more about them lately, definitely worth checking out.

  • In addition to the recommendations by @sgrace, I’d like to mention embedXcode which allows you to develop for various microcontroller boards in Xcode.

  • Another alternative for serial is sconsole. It’s a super simple “terminal” program that does not let special character’s through (i.e. wont mess up your terminal.) Works on Linux and Mac.

  • I do all my development on a Mac as well. If you need to configure Wiznet cards from your Mac you can do that with http://www.planetarygear.org/2012/06/wiznet-configurator-for-mac-v2.html

  • Mac side: Arduino IDE, Processing, Fritzing, Eagle CAD,

    VMware Fusion (Windows): Arduino IDE to compile sketches to snag the HEX, AVR Studio / MKII, Microsoft Visual Studio, NotePad++, DesignSpark PCB, Pad2Pad, Frame Designer for (T-slot), Eclipse,

    When switching serial terminal to either mac or windows I simply change “USB & Bluetooth” settings, connect or disconnect to VMware Fusion.

    Right now I am writing a GUI for a project that communicates to a microcontroller, the GUI also communicates to a Processing (Mac side) program, the way I have it is:

    Arduino IDE (Mac side) to program microcotronoller. Microcontroller - serial to Visual Studio WPF (Windows side obviously). Visual Studio WPF shares files with Processing (mac side).

    Works flawlessly

    I use Eagle CAD (mac side) for most pcb designs. When I need something larger than 4" I resort to SparkDesign PCB (Windows)

    With VMware fusion I find it very easy to develop anything using a Macbook Pro, “”“"MAINLY”“”“ because I use Mac’s Work Spaces (3*2), which makes developing so much faster and seamless. I usually have it setup like: Safari (TL), Eagle Schematic™, Eagle PCB(TR), Visual Studio(BL), Arduino IDE(BM), Processing(BR).

    And again my Macbook Pro is a beast, runs flawlessly and just WORKS well. 2010 Macbook Pro, 16GB RAM, 2 solid state drives.

  • I too use a Mac for my engineering and project manager work. I cover a wide scope of stuff, like web development to embedded to industrial control system to MCU coding. I switched just over a year ago and haven’t looked back. Although I will admit I have a Parallels Win XP VM running because some IDEs don’t have a Mac equivalent (and I have to support past projects which require older software to be running)

    One reason I prefer my MBP-R was it was light and easy to carry around. I find I do team work collaboration a lot, or site work or factory, and so picking up my computer and setting next to the client or coworker or machine or hardware or to go to the lab is very easy. I just find myself more productive on the Mac than I was on Windows.

    EAGEL is my tool for PCB. I have also used Synapse Wireless Portal on Mac. WireShark on Mac. I also like Sublime Text 2 for basic editing/writing of code. I too appreciate Logic from Saleae on Mac. I’ve got Xcode, but haven’t used it much. EmbedXCode looks very interesting - thank you for mentioning that!

    For documentation I’ve been using Omnigraffle. But I wouldn’t mind a nice drafting program with an appropriate price tag. Any recommendations?

  • Pearce,

    Thanks for this posting about Macs. I have many years of experience with Windows in the corporate workplace, but I love Macs. Now that I’m out of the corporate world, I use Macs for all my electronics and robot projects (www.beatty-robotics.com).

    Besides the obvious, like the Arduino IDE, XCode, and so on, here are some of the more obscure Mac tools I have on my dock for easy access:

    LanScan Pro for looking at IP addresses, MAC Addresses, and Hostnames for all the devices connected to the network. CoolTerm for terminal/serial port work (as you mentioned). HTTPScoop for snagging HTTP for reverse engineering and hacking IP devices, web pages, etc. Network Utility (A Mac OS X utility) for pinging devices on the network. System Information (a Mac OS X utility) for looking up USB/serial ports, etc. Acorn (an easy to learn Photoshop-like app for doing quick and easy graphics). TextEdit (a Mac OS X utility) for jotting down quick notes, etc.

    Sadly, the one place I use a Windows computer in my workshop is on the SolidWorks workstation (as you mentioned) and also the Mach3 CNC software that runs my homemade CNC Mill (http://beatty-robotics.com/cnc-mill) (Although many people use Linux for their DIY Mills).

    –Robert Beatty

  • You can run X-CTU on the Mac by running it under Wine. Some discussion of how to do it here.

  • And oh yes, Eagle works well on the mac. When I do a layout on my Mac, I bring it into PCB-GCODE and then to my Windows machine which controls my CNC to cut the board and the g-code looks like hell in translation.

  • I’ve been beta testing Rhino for Mac for a few years now. It’s very good but incomplete. They’ve been promising a Mac version for a very long time.

  • I use my iMac for all development work I do: - Code Red’s RedSuite for all ARM related stuff - I find Screen (standard Unix utility that comes with OSX) works fine for USB serial devices - Mac versions of Eagle, Processing, Slic3R, meshLab, Pleasant3D - ViaCad for 3D modeling - Parallels for establishing virtual machines for Windows 7, Centos Linux and Ubuntu Linux. - Xilinx webpack 14.6 under Windows 7 for FPGA work, mainly Xilinx Zynq 7000 stuff - TeraTerm and XCTU under Windows 7 VM for terminal ans XBee - XCode for mainly reviewing C and other files under native Mac

    The combination of Mac plus Parallels allows me to do pretty much anything I need, or want.

  • As mentioned in the post, XBee used to be a problem, but these days there is almost no reason I need Windows for my project needs. The one tool I still use on Windows is the AD4 utility linked to in the Audio-Sound Breakout. I tried finding decent documentation on the format, and was going to create a command-line Mac tool, but didn’t turn up anything solid. If anybody has a Mac solution, please let me know!

  • Interesting article. Thank you for the reference to XBeeConfigTool.

    Xcode can be used for development on Arduino, LaunchPad, Wiring, chipKIT and similar boards with the template embedXcode.

  • I work in the Ruby on Rails world of web development, and I can tell you it’s nearly ENTIRELY mac based. So there might be some bastions of Windows for development out there, but most folks I know use Macs or Linux.

    As for embedded stuff I’ve managed to find solutions in one form or another for nearly everything I have done. Either tools that are cross-platform (Arduino, Eagle, etc.), or cross compilers working through Xcode or Eclipse (AVR programming), or through emulation (TinyOS). It’s a completely capable platform.

  • Great topic idea. When you see the Macs on campus and in the high schools, you can see the need to support that platform. I have a nice big iMac on my desk and an 8 core bare bones box running Ubuntu with dual displays behind me. I do nearly all the day’s work on the iMac. The exceptions are the compiling of kernels, cloning SD cards, and similar Linux things on the Ubuntu setup and I run VMWare with WinXP Pro in order to use Diptrace and Protel. I am savvy enough with Linux to get all the patches I need and rebuild a module when VMWare breaks every time there is an update of the OS (more often on Fedora for some reason).

    Before OSX, there were fabtastic C/Assemblers and IDE’s for embedded processors like 68HC11. They all evaporated when OSX came along. Perhaps because the makers anticipated people would extend X-Code like Apple did for iPhone inclusion.

    Apple has an awesome design suite of their own they use internally. It would be sweet if that were ever to release it. I would like to see Altium native on OSX. The new MacPro for this fall would be a graphics/routing/rendering monster.

    I don’t have anything to add to the list of tools except I have parallels with XP and Linux and don’t use it. I would add TeamViewer since a collaboration tool can be an important part of the design process and BBEdit is great for viewing//editing any kind of code be it on your system or on a remote server. But I will be checking out everything mentioned. I run Eagle on the Mac to view projects, not generally to edit. Oh, and thank you thank you thank you DropBox!

    • and BBEdit is great for viewing//editing any kind of code be it on your system or on a remote server

      I’m glad to hear BBEdit is still alive. It was always a really beautiful, elegant little piece of software.

      Perhaps worth mentioning in this thread that my Apple-nerd coworkers seem to get a lot of mileage out of MacVim, which though it has its quirks is certainly the prettiest version of vim on any platform.

  • Funny, I find OS X better suited for open source development than Windows as it pretty much runs on a Unix core. Now I do more web development, but I spend a lot of time in ITerm. I would go to linux before I would go to windows as when I am on windows (daily, for day-job) I feel a bit hampered by a command shell that is not really core to the system.

    I think as more internet-of-things style projects happen, macs will continue to grow as a very viable platform as a very nice middle ground between large software companies (like adobe) and posix-first open source software (like node, which runs on windows, but is clearly more unix friendly in practice.)

    This isn’t a platform fight, Windows is fine - but I never understand the notion that real work gets done on a PC (and not a mac) when windows doesn’t even come with a decent command-line text editor.

    As a side note, as others have said, get XCode and the command line tools - once you have those so many open source tools work just like they do in linux - because the XCode tools include apples (unfortunately locked down) compilers. After that, install homebrew which will handle things like ruby (and rvm), python, node, etc. I have had much better luck with homebrew than macports or fink.

    • when windows doesn’t even come with a decent command-line text editor.

      I still think the old-school MS-DOS Edit (the one that was actually QBasic with some features turned off up until a certain point in history) doesn’t get enough credit for having been a workable editor. I suppose recent Windows releases have dispensed with that bit of ancient history, though?

  • I use Zterm for my VT-100 Terminal emulator. Very clean and simple to use. I’d like to see a lot of big name software for engineering ported to the mac. There are too many I use daily to name them all but I used Solidworks all the time at my day job and it would be much nicer to run it on a mac for connivence. Also some better PIC tools for mac would be nice. This day and age it’s just so easy to use an Arduino, the powerful little PIC is usually in the back of my mind because of the mac tools for it. Speaking of Atmel, Atmel Studio for mac would be welcomed as well. When are they going to put real time debugging and JTAG in Arduino! I could go on and on but I’ll stop there.

    • For a serial terminal without installing software, I wanted to mention the screen command, e.g.

      screen /dev/tty.usbserial-AH015X2H 115200
      
  • I like to see some OSX embedded development tools for PIC that aren’t either a ugly command line thing or require you to build it from an obscure link to GitHub. As I recall when MicroChip first started the PIC line they had cross-platform development tools but then they dropped Mac OS support almost immediately.

    • Have you tried Microchip’s MPLAB X? it is an awesome dev environment actually supported in three platforms: Mac/Win/Linux

  • I’ve been a hardcore Mac user since 2006. I’ve never looked back. When I’m at work (and forced to use a PC), I feel completely hampered by Windows. Very limited. I struggle to accomplish mundane tasks that take seconds to do on my Mac because the functionality is built in. I’ve never had a problem finding software for the Mac. In a lot of cases, free software from indie devs has actually been better than what you have to buy for Windows.

    A lot of the Mac-bashing that I hear is actually based on old stereotypes. As popular as Macs are, some people still think we use a one-button mouse. I just had to correct someone not more than 2 weeks ago about it.

    • [obligatory moderation note that there’s no reason for this thread to turn into a platform fight; let’s focus on stuff that’s useful to people and skip the usual ideological-aesthetic-tribal conflagration]

  • Zucchini and robots are EVIL! (Okay, it’s mainly the zucchini that is evil….)


This Week

This Month

Heartbleed

Happy Arduino Day!