- Python installed. We support Python 2.7 and 3.6.
- pip installed (
pipfor Python 2.7 or
pip3for Python 3)
- Bonjour services installed. See Installing Bonjour Libraries.
- Your Moku:Lab connected to the same network as your computer.
- Internet access.
1. Install Pymoku
Open a command-line terminal and type
pip install --upgrade pymoku moku update fetch
2. Update your Moku:Lab
Update your Moku:Lab with the latest firmware by typing the following in your terminal
moku --serial=123456 update install
The serial number is the middle six digits found on the underside of the Moku:Lab. For example: XXX-123456-X.
You can also update the Moku:Lab using its IP address with
moku --ip=192.168.0.1 update install
The IP address of your Moku:Lab device can be found with
NOTE: The update process is indicated by alternating orange and white lights, or a pulsing orange light. This process can take up to 30 minutes.
3. Start scripting
You are now ready to control your Moku:Lab using Python! You can find a few example scripts in the examples/ folder. Here is a basic example of how to connect to a Moku:Lab, deploy the Oscilloscope and fetch a single hi-res data trace. Open python and run the following code
from pymoku import Moku from pymoku.instruments import Oscilloscope m = Moku.get_by_serial(123456) i = m.deploy_instrument(Oscilloscope) i.set_timebase(-1e-3, 1e-3) # 1ms before and after trigger event i.set_trigger('in1', 'rising', 0) # rising edge through 0 volts data = i.get_data() print(data.ch1, data.ch2, data.time) m.close()
moku: command not found
Ensure pymoku has been successfully installed in your Python distrubution by open a python shell and running
No error indicates a successful install.
You may need to add python binaries to your PATH. This varies with operating system and python version but as an example
Installing Bonjour Libraries
To automatically discover Moku:Lab on your network (i.e. by name or serial) you must have Bonjour installed.
Without Bonjour, your Moku:Lab will still be accessible by IP address, you just won't be able to automatically connect by name or serial number, or find it using
To install Bonjour:
Windows install the Bonjour Printer Services. Note that you can choose not to install this service, and
Linux install the dnssd compatibility libraries. For Ubuntu, this is
$ sudo apt-get install libavahi-compat-libdnssd1
OSX comes with Bonjour by default.
I can't find my Moku:Lab on the network
Search your local network for running Moku:Labs with
$ moku list
If you do not see your Moku:Lab, confirm that your Moku:Lab is powered ON, and that you have Bonjour installed on your operating system Installing Bonjour Libraries.
If you are connecting over
- Access Point Mode Ensure your computer is connected to the Moku:Lab's WiFi network. The Moku:Lab will default to the IP address
- Ethernet Ensure the cable is plugged in an you see the orange activity light. You will need a DHCP server running on your network to provide the Moku:Lab an IP address.
- WiFi After configuring the WiFi in the Moku:Lab (currently requires an iPad), you should see a solid blue light on the front. If it's blinking indefinitely or off, check the configuration again using an iPad.
- USB ensure you have plugged the Moku:Lab's micro-USB port into the USB port of your PC. For Linux users, you will have to change the USB-Ethernet network settings to "Link Local" for IPv4 and IPv6. NOTE: Currently only one Moku:Lab can be connected over USB at a time.
ImportError: No Module named pymoku
Make sure you are running the version of Python you installed pymoku to. Often a system will have multiple Python installations. Try substituting
python -m pip in the installation.
If you installed pymoku inside an Environment (i.e. via virtualenv or conda-env), ensure that Environment is activated. You can check that pymoku is installed in your currently running environment using
(myenv)$ pip list
(myenv)$ conda list # For conda users
zmq.error.Again: Resource temporarily unavailable
- Ensure your Moku:Lab is visible on the network by calling
moku listor searching for the service using BonjourBrowser
- Make sure you are using the latest version of pymoku, and that your Moku:Lab has been upgraded to the newest firmware. See the Installation section above for details.
pymoku.DeployException: Deploy Error 3
Confirm you have have the latest binary data pack and that your Moku:Lab is running the latest firmware
$ moku update fetch $ moku --serial=123456 update install
Please log issues here on Github.