Sorry, you need to enable JavaScript to visit this website.

Python Web Server on MiniZed

Zedboard forums is currently read-only while it under goes maintenance.

9 posts / 0 new
Python Web Server on MiniZed

A new reference design was recently posted for the MiniZed. Take a look! 


Python Web Server on MiniZed

A guide to using a simple Python script to control a basic web server that allows a user to modify GPIO in the MiniZed PS and PL from a browser interface over Wi-Fi.

Python Web Server on MiniZed


Error After Loading "image.ub"!

Hello everone,
I followed the "Python Web Server on MiniZed" example step by step. I copied both "image.ub" and "Webserver" as described in the toturial through WinSCP. Then, synchronized and reboot the board. However, now I see an error on terminal complaining about bad FIT kernel image. Here is the error:
U-Boot 2016.07 (Jul 13 2017 - 19:58:56 -0700)
DRAM:  ECC disabled 512 MiB
MMC:   sdhci@e0100000: 0, sdhci@e0101000: 1
SF: Detected N25Q128 with page size 256 Bytes, erase size 64 KiB, total 16 MiB
*** Warning - bad CRC, using default environment
In:    serial
Out:   serial
Err:   serial
U-BOOT for
Hit any key to stop autoboot:  4 ... 3 ... 2 ... 1 ... 0
switch to partitions #0, OK
mmc1(part 0) is current device
reading image.ub
45383680 bytes read in 4181 ms (10.4 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
Bad FIT kernel image format!
ERROR: can't get kernel image!
Can anyone please assist me with this?

Recovering MiniZed

It sounds as if your image.ub was corrupted, though that is not clear.  Did you program the flash_fallback_7007S.bin file into flash?  If you did, you could interrupt the u_boot boot loader by pressing any key after reset.  Then enter "run boot_qspi" and wait for MiniZed to boot from the backup image in flash.
If you check the image.ub on eMMC again or re-copy the file from what was in the zip, you could verify that the file is OK.  Please verify whether this fixes anything.

Hi, thank you for your

Hi, thank you for your response. Unfortunately I didn't program the flash_fallback_7007S.bin as it wasn't neccessray at that stage. Now, I can interrupt the u--boot boot loader, but when I'm entring "run boot_qspi", it doesn't recognize the command (it recognizes "run sdboot" though), are you sure the command is correct? Do I need to program flash_fallback_7007S.bin to be able to run "run boot_qspi"? If yes, how? Can I do that through Xilinx SDK?
Is there any other ways to copy back the original image.ub to the eMMC? I was wondering to see how Avnet has done that in the first place?

Hello Hsoleimani,

Hello Hsoleimani,

If you are wanting to Restore the WSPI and eMMC back to the Factory Images we have a tutorial for that. Please follow this link and go through the Restor QSPI and eMMC Factory Images tutorial.


Thanks JFoster! I followed

Thanks JFoster! I followed the tutorial and restored the Linux. It looks fine now!
However, when I'm trying to repeat the "Python Web Server on MiniZed" tutorial: first of all, there is no "mnt/emmc" directory to copy the new "image.ub" file including "python3", second of all, there is no "image.ub" either in the eMMC.
​Should I create the directories myself? If yes, how can I force the system to reload based on the new "image.ub" (python3-attached version)?

In the document

In Rev 02 of the "Python Web Server on MiniZed" document there are instructions for programming the flash in the "Programming the .bin file" on page 12.
In the same document, there is a note about mounting /mnt/emmc on page 5:
Note that if /mnt/emmc does not exist, it means that you are not running an image.ub that is compatible with one in the zip file associated with this demo. You can still mount it using:
mkdir /mnt/emmc
mount /dev/mmcblk1p1 /mnt/emmc
Once you have done this, you can replace the old image.ub with the new one provided in the zip file.  After sync and reboot the new image.ub will mount /mnt/emmc automatically.


Hello Everyone,
I referred to the "Python web server on Minized" example and I was successful in running it. This example basically controls the LEDs through a webpage however, I would like to modify the same code to read the integrated accelerometer sensor LIS2DS12 and plot the sensor output on the webpage. Please let me know if anyone could assist me with it.
Thank you.

I2C from Python

This sounds like a worthy execise.  I have not done it, so my input here may simply state what you already know.
The web server demo you ran only uses the web server to post data to a MiniZed device to change the LEDs.  You want to pass information up from MiniZed, so that is not covered and you may have to find examples of how to upload data from the Python script.
Also, the LEDs that are controller by this Python script use either the /sys/class/gpio or the /dev/mem interface for GPIO devices (it shows how to do both).  The accelerometer is an I2C device.  And one can use i2c-dev to interface to it using C code using the sample code at this link.
I am not sure how this would be done under Python, but you may need to use i2c-tools.  There may be some examples online for doing this, maybe for RPi.  The relevant accelerometer register use is clear in the C example code though.  Someone else may have more pointed advice.  It will be good to know what solutions you discover.