PYNQ: PYTHON PRODUCTIVITY FOR ZYNQ

How to use two Grove Pmods at the same time

Hello. I am trying to run pynq with two Grove Pmods (IMU and RTC) connected to it, and collect time and IMU data. The problem is after loading the overlay in jupyter and collecting the time from Pmod Grove RTC, I can not load the Grove IMU. I receive this error:

RuntimeError: Another program /usr/local/lib/python3.6/dist-packages/pynq/lib/pmod/pmod_grove_rtc.bin already running.

This is probably happening because the Microblaze which is handling the first pmod is still running and I am not allowed to load another pmod. Is there anyway to fix this issue? I tried to use PynqMicroBlaze reset commands, but that did not work.

Any help is appreciated.
Mahdi

The pre-compiled “drivers” (MicroBlaze applications) only support a single peripheral.
The simplest way to use 2x peripherals is to plug them into different ports - Pmod, Arduino, or RPi. There is a MicroBlaze connected to each port, so you are running each peripheral driver separately.

To support more than one device on a single port, you need to write a new application to combine the source code for two peripherals.

See information here:
https://pynq.readthedocs.io/en/v2.4/overlay_design_methodology/pynq_microblaze_subsystem.html

You can also write c-code in a Jupyter notebook cell by adding the PYNQ MicroBlaze “magic” (%%)
See information here:
https://pynq.readthedocs.io/en/v2.4/pynq_libraries/pynq_microblaze_subsystem.html

Cathal