Header


A Cross-Platform FabInterpreter


JeremyRCohen - Posted on 29 September 2010

Over the summer, I worked on getting the current software to run on Mac OS X and Linux. The original version of the interpreter relied on DLL files to load in the functions, and in these libraries the communication to the serial port was exclusively Windows based. The goal of this project was to have the FabInterpreter working on all three operating systems: Windows, Mac OS X, and Linux.

interpreter_screenshot

By the end of the summer, the FabInterpreter was working cross platform! To get around the problems of loading in the DLL files, I got rid of using dynamic libraries and instead used the source code of the functions directly. These functions then had to be rewritten to be compatible for Mac and Linux. Luckily, Jeff and I found code developed in Qt that was designed to communicate to a serial port for any Windows or Posix operating system, which includes Unix-based systems such as Mac OS X and Linux. I modified the functions so that they would read from the port using this new code base. Once that part was working, I modified the original code from the FabInterpreter so that it would compile in Qt. The combination of the interface of the previous FabInterpreter with the newly designed base to control the motors allowed the Fab@Home to print on Mac OS X and Linux.

blogpost_mac

The FabInterpreter is now available for download from fabathome.org/installers for any Windows, Mac, or Linux operating system.

Hello!

I really would like to use this software on my Mac! Thank you so much for getting a version up and running!

I am having difficulty getting it to run. After attempting to run these applications:

http://fabathome.org/installers/FabStudio_v1_OSX.zip

and

http://fabathome.org/installers/FabInterpreter_0.2_OSX.tar.bz2

I get an error stating that there may be a version conflict with the current OS X and the applications. I don't have the computer connected to a Fab@Home, but I assume this is not a problem...

Here is a crash-dump for your perusal and comments.

Process: FabStudio [3463]
Path: /Users/con/Downloads/FabStudio OSX/FabStudio.app/Contents/MacOS/FabStudio
Identifier: com.yourcompany.FabStudio
Version: ??? (???)
Code Type: X86 (Native)
Parent Process: launchd [155]

Date/Time: 2011-02-27 12:04:46.866 -0500
OS Version: Mac OS X 10.6.6 (10J567)
Report Version: 6

Interval Since Last Report: 1816351 sec
Crashes Since Last Report: 22
Per-App Crashes Since Last Report: 3
Anonymous UUID:

Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0

Dyld Error Message:
Library not loaded: QtScript.framework/Versions/4/QtScript
Referenced from: /Users/con/Downloads/FabStudio OSX/FabStudio.app/Contents/MacOS/FabStudio
Reason: image not found

Binary Images:
0x8fe00000 - 0x8fe4162b dyld 132.1 (???) <283EE026-C0FE-1FF9-DB81-BFB155793157> /usr/lib/dyld

Model: MacBookAir3,1, BootROM MBA31.0061.B01, 2 processors, Intel Core 2 Duo, 1.6 GHz, 4 GB, SMC 1.67f3
Graphics: NVIDIA GeForce 320M, NVIDIA GeForce 320M, PCI, 256 MB
Memory Module: global_name
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0xD1), Broadcom BCM43xx 1.0 (5.10.131.36.1)
Bluetooth: Version 2.3.8f7, 2 service, 19 devices, 1 incoming serial ports
Network Service: AirPort, AirPort, en0
Serial ATA Device: APPLE SSD TS128C, 113 GB