This is a cache of https://discuss.96boards.org/t/sensors-mezannine-arduino-ultra96/11632. It is a snapshot of the page at 2024-09-19T01:06:58.194+0000.
Sensors mezannine arduino + Ultra96 - Ultra96 - 96Boards Forum

Sensors mezannine arduino + Ultra96

How do i go about getting the Ultra96 to program the arduino on the sensors mezannine?

I managed to generate the reccomended bitstream with the reccomended block diagram and run it as overlay on the Ultra96
https://ultra96-pynq.readthedocs.io/en/latest/sensors96b_overlay.html

Following this tutorial, https://github.com/96boards/Sensor_Mezzanine_Getting_Started
I am unable to write anything to the arduino through ‘make upload reset_stty’, getting
Makefile:1479: *** Arduino port /dev/tty96B0 not found!. Stop.

Help is appreciated thanks

I’m afraid I can’t help much with the ultra96 side but the missing Arduino port (/dev/tty96B0) will only exist if you are running an operating system that includes special udev rules to create it.

If you Linux distro doesn’t have these rules then the UART might have show up with a different name. Is there anything useful listed by: ls /dev/tty* | egrep tty[0-9]*[^0-9]+[0-9]+ ? This command should list all the external tty devices. According to the diagram the UART attached to the Arduino is a 16550 so, if it is properly enabled, it should show up as /dev/ttyS<number> .

I see, i have created udev rules using these commands from the tutorial:

$ sudo adduser linaro i2c # Allow the normal user to perform i2c operations
$ git clone https://github.com/96boards/96boards-tools
$ sudo cp 96boards-tools/70-96boards-common.rules /etc/udev/rules.d/
$ cat | sudo tee /etc/profile.d/96boards-sensors.sh << EOF
export JAVA_TOOL_OPTIONS="-Dgnu.io.rxtx.SerialPorts=/dev/tty96B0"
export MONITOR_PORT=/dev/tty96B0
export PYTHONPATH="$PYTHONPATH:/usr/local/lib/python2.7/site-packages"
EOF
$ sudo cp /etc/profile.d/96boards-sensors.sh /etc/X11/Xsession.d/96boardssensors

Which is how i got /dev/tty96B0 to show up.

Running ur command gives me a long list of tty devices.

The comments in those files say they work on Hikey and Dragonboard 410C. Are you sure they will do the correct thing on ultra96?

So… assuming make upload it still not working for you (I guess the error message changed although you didn’t post that?) then the goal at this point is to figure out which, if any, of these devices is connected to LS-UART0 (96Boards GPIO Pinout ).

The simplest way to do that would be to connect a jumper cable between LS-UART0_TxD and LS-UART0_RxD and then open all of the devices listed above in a terminal emulator (running on ultra96). If you get a character echo you have found the device you need.

To be honest it is a a shame how to use the UART if not documented with an example that tells you what device node to use (in https://ultra96-pynq.readthedocs.io/en/latest/sensors96b_overlay.html ) since it looks like they did enable the UART. You could try asking on the associated github issues how the FPGA UART is exposed in the kernel.