BeagleBoard
BeagleBoard has many open-source offerings and they all work with the DUELink ecosystem.
Any of the Coding Language options can be use on these boards. Depending on the boards, there might be an easier way to connect DUELink modules.
BeaglePlay
This board has a built in JST connector with I2C signals, I2C5 to be exact! Their Qwicc Example is a good starting point on how to access the I2C bus. Consider this as a DUELink Downlink socket.
BeagleY-AI
This board has a Raspberry PI compatible footprint/pinout. We recommend using DUELink DuePI, which adds a display, a buzzer, a terminal block, and Downlink socket.
The hat uses UART for communication. Here is an example to show the system's IP address on the display.
import sys
import serial
import time
import socket
from DUELink.DUELinkController import DUELinkController
def get_ip_address():
try:
# Get all IP addresses associated with the hostname, filtering out 127.0.0.1
ips = [ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")]
if ips:
return ips[0] # Returns the first non-loopback IP address found
else:
# If no non-loopback IP is found, try connecting to an external server to determine the IP used
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80)) # Connect to Google's DNS server (doesn't send data, just sets up connection)
ip = s.getsockname()[0]
s.close()
return ip
except socket.error:
return None
myip = get_ip_address()
# DUELink connection
availablePort = DUELinkController.GetConnectionPort()
duelink = DUELinkController("/dev/ttyAMA0") # uart port define
# DUELink graphics
# Show IP address on screen
duelink.Graphics.Clear(1)
duelink.Graphics.Text("--DUELink--", 0, 33,5)
duelink.Graphics.Text("My IP:" + myip, 0, 1,20)
duelink.Graphics.Show()
# Beep once a second
while True:
duelink.Sound.Beep(14,1000,100)
time.sleep(1)
Other Beagles
Use the Breakout module to wire UART Interface or I2C Interfacefrom any BeagleBoard. When using I2C, pull-up resistors are required. The DUELink PullUp module is available if needed.