Download the latest macOS package.
Packaging of Scorchworks K40 Whisperer as an OSX Application.
K40 Whisperer is an alternative to the the Laser Draw (LaserDRW) program that comes with the cheap Chinese laser cutters available on E-Bay and Amazon. K40 Whisperer reads SVG and DXF files,interprets the data and sends commands to the K40 controller to move the laser head and control the laser accordingly. K40 Whisperer does not require a USB key (dongle) to function.
The official K40 Whisperer and instructions are at Scorchworks:
This fork is to add packaging and minor fixes to work on macOS systems, creating a clickable application that can be installed on any macOS system. This eliminates having to run K40 Whisperer from a Terminal prompt.
K40 Whisperer requires a few dependencies that are not installed as part of the application bundle. You will need to install these yourself to have a functioning application.
- Homebrew Not required but strongly recomended
- libusb for access to the USB port(s)
- inkscape for drawing and rasterization
These dependencies are best installed with Homebrew in a Terminal
window as follows. This only needs to be done once on your system.
# Install HomeBrew (only if you don't have it)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install Dependencies
brew install libusb
brew cask install xquartz
brew cask install inkscape
You need not read any further in this document. You should be able to run K40 Whisperer.
This fork adds the following files to Scorch's work
build-macOS.sh
-- bash build script to build and create application bundle.update-macOS.sh
-- bash script to patch a new version of K40 Whisperer and bundle it.k40_whisperer.spec
-- application specification for PyInstaller.emblem.icns
-- Icons for macOS application bundle (made withsips
)macOS.patch
-- tweaks to Scorch's source for macOS
When a new source package is released by Scorch, the general update process is.
- Download and extract the new source code
- Check this repository out into a working directory
- Run
update_macOS.sh
with the address of the latest source archive - poof out comes a disk image (
.dmg
file) with the new bundled version. - Don't forget to test it!
Most of this is handled by the update_macOS.sh
script. Here's my process... and my likely future copy and paste.
# Get this repository
git clone https://github.com/stephenhouser/k40_whisperer.git
cd k40_whisperer
# Download, apply patches, build the application
./update_macOS.sh -u https://www.scorchworks.com/K40whisperer/K40_Whisperer-0.56_src.zip
# Test/Fix/Test...(needs some work)
...
open ./dist/K40\ Whisperer v0.56.app
...
# Move newly generated patch file into place
mv macOS-0.56.patch macOS.patch
# Commit and push back to GitHub
git commit -a -m"Update to v0.56"
git tag v0.56
git push --follow-tags
*** These directions may be outdated, please check the build-macOS.sh
script for the current details.***
In the main directory run build-macOS.sh
. This will create a clickable macOS Application in the ./dist
directory named K40 Whisperer.app
that can then be distributed or moved to your Applications folder. See the following sections for details based on your chosen Python version.
If you are using one of the most excellent Homebrew versions of Python, you are not only a wonderful person, but life will be easy for you. This build process has been tested mostly on Python 3.7.2 and Python 2.7.15 using pyenv.
NOTE: When installing Python with pyenv
, you should use the --enable-framework
flag so that Python can get properly bundled with the application.
Set up Python 3.9.1 with HomeBrew
and pyenv
. Something like the following should work
# Install HomeBrew (only if you don't have it)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install Dependencies (only if you haven't done this already)
brew install libusb
brew cask install xquartz
brew cask install inkscape
brew install pyenv
# Install Python 3.9.1 with pyenv and set it as the default Python
PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.2
pyenv global 3.7.2
pyenv rehash
Then running the build should work. If not, well, there should be a lot of error messages to help you track things down.
./build-macOS.sh
Included is a vagrant
build setup as well. It's not well tested but seems to mostly work. If nothing else it has the dependency information built into it.
host$ vagrant up # takes a long time
host$ vagrant ssh
vagrant$ cd /vagrant
vagrant$ ./build-macOS.sh # run the build on the vagrant guest
vagrant$ exit
host$ ls -l dist/* # the `.app` will show up here.