<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rsewiki.electro.dtu.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jca</id>
	<title>Rsewiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://rsewiki.electro.dtu.dk/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jca"/>
	<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Special:Contributions/Jca"/>
	<updated>2026-09-12T23:50:12Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9074</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9074"/>
		<updated>2026-09-02T13:36:50Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Network Manager */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as default route ===&lt;br /&gt;
&lt;br /&gt;
On robots with a cabled local network without internet access, it is annoying that the wifi connection is not the default route for, e.g., updating the operating system.&lt;br /&gt;
&lt;br /&gt;
See the default connection, like:&lt;br /&gt;
 ip route&lt;br /&gt;
 default via 192.168.7.6 dev eth0 proto dhcp src 192.168.7.22 metric 52 &lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 600 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 600 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.22 metric 52 &lt;br /&gt;
&lt;br /&gt;
Here, the default is 192.168.7.6, the wired connection without internet access.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
This can be fixed by using connection metrics. A low metric is the preferred connection.&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip route&lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 24 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 24 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.4 metric 56 &lt;br /&gt;
Now the default is wlan0, with the best metric.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9073</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9073"/>
		<updated>2026-09-02T13:26:38Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Set Wi-Fi as the primary www channel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
On robots with a cabled local network without internet, it is annoying that the wifi connection is not the default route for e.g., updating the operating system.&lt;br /&gt;
&lt;br /&gt;
See the default connection, like:&lt;br /&gt;
 ip route&lt;br /&gt;
 default via 192.168.7.6 dev eth0 proto dhcp src 192.168.7.22 metric 52 &lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 600 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 600 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.22 metric 52 &lt;br /&gt;
&lt;br /&gt;
Here, the default is 192.168.7.6, the wired connection without www access.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
This can be fixed by using connection metrics. A low metric is the preferred connection.&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip route&lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 24 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 24 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.4 metric 56 &lt;br /&gt;
Now the default is wlan0, with the best metric.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9072</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9072"/>
		<updated>2026-09-02T13:26:21Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
On robots with a cabled local network without internet, it is annoying that the wifi connection is not the default route for e.g., updating the operating system.&lt;br /&gt;
&lt;br /&gt;
See the default connection, like:&lt;br /&gt;
 ip r&lt;br /&gt;
 default via 192.168.7.6 dev eth0 proto dhcp src 192.168.7.22 metric 52 &lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 600 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 600 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.22 metric 52 &lt;br /&gt;
&lt;br /&gt;
Here, the default is 192.168.7.6, the wired connection without www access.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
This can be fixed by using connection metrics. A low metric is the preferred connection.&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip route&lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 24 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 24 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.4 metric 56 &lt;br /&gt;
Now the default is wlan0, with the best metric.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9071</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9071"/>
		<updated>2026-09-02T13:24:19Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Solution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
On robots with a cabled local network without internet, it is annoying that the wifi connection is not the default route for e.g., updating the operating system.&lt;br /&gt;
&lt;br /&gt;
See the default connection, like:&lt;br /&gt;
 ip r&lt;br /&gt;
 default via 192.168.7.6 dev eth0 proto dhcp src 192.168.7.22 metric 52 &lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 600 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 600 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.22 metric 52 &lt;br /&gt;
&lt;br /&gt;
Here, the default is 192.168.7.6, the wired connection without www access.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
This can be fixed by using connection metrics. A low metric is the preferred connection.&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip r&lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 24 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 24 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.4 metric 56 &lt;br /&gt;
Now the default is wlan0, with the best metric.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9070</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9070"/>
		<updated>2026-09-02T13:22:50Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Set Wi-Fi as the primary www channel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
On robots with a cabled local network without internet, it is annoying that the wifi connection is not the default route for e.g., updating the operating system.&lt;br /&gt;
&lt;br /&gt;
See the default connection, like:&lt;br /&gt;
 ip r&lt;br /&gt;
 default via 192.168.7.6 dev eth0 proto dhcp src 192.168.7.22 metric 52 &lt;br /&gt;
 default via 10.197.208.1 dev wlan0 proto dhcp src 10.197.215.135 metric 600 &lt;br /&gt;
 10.197.208.0/21 dev wlan0 proto kernel scope link src 10.197.215.135 metric 600 &lt;br /&gt;
 192.168.7.0/24 dev eth0 proto kernel scope link src 192.168.7.22 metric 52 &lt;br /&gt;
&lt;br /&gt;
Here, the default is 192.168.7.6, the wired connection without www access.&lt;br /&gt;
&lt;br /&gt;
==== Solution ====&lt;br /&gt;
&lt;br /&gt;
This can be fixed by using connection metrics. A low metric is the preferred connection.&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip r&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9069</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9069"/>
		<updated>2026-09-02T13:17:20Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Set Wi-Fi as the primary www channel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
Check default connection with&lt;br /&gt;
 ip r&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9068</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9068"/>
		<updated>2026-09-02T13:13:48Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Network Manager */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of some items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
Need a package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;br /&gt;
&lt;br /&gt;
Restart NetworkManager&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9067</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9067"/>
		<updated>2026-09-02T13:12:31Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Set Wi-Fi as the primary www channel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
Need an extra package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod mje6 ipv4.route-metric 23&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9066</id>
		<title>Ricbot network issues</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_network_issues&amp;diff=9066"/>
		<updated>2026-09-02T13:11:40Z</updated>

		<summary type="html">&lt;p&gt;Jca: Created page with &amp;quot;Back to Ricbot  == Network Manager ==  Just a summary of items found on the internet.  === Set Wi-Fi as the primary www channel ===  Need an extra package:  sudo apt install ifmetric  Get the connection names  nmcli c  NAME                UUID                                  TYPE      DEVICE   Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0     DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0    lo                  8...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Network Manager ==&lt;br /&gt;
&lt;br /&gt;
Just a summary of items found on the internet.&lt;br /&gt;
&lt;br /&gt;
=== Set Wi-Fi as the primary www channel ===&lt;br /&gt;
&lt;br /&gt;
Need an extra package:&lt;br /&gt;
 sudo apt install ifmetric&lt;br /&gt;
&lt;br /&gt;
Get the connection names&lt;br /&gt;
 nmcli c&lt;br /&gt;
 NAME                UUID                                  TYPE      DEVICE &lt;br /&gt;
 Wired connection 1  80468912-0922-305a-b845-e038e6a97530  ethernet  eth0   &lt;br /&gt;
 DTUdevice           40daedca-0933-4103-87b9-e481d6db6fa4  wifi      wlan0  &lt;br /&gt;
 lo                  8de6fa00-08f6-4e2d-8251-9db7c4107077  loopback  lo     &lt;br /&gt;
 mje6                3469ffdb-50a9-4af4-ac8d-2dd6bf1680ab  wifi      --    &lt;br /&gt;
&lt;br /&gt;
The first column is the name. Remember to escape any spaces.&lt;br /&gt;
&lt;br /&gt;
Then change the metric for the cabled network - with a high metric&lt;br /&gt;
 sudo nmcli c mod Wired\ connection\ 1 ipv4.route-metric 52&lt;br /&gt;
And the same for the Wi-Fi network - with a lower metric&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 22&lt;br /&gt;
 sudo nmcli c mod DTUdevice ipv4.route-metric 23&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot&amp;diff=9065</id>
		<title>Ricbot</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot&amp;diff=9065"/>
		<updated>2026-09-02T12:36:07Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Installation notes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Ricbot, a wheeled sensor platform == &lt;br /&gt;
&lt;br /&gt;
Ricbot is intended for fast deployment to areas of interest.&lt;br /&gt;
&lt;br /&gt;
Main features:&lt;br /&gt;
* Reused motors and wheels from an old &amp;quot;Elector Wheelie&amp;quot; platform&lt;br /&gt;
* Designed to fit into a normal car for deployment, i.e can be disassembled to no more than 55cm in height.&lt;br /&gt;
* No more than 25-30 kg, requiring 1 or 2 persons to load or unload.&lt;br /&gt;
* Wheel-odometry recording (and timestamped)&lt;br /&gt;
* Camera image recording (and timestamped) with a common trigger.&lt;br /&gt;
* GNSS recording.&lt;br /&gt;
* Manual remote control.&lt;br /&gt;
&lt;br /&gt;
== User support ==&lt;br /&gt;
&lt;br /&gt;
* [[RIC start and stop | Start, drive and stop]]&lt;br /&gt;
* [[RIC data recording | Data recording]]&lt;br /&gt;
&lt;br /&gt;
== Installation notes == &lt;br /&gt;
&lt;br /&gt;
* [[Ricbot hardware]] for driving and odometry.&lt;br /&gt;
* Ricbot installation of [[Ricbot realsense | Realsense]]&lt;br /&gt;
* [[Ricbot ROS2 | ROS2]] including bridge from MQTT to ROS2 messaging&lt;br /&gt;
* [[Ricbot GNSS | GNSS]] installation, including &#039;gpsd&#039;&lt;br /&gt;
* [[Ricbot PTP | PTP]] time synchronization.&lt;br /&gt;
* Raspberry as [[RICbot Hotspot | hotspot]].&lt;br /&gt;
* [[Basler Pylon]] installation&lt;br /&gt;
* [[Ricbot sensorbox | Sensorbox]] configuration&lt;br /&gt;
* [[Ricbot network issues]] especially when both cable and wifi is enabled.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9064</id>
		<title>Prepare for compile</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9064"/>
		<updated>2026-09-01T07:38:27Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Visual Studio Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Basebot]]&lt;br /&gt;
&lt;br /&gt;
== Development environment (IDE) ==&lt;br /&gt;
&lt;br /&gt;
The Basebot code can be maintained in either Arduino IDE, by Microsoft Visual Studio Code, or from the command line (using any editor).&lt;br /&gt;
&lt;br /&gt;
Arduino and MS Code has requirements to the file name and directory structure.&lt;br /&gt;
The default naming follows the Arduino standard (the directory name and the ino file name must be the same).&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Install Arduino support; see [[Arduino and Teensy libraries]]&lt;br /&gt;
&lt;br /&gt;
Open Arduino and select the &#039;&#039;&#039;basebot_6.ino&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_open_project.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Then, set the board to Teensy 4.1.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_set board.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
You should now be able to compile and upload the code to the robot.&lt;br /&gt;
&lt;br /&gt;
==== Note ====&lt;br /&gt;
&lt;br /&gt;
Editing the &#039;&#039;&#039;basebot &#039;&#039;&#039; files in the &#039;&#039;&#039;src&#039;&#039;&#039; subdirectory can not be done in the Arduino IDE, but maybe that is unnecessary.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;basebot&#039;&#039;&#039; will send data to the serial monitor. This data needs to be stored in a file for Matlab use, and another serial monitor or other tool probably has to be used. &lt;br /&gt;
&lt;br /&gt;
== Visual Studio Code ==&lt;br /&gt;
&lt;br /&gt;
To use this tool, some directory structure and file names are required.&lt;br /&gt;
&lt;br /&gt;
So; rename two files:&lt;br /&gt;
* In the directory (where the platformio.ini resides):&lt;br /&gt;
** rename the directory &#039;&#039;basebot_6&#039;&#039; to &#039;&#039;src&#039;&#039;. (Otherwise, the code will not be found by MS Code.)&lt;br /&gt;
* In this renamed directory:&lt;br /&gt;
** rename basebot_6.ino to basebot_6.cpp. (Otherwise, code editor tools will be limited.)&lt;br /&gt;
** Note! On Windows, this changes the file type, so it must be visible. In the File Explorer, select &#039;&#039;View&#039;&#039; &amp;gt; &#039;&#039;Show&#039;&#039; &amp;gt; &#039;&#039;File name extensions&#039;&#039; before renaming.&lt;br /&gt;
&lt;br /&gt;
Install MS Visual Studio and PlatformIO; see [[Visual studio support | Visual studio install]]&lt;br /&gt;
&lt;br /&gt;
In MS-Code, open the basebot code using the PlatformIO icon [[file:MS_Visual_Studio_Code_Platform_IO_icon.png]]:&lt;br /&gt;
&lt;br /&gt;
PlatformIO -&amp;gt; &amp;quot;QUICK ACCESS&amp;quot; -&amp;gt; &amp;quot;PIO Home&amp;quot; -&amp;gt; &amp;quot;Open&amp;quot; and here press &amp;quot;Open Project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file: MS_Visual_Studio_Code_new_project_1.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Find the &#039;&#039;Basebot&#039;&#039; directory - it contains the &#039;&#039;platformio.ini&#039;&#039; file needed to configure the project (i.e., Teensy 4.1 and the required libraries).&lt;br /&gt;
&lt;br /&gt;
Then, PlatformIO will install dependencies and check the project. If there is an error, read the error text and try to fix it.&lt;br /&gt;
&lt;br /&gt;
== Command line compile and upload ==&lt;br /&gt;
&lt;br /&gt;
This is a possibility when running Linux.&lt;br /&gt;
&lt;br /&gt;
Refer to the command-line installation instructions for Arduino.&lt;br /&gt;
&lt;br /&gt;
There are two files in the project for compiling (compile) and uploading (upload); these assume that the command-line tools are installed.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9063</id>
		<title>Prepare for compile</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9063"/>
		<updated>2026-09-01T07:36:50Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Development environment (IDE) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Basebot]]&lt;br /&gt;
&lt;br /&gt;
== Development environment (IDE) ==&lt;br /&gt;
&lt;br /&gt;
The Basebot code can be maintained in either Arduino IDE, by Microsoft Visual Studio Code, or from the command line (using any editor).&lt;br /&gt;
&lt;br /&gt;
Arduino and MS Code has requirements to the file name and directory structure.&lt;br /&gt;
The default naming follows the Arduino standard (the directory name and the ino file name must be the same).&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Install Arduino support; see [[Arduino and Teensy libraries]]&lt;br /&gt;
&lt;br /&gt;
Open Arduino and select the &#039;&#039;&#039;basebot_6.ino&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_open_project.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Then, set the board to Teensy 4.1.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_set board.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
You should now be able to compile and upload the code to the robot.&lt;br /&gt;
&lt;br /&gt;
==== Note ====&lt;br /&gt;
&lt;br /&gt;
Editing the &#039;&#039;&#039;basebot &#039;&#039;&#039; files in the &#039;&#039;&#039;src&#039;&#039;&#039; subdirectory can not be done in the Arduino IDE, but maybe that is unnecessary.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;basebot&#039;&#039;&#039; will send data to the serial monitor. This data needs to be stored in a file for Matlab use, and another serial monitor or other tool probably has to be used. &lt;br /&gt;
&lt;br /&gt;
== Visual Studio Code ==&lt;br /&gt;
&lt;br /&gt;
To use this tool, some directory structure and file names are required.&lt;br /&gt;
&lt;br /&gt;
So; rename two files:&lt;br /&gt;
* In the &#039;&#039;basebot&#039;&#039; directory (where the platformio.ini resides):&lt;br /&gt;
** rename the directory &#039;&#039;basebot_6&#039;&#039; to &#039;&#039;src&#039;&#039;. (Otherwise, the code will not be found by Code.)&lt;br /&gt;
* In this renamed directory:&lt;br /&gt;
** rename basebot_6.ino to basebot_6.cpp. (Otherwise, code editor tools will be limited.)&lt;br /&gt;
** On Windows, this changes the file type, so the file type must be visible. In the File Explorer, select &#039;&#039;View&#039;&#039; &amp;gt; &#039;&#039;Show&#039;&#039; &amp;gt; &#039;&#039;File name extensions&#039;&#039; before renaming.&lt;br /&gt;
&lt;br /&gt;
Install MS Visual Studio and PlatformIO; see [[Visual studio support | Visual studio install]]&lt;br /&gt;
&lt;br /&gt;
In MS-Code, open the basebot code using the PlatformIO icon [[file:MS_Visual_Studio_Code_Platform_IO_icon.png]]:&lt;br /&gt;
&lt;br /&gt;
PlatformIO -&amp;gt; &amp;quot;QUICK ACCESS&amp;quot; -&amp;gt; &amp;quot;PIO Home&amp;quot; -&amp;gt; &amp;quot;Open&amp;quot; and here press &amp;quot;Open Project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file: MS_Visual_Studio_Code_new_project_1.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Find the &#039;&#039;Basebot&#039;&#039; directory - it contains the &#039;&#039;platformio.ini&#039;&#039; file needed to configure the project (i.e., Teensy 4.1 and the required libraries).&lt;br /&gt;
&lt;br /&gt;
Then, PlatformIO will install dependencies and check the project. If there is an error, read the error text and try to fix it.&lt;br /&gt;
&lt;br /&gt;
== Command line compile and upload ==&lt;br /&gt;
&lt;br /&gt;
This is a possibility when running Linux.&lt;br /&gt;
&lt;br /&gt;
Refer to the command-line installation instructions for Arduino.&lt;br /&gt;
&lt;br /&gt;
There are two files in the project for compiling (compile) and uploading (upload); these assume that the command-line tools are installed.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9062</id>
		<title>Prepare for compile</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Prepare_for_compile&amp;diff=9062"/>
		<updated>2026-09-01T07:34:39Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Visual Studio Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Basebot]]&lt;br /&gt;
&lt;br /&gt;
== Development environment (IDE) ==&lt;br /&gt;
&lt;br /&gt;
The Basebot code can be maintained in either Arduino IDE, by Microsoft Visual Studio Code, or from the command line (using any editor).&lt;br /&gt;
&lt;br /&gt;
== Arduino ==&lt;br /&gt;
&lt;br /&gt;
Install Arduino support; see [[Arduino and Teensy libraries]]&lt;br /&gt;
&lt;br /&gt;
Open Arduino and select the &#039;&#039;&#039;basebot_6.ino&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_open_project.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Then, set the board to Teensy 4.1.&lt;br /&gt;
&lt;br /&gt;
[[file:arduino_set board.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
You should now be able to compile and upload the code to the robot.&lt;br /&gt;
&lt;br /&gt;
==== Note ====&lt;br /&gt;
&lt;br /&gt;
Editing the &#039;&#039;&#039;basebot &#039;&#039;&#039; files in the &#039;&#039;&#039;src&#039;&#039;&#039; subdirectory can not be done in the Arduino IDE, but maybe that is unnecessary.&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;basebot&#039;&#039;&#039; will send data to the serial monitor. This data needs to be stored in a file for Matlab use, and another serial monitor or other tool probably has to be used. &lt;br /&gt;
&lt;br /&gt;
== Visual Studio Code ==&lt;br /&gt;
&lt;br /&gt;
To use this tool, some directory structure and file names are required.&lt;br /&gt;
&lt;br /&gt;
So; rename two files:&lt;br /&gt;
* In the &#039;&#039;basebot&#039;&#039; directory (where the platformio.ini resides):&lt;br /&gt;
** rename the directory &#039;&#039;basebot_6&#039;&#039; to &#039;&#039;src&#039;&#039;. (Otherwise, the code will not be found by Code.)&lt;br /&gt;
* In this renamed directory:&lt;br /&gt;
** rename basebot_6.ino to basebot_6.cpp. (Otherwise, code editor tools will be limited.)&lt;br /&gt;
** On Windows, this changes the file type, so the file type must be visible. In the File Explorer, select &#039;&#039;View&#039;&#039; &amp;gt; &#039;&#039;Show&#039;&#039; &amp;gt; &#039;&#039;File name extensions&#039;&#039; before renaming.&lt;br /&gt;
&lt;br /&gt;
Install MS Visual Studio and PlatformIO; see [[Visual studio support | Visual studio install]]&lt;br /&gt;
&lt;br /&gt;
In MS-Code, open the basebot code using the PlatformIO icon [[file:MS_Visual_Studio_Code_Platform_IO_icon.png]]:&lt;br /&gt;
&lt;br /&gt;
PlatformIO -&amp;gt; &amp;quot;QUICK ACCESS&amp;quot; -&amp;gt; &amp;quot;PIO Home&amp;quot; -&amp;gt; &amp;quot;Open&amp;quot; and here press &amp;quot;Open Project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[file: MS_Visual_Studio_Code_new_project_1.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Find the &#039;&#039;Basebot&#039;&#039; directory - it contains the &#039;&#039;platformio.ini&#039;&#039; file needed to configure the project (i.e., Teensy 4.1 and the required libraries).&lt;br /&gt;
&lt;br /&gt;
Then, PlatformIO will install dependencies and check the project. If there is an error, read the error text and try to fix it.&lt;br /&gt;
&lt;br /&gt;
== Command line compile and upload ==&lt;br /&gt;
&lt;br /&gt;
This is a possibility when running Linux.&lt;br /&gt;
&lt;br /&gt;
Refer to the command-line installation instructions for Arduino.&lt;br /&gt;
&lt;br /&gt;
There are two files in the project for compiling (compile) and uploading (upload); these assume that the command-line tools are installed.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Visual_studio_support&amp;diff=9061</id>
		<title>Visual studio support</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Visual_studio_support&amp;diff=9061"/>
		<updated>2026-08-31T08:31:31Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Visual Studio install */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Basebot]]&lt;br /&gt;
&lt;br /&gt;
== Install ==&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio Code install ===&lt;br /&gt;
&lt;br /&gt;
Use your DTU account to get a free version of Visual Studio Code.&lt;br /&gt;
&lt;br /&gt;
* Go to https://www.inside.dtu.dk/da/medarbejder under IT and software; there is a menu item &amp;quot;MS Visual Studio&amp;quot; that refers to https://azureforeducation.microsoft.com/devtools; go to this link.&lt;br /&gt;
* Sign in with your DTU mail and DTU password.&lt;br /&gt;
* Look for education software; this should get you to a long list of software.&lt;br /&gt;
[[File:MS_Visual_Studio_Azure_1.png | 500px]]&lt;br /&gt;
* Select &amp;quot;MS Visual Studio Code&amp;quot; and press the &amp;quot;download&amp;quot; button.&lt;br /&gt;
[[File:MS_Visual_Studio_Azure_2.png | 500px]]&lt;br /&gt;
* You can now download the software for your platform.&lt;br /&gt;
[[File:MS_Visual_Studio_Download_3.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Install and start the app.&lt;br /&gt;
&lt;br /&gt;
=== Visual Studio configure ===&lt;br /&gt;
&lt;br /&gt;
Some extensions are needed.&lt;br /&gt;
&lt;br /&gt;
In extensions, install C++&lt;br /&gt;
&lt;br /&gt;
[[File:MS_Visual_Studio_Extension_1.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
== PlatformIO ==&lt;br /&gt;
&lt;br /&gt;
Install the PlatformIO extension.&lt;br /&gt;
&lt;br /&gt;
[[File:MS_Visual_Studio_Extension_2.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
=== Linux ===&lt;br /&gt;
&lt;br /&gt;
The Python package python3-venv need to be installed.&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3-venv&lt;br /&gt;
&lt;br /&gt;
Otherwise the installation stops and complains about no working Python.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Network_setup&amp;diff=9060</id>
		<title>Network setup</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Network_setup&amp;diff=9060"/>
		<updated>2026-08-18T09:03:47Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* DHCP with static IP fallback */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Robobot B]]&lt;br /&gt;
&lt;br /&gt;
==WiFi network==&lt;br /&gt;
&lt;br /&gt;
If you are at DTU and the small display shows an IP, then all is fine. Otherwise read further down.&lt;br /&gt;
&lt;br /&gt;
====Network Manager====&lt;br /&gt;
&lt;br /&gt;
The NetworkManager uses device UUID as part of the Wi-Fi network setup. This means that (sometimes) an SD card can not be moved from one robot to another with a functional Wi-Fi connection.&lt;br /&gt;
&lt;br /&gt;
After 20 seconds, an attempt to solve this is activated using the commands below (the code is found in svn/robobot/setup/rename_host.bash - last half).&lt;br /&gt;
&lt;br /&gt;
Use the last line to setup manually - or the GUI, if available.&lt;br /&gt;
&lt;br /&gt;
See the current network settings&lt;br /&gt;
 nmcli dev show&lt;br /&gt;
Network manager connection with UUID&lt;br /&gt;
 nmcli connection&lt;br /&gt;
List available wifi access points&lt;br /&gt;
 nmcli device wifi list&lt;br /&gt;
&lt;br /&gt;
==== Connect to DTUdevice net ====&lt;br /&gt;
&lt;br /&gt;
You can establish a new connection from the command line&lt;br /&gt;
 sudo nmcli device wifi connect DTUdevice password &amp;lt;password&amp;gt; ifname wlan0 ipv6.method &amp;quot;disabled&amp;quot;&lt;br /&gt;
This should create a new system-connection file with a usable UUID.&lt;br /&gt;
IPv6 is disabled because many of the IPv6 MACs appear to be the same (we cloned the SD card), and this will blacklist the connection for MAC address theft.&lt;br /&gt;
&lt;br /&gt;
There is a terminal-based user interface to edit a connection. First list connections:&lt;br /&gt;
 $ nmcli con show&lt;br /&gt;
 eg: NAME            UUID                                  TYPE      DEVICE &lt;br /&gt;
 preconfigured       e07a0ae8-028b-4d65-806c-ec63f435df44  wifi      wlan0  &lt;br /&gt;
 lo                  2737bad6-956f-4668-99e0-4697f4ec30a7  loopback  lo &lt;br /&gt;
Find the NAME of the connection to edit, e.g. &#039;preconfigured&#039;&lt;br /&gt;
 sudo nmtui edit &amp;quot;preconfigured&amp;quot;&lt;br /&gt;
Then edit as desired.&lt;br /&gt;
&lt;br /&gt;
Reload Network Manager to read this.&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli connection reload&lt;br /&gt;
&lt;br /&gt;
or restart the NetworkManager&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl restart NetworkManager.service&lt;br /&gt;
&lt;br /&gt;
==== Home network connection ====&lt;br /&gt;
&lt;br /&gt;
If you know the SSID and password, you can prepare the robot for another (home) network.&lt;br /&gt;
Use this command (replacing &amp;lt;SSID&amp;gt; and &amp;lt;password&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli device wifi connect &amp;lt;SSID&amp;gt; password &amp;lt;password&amp;gt; ifname wlan0&lt;br /&gt;
&lt;br /&gt;
==== As its own hotspot ====&lt;br /&gt;
&lt;br /&gt;
See [[RICbot Hotspot | hotspot]].&lt;br /&gt;
&lt;br /&gt;
== Cable connection ==&lt;br /&gt;
&lt;br /&gt;
==== Using static IP and DNS server on Raspberry ====&lt;br /&gt;
&lt;br /&gt;
Assign a static IP for the Raspberry:&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli connection add con-name eth0-manual ifname eth0 type ethernet ip4 192.168.7.7/24 ipv6.method disabled&lt;br /&gt;
&lt;br /&gt;
The Raspberry&#039;s IP address is 192.168.7.7 when a cable is connected. The Network Manager may need to be reloaded.&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli con reload&lt;br /&gt;
&lt;br /&gt;
Your PC on the other end then needs to be assigned a static (manual) IP address in the same network, e.g., 192.168.7.22.&lt;br /&gt;
&lt;br /&gt;
The response time on the cable is much faster than over wifi. Typically less than 0.5ms on cable and often more than 5ms on wifi. Try ping from your PC:&lt;br /&gt;
&lt;br /&gt;
 ping 192.168.7.7&lt;br /&gt;
&lt;br /&gt;
==== DHCP with static IP fallback ====&lt;br /&gt;
&lt;br /&gt;
I found this method (Google AI) to use DHCP with higher priority, and then a static IP if DHCP fails&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli connection add type ethernet con-name &amp;quot;Wired-DHCP&amp;quot; ifname eth0 ipv4.method auto autoconnect yes connect.autoconnect-priority 1&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli connection add type ethernet con-name &amp;quot;Robobot-Static7&amp;quot; ifname eth0 ipv4.method manual ipv4.addresses 192.168.7.7/24 ipv4.gateway 192.168.7.1 ipv4.dns 8.8.8.8 autoconnect yes connect.autoconnect-priority 0&lt;br /&gt;
&lt;br /&gt;
This creates 2 entries in /etc/NetworkManager/system-connections (on a default Raspberry Pi 64 Bit OS using Network Manager)&lt;br /&gt;
&lt;br /&gt;
/etc/NetworkManager/system-connections/Wired-DHCP.nmconnection&lt;br /&gt;
&lt;br /&gt;
 [connection]&lt;br /&gt;
 id=Wired-DHCP&lt;br /&gt;
 uuid=339844b1-cee4-4a43-a3f1-a5de05f3cb70&lt;br /&gt;
 type=ethernet&lt;br /&gt;
 autoconnect-priority=1&lt;br /&gt;
 interface-name=eth0&lt;br /&gt;
 &lt;br /&gt;
 [ethernet]&lt;br /&gt;
 &lt;br /&gt;
 [ipv4]&lt;br /&gt;
 method=auto&lt;br /&gt;
 &lt;br /&gt;
 [ipv6]&lt;br /&gt;
 addr-gen-mode=default&lt;br /&gt;
 method=auto&lt;br /&gt;
 &lt;br /&gt;
 [proxy]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note! the UUID should be different&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
/etc/NetworkManager/system-connections/Robobot-Static7.nmconnection&lt;br /&gt;
&lt;br /&gt;
 [connection]&lt;br /&gt;
 id=Robobot-Static7&lt;br /&gt;
 uuid=2a91ef05-3666-4293-a793-330c3b49cdd4&lt;br /&gt;
 type=ethernet&lt;br /&gt;
 interface-name=eth0&lt;br /&gt;
 &lt;br /&gt;
 [ethernet] &lt;br /&gt;
 &lt;br /&gt;
 [ipv4]&lt;br /&gt;
 address1=192.168.7.7/24,192.168.7.6&lt;br /&gt;
 dns=192.168.7.6;&lt;br /&gt;
 method=manual&lt;br /&gt;
 never-default=yes&lt;br /&gt;
 &lt;br /&gt;
 [ipv6]&lt;br /&gt;
 addr-gen-mode=default&lt;br /&gt;
 method=auto&lt;br /&gt;
 &lt;br /&gt;
 [proxy]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note2! To default to static IP can take 2-4 minutes after detecting the cable! (at least 2 times 60 second timeout is needed)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On your laptop, you can do the same, but probably more efficiently, set to manual IP v4.&lt;br /&gt;
This can be done using your GUI tools, or on Linux:&lt;br /&gt;
&lt;br /&gt;
 sudo ip eth0 192.168.7.22&lt;br /&gt;
&lt;br /&gt;
Note! &#039;&#039;eth0&#039;&#039; may be different, as modern hardware often has a more complex name, as &#039;&#039;eno1&#039;&#039; or &#039;&#039;enp108s0&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Note2! If the robot has 192.168.7.7, then you should use something else for your laptop, e.g. 192.168.7.22.&lt;br /&gt;
&lt;br /&gt;
Then ssh to the robot&lt;br /&gt;
&lt;br /&gt;
 ssh local@192.168.7.7&lt;br /&gt;
&lt;br /&gt;
==== Install DNS server on Raspberry ====&lt;br /&gt;
&lt;br /&gt;
May be deprecated; use the alternative method above with fallback to a static IP.&lt;br /&gt;
&lt;br /&gt;
Allow the connected PC to get an IP automatically; install DNSMASQ&lt;br /&gt;
&lt;br /&gt;
 sudo apt install dnsmasq&lt;br /&gt;
&lt;br /&gt;
Configure its use by editing /etc/dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
Uncomment and change two lines. It is to be used on ETH0 only and in the IP range 192.168.7.60 to 192.168.7.70.&lt;br /&gt;
&lt;br /&gt;
 # DNS requests only on&lt;br /&gt;
 # specified interface&lt;br /&gt;
 interface=eth0&lt;br /&gt;
 # range of addresses available for lease and optionally&lt;br /&gt;
 # a lease time&lt;br /&gt;
 dhcp-range=192.168.7.60,192.168.7.70,12h&lt;br /&gt;
&lt;br /&gt;
Restart dnsmasq&lt;br /&gt;
&lt;br /&gt;
 sudo service dnsmasq restart&lt;br /&gt;
&lt;br /&gt;
To see the status of the dnsmasq service, use:&lt;br /&gt;
&lt;br /&gt;
 journalctl -b0 -u dnsmasq.service&lt;br /&gt;
&lt;br /&gt;
After this, when you plug a cable into a PC, both the robot and the PC should have IP addresses in the 192.168.7. range within a minute or so. And the robot should display the new IP 192.168.7.7.&lt;br /&gt;
&lt;br /&gt;
You can now access the robot using &lt;br /&gt;
 ssh local@192.168.7.7&lt;br /&gt;
&lt;br /&gt;
==== Local link ====&lt;br /&gt;
&lt;br /&gt;
Note: This method failed in most cases&lt;br /&gt;
&lt;br /&gt;
If wifi is too slow or unavailable, a local link using a network cable could be the solution.&lt;br /&gt;
&lt;br /&gt;
Many PCs will assign a local link IP like 168.254.x.x, and the Robot will do the same. The robot IP will be displayed on the small display but may be obscured if a Wi-Fi IP is available.&lt;br /&gt;
&lt;br /&gt;
To prepare this behaviour, log in to the Raspberry using wifi (or attach a screen and keyboard) and make a preferred local-link cabled connection:&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli con mod &amp;quot;Wired connection 1&amp;quot; ipv4.method link-local ipv6.method disabled&lt;br /&gt;
&lt;br /&gt;
This should then be the behaviour after a reboot. &amp;quot;Wired connection 1&amp;quot; needs to be spelt this way; see the valid names using:&lt;br /&gt;
&lt;br /&gt;
 nmcli connection&lt;br /&gt;
&lt;br /&gt;
Reload Network manager&lt;br /&gt;
&lt;br /&gt;
 sudo nmcli connection reload&lt;br /&gt;
&lt;br /&gt;
== Check IP and SSID ==&lt;br /&gt;
&lt;br /&gt;
When the Pi has rebooted, connect to it using SSH once again. Check that the Pi is connected to WiFi&lt;br /&gt;
 ifconfig&lt;br /&gt;
Under &#039;&#039;&#039;wlan0&#039;&#039;&#039; confirm that the Pi has received an IP (inet addr) and note down the first three sections of the IP - they are most likely &#039;&#039;&#039;10.197.21x.xxx&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
To see which SSID you are connected to, use&lt;br /&gt;
 iwconfig&lt;br /&gt;
or &lt;br /&gt;
 nmcli -o&lt;br /&gt;
&lt;br /&gt;
The MAC address (&#039;HWaddr&#039; or &#039;ether&#039;) of the Pi should also be noted down - this probably starts with &#039;&#039;&#039;B8:27:EB:xx:xx:xx&#039;&#039;&#039; make sure to get all of it.&lt;br /&gt;
&lt;br /&gt;
===Find IP of robot (Linux)===&lt;br /&gt;
&lt;br /&gt;
In case the Pi gets a new IP address after reboot, you can search for it using the MAC address and &#039;&#039;&#039;nmap&#039;&#039;&#039;. If &#039;&#039;&#039;nmap&#039;&#039;&#039; is not installed, start by installing it&lt;br /&gt;
 sudo apt-get install nmap&lt;br /&gt;
To search for the Pi using the MAC address in terminal type&lt;br /&gt;
 nmap -sP 10.197.218.0/20 | awk &#039;/^Nmap/{ip=$NF}/B8:27:EB:23:A0:F5/{print ip}&#039;&lt;br /&gt;
where &#039;&#039;&#039;10.197.218&#039;&#039;&#039; is the first three sections of the IP you noted down, 20 is the number of fixed bits (out of 32), and &#039;&#039;&#039;B8:27:EB:23:A0:F5&#039;&#039;&#039; is the MAC address of the Pi. This should return the IP of the Pi.&lt;br /&gt;
&lt;br /&gt;
NB! the MAC can hold letters, they should probably be capital.&lt;br /&gt;
&lt;br /&gt;
==== If you don&#039;t know the IP address====&lt;br /&gt;
&lt;br /&gt;
Use the first part to get a list of active IPs on the net:&lt;br /&gt;
  nmap -sP 10.197.218.0/24&lt;br /&gt;
&lt;br /&gt;
The robot&#039;s name should be included in the list, but the network may take a while to detect it.&lt;br /&gt;
&lt;br /&gt;
== NTP ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Depreciated&#039;&#039;&#039;. The Raspberry default time sync now works, also at DTU.&lt;br /&gt;
=== PTP ===&lt;br /&gt;
For PTP, see [[Ricbot PTP]].&lt;br /&gt;
&lt;br /&gt;
=== NTP (depricated) ===&lt;br /&gt;
Network Time Protocol is used to keep clocks in sync.&lt;br /&gt;
Raspberry Pi will start with the date and time of the last proper shutdown, and a few seconds after the network is up, it will sync the clock using NTP.&lt;br /&gt;
&lt;br /&gt;
NTP need to be installed, i.e. &#039;sudo apt install ntp&#039; if not done already.&lt;br /&gt;
&lt;br /&gt;
At DTU, most clock sources are blocked; the clock source needs to be configured.&lt;br /&gt;
&lt;br /&gt;
At DTU, edit /etc/NTP.conf or /etc/ntpsec/ntp.conf and add ntp.ait.du.dk to the top of the server pool list.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/ntpsec/ntp.conf&lt;br /&gt;
&lt;br /&gt;
 ...&lt;br /&gt;
 # Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board&lt;br /&gt;
 # on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for&lt;br /&gt;
 # more information.&lt;br /&gt;
 pool ntp.ait.dtu.dk&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
Sync time (if on DTU net)&lt;br /&gt;
&lt;br /&gt;
 sudo ntpdate -u ntp.ait.dtu.dk&lt;br /&gt;
&lt;br /&gt;
Should work in and around DTU - see also [[NTP howto]] for more details.&lt;br /&gt;
&lt;br /&gt;
You can also check the status of the ntp service:&lt;br /&gt;
&lt;br /&gt;
 sudo systemctl status ntp.service&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=ASTA&amp;diff=9059</id>
		<title>ASTA</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=ASTA&amp;diff=9059"/>
		<updated>2026-08-14T08:25:52Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* ASTA insides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Autonomous Systems Test Arena (building 330D)=&lt;br /&gt;
&lt;br /&gt;
Our new facility for cooperating autonomous systems - in air, on the ground, on water and below the water surface.&lt;br /&gt;
&lt;br /&gt;
[[File:asta_as_of_06_apr_2020_1.jpg | 450px]]&lt;br /&gt;
&lt;br /&gt;
===Status===&lt;br /&gt;
&lt;br /&gt;
28 June 2021: &lt;br /&gt;
Fully operational.&lt;br /&gt;
&lt;br /&gt;
Official homepage: https://asta.dtu.dk/&lt;br /&gt;
&lt;br /&gt;
Guidance for use: https://asta.dtu.dk/-/media/subsites/asta/documents/guidelines-and-instructions-for-using-asta-30-07-2024.pdf&lt;br /&gt;
&lt;br /&gt;
DTU Electro page: https://electro.dtu.dk/research/research-facilities/autonomous-systems-test-arena&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* [[ASTA access]] - instruction for access&lt;br /&gt;
&lt;br /&gt;
* [[ASTA pool]] - instructions for pool use and maintenance.&lt;br /&gt;
&lt;br /&gt;
* [[ASTA motion capture]] - instructions for use&lt;br /&gt;
&lt;br /&gt;
* [[ASTA booking]] - instructions for booking.&lt;br /&gt;
&lt;br /&gt;
=== ASTA insides ===&lt;br /&gt;
&lt;br /&gt;
* Looking [http://10.59.9.201:7123 South] [http://10.59.9.236:7123/?action=stream West] [http://10.59.9.222:8080/?action=stream North]  (works on local net (10.59.8/9.x) only)&lt;br /&gt;
&lt;br /&gt;
* [[Building history]] - pictures from process&lt;br /&gt;
&lt;br /&gt;
===Maintainer===&lt;br /&gt;
&lt;br /&gt;
This page is (mainly) maintained by Christian Andersen (jcan@dtu.dk)&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=ASTA&amp;diff=9058</id>
		<title>ASTA</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=ASTA&amp;diff=9058"/>
		<updated>2026-08-14T08:25:35Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* ASTA insides */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Autonomous Systems Test Arena (building 330D)=&lt;br /&gt;
&lt;br /&gt;
Our new facility for cooperating autonomous systems - in air, on the ground, on water and below the water surface.&lt;br /&gt;
&lt;br /&gt;
[[File:asta_as_of_06_apr_2020_1.jpg | 450px]]&lt;br /&gt;
&lt;br /&gt;
===Status===&lt;br /&gt;
&lt;br /&gt;
28 June 2021: &lt;br /&gt;
Fully operational.&lt;br /&gt;
&lt;br /&gt;
Official homepage: https://asta.dtu.dk/&lt;br /&gt;
&lt;br /&gt;
Guidance for use: https://asta.dtu.dk/-/media/subsites/asta/documents/guidelines-and-instructions-for-using-asta-30-07-2024.pdf&lt;br /&gt;
&lt;br /&gt;
DTU Electro page: https://electro.dtu.dk/research/research-facilities/autonomous-systems-test-arena&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
&lt;br /&gt;
* [[ASTA access]] - instruction for access&lt;br /&gt;
&lt;br /&gt;
* [[ASTA pool]] - instructions for pool use and maintenance.&lt;br /&gt;
&lt;br /&gt;
* [[ASTA motion capture]] - instructions for use&lt;br /&gt;
&lt;br /&gt;
* [[ASTA booking]] - instructions for booking.&lt;br /&gt;
&lt;br /&gt;
=== ASTA insides ===&lt;br /&gt;
&lt;br /&gt;
* Looking [http://10.59.9.201:7123 South] [http://10.59.9.236:8080/?action=stream West] [http://10.59.9.222:8080/?action=stream North]  (works on local net (10.59.8/9.x) only)&lt;br /&gt;
&lt;br /&gt;
* [[Building history]] - pictures from process&lt;br /&gt;
&lt;br /&gt;
===Maintainer===&lt;br /&gt;
&lt;br /&gt;
This page is (mainly) maintained by Christian Andersen (jcan@dtu.dk)&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:Ric-sensorbox-cables.png&amp;diff=9057</id>
		<title>File:Ric-sensorbox-cables.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:Ric-sensorbox-cables.png&amp;diff=9057"/>
		<updated>2026-08-13T14:02:27Z</updated>

		<summary type="html">&lt;p&gt;Jca: Cabling&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Cabling&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9056</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9056"/>
		<updated>2026-08-13T14:01:49Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system, 5V power from a separate 5V buck converter.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
=== Cabling ===&lt;br /&gt;
&lt;br /&gt;
[[file: ric-sensorbox-cables.png | 700px]]&lt;br /&gt;
&lt;br /&gt;
Cabling overview for RIC sensorbox. A network connection can be established to RICBOT and/or to other networks or PCs.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_RIC_plug_use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Camera trigger control board and cable connections for cameras and power control for RIC sensor box.&lt;br /&gt;
Most components are for the high voltage driver and are not mounted.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9055</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9055"/>
		<updated>2026-08-10T19:43:43Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system, 5V power from a separate 5V buck converter.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_RIC_plug_use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Camera trigger control board and cable connections for cameras and power control for RIC sensor box.&lt;br /&gt;
Most components are for the high voltage driver and are not mounted.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9054</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9054"/>
		<updated>2026-08-10T19:41:48Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Camera trigger board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_RIC_plug_use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Camera trigger control board and cable connections for cameras and power control for RIC sensor box.&lt;br /&gt;
Most components are for the high voltage driver and are not mounted.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:Hv_gen_RIC_plug_use.png&amp;diff=9053</id>
		<title>File:Hv gen RIC plug use.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:Hv_gen_RIC_plug_use.png&amp;diff=9053"/>
		<updated>2026-08-10T19:40:22Z</updated>

		<summary type="html">&lt;p&gt;Jca: Used connectors&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Used connectors&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9052</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9052"/>
		<updated>2026-08-10T19:39:12Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Camera trigger board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_RIC_plug_use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Camera trigger control board, and cable connections for cameras and power control.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9051</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9051"/>
		<updated>2026-08-10T17:48:59Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Power distribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 550px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9050</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9050"/>
		<updated>2026-08-10T17:48:47Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Power distribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:Power-dist-RIC-use.png&amp;diff=9049</id>
		<title>File:Power-dist-RIC-use.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:Power-dist-RIC-use.png&amp;diff=9049"/>
		<updated>2026-08-10T17:48:25Z</updated>

		<summary type="html">&lt;p&gt;Jca: Connections on PCB&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Connections on PCB&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9048</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9048"/>
		<updated>2026-08-10T17:47:49Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Power distribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;br /&gt;
&lt;br /&gt;
[[file: power-dist-RIC-use.png | 400px]]&lt;br /&gt;
&lt;br /&gt;
Cable connections when used in the sensor box.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9047</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9047"/>
		<updated>2026-08-09T19:00:44Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* LED flash board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses up to 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9046</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9046"/>
		<updated>2026-08-09T18:59:01Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Camera trigger board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is used to control one or two potential LED flash boards. The board also has a serial channel used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
The board sends a message to the Raspberry Pi every time the cameras are triggered. This message includes the trigger number used when images are saved.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9045</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9045"/>
		<updated>2026-08-09T18:56:12Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Camera trigger board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high-voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
The Teensy controls the power board through three plugs: J2 for system off and current status, J3 for temperature measurements and J4 for delayed on for cameras.&lt;br /&gt;
&lt;br /&gt;
The camera trigger is J15 for the first camera and J16 for another camera, that can be delayed relative to the first camera.&lt;br /&gt;
&lt;br /&gt;
J21 is to control one or two potential LED flash boards. The board further has a serial channel that is used to control the LED band.&lt;br /&gt;
A small display is used to display the IP (and other status) of the connected Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9044</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9044"/>
		<updated>2026-08-09T18:46:24Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Power distribute */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;br /&gt;
&lt;br /&gt;
Q9, a P-channel power MOSFET, delivers power to the electronics, up to 10 A in total.&lt;br /&gt;
&lt;br /&gt;
Q3 and Q4 deliver power to other circuits, e.g. motor drivers. This power can be switched on and off separately. Q1 and Q13 can switch this power off, using the emergency switch, or from software through Q14 and Q15.&lt;br /&gt;
&lt;br /&gt;
Q5 and Q8 form a bistable switch. The output (drain on Q5) switches on the power. This can be overwritten by the on-switch through J5. From software, it can be switched off through Q6, delayed by C6 and R12. Q7 delivers 3.5V for the switch and for the temperature sensors, U1 and two external sensors, through J10 and J11.&lt;br /&gt;
&lt;br /&gt;
Q11 and Q12 allow display of battery voltage (one or two batteries in series), without using energy, if the power is off.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9043</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9043"/>
		<updated>2026-08-09T16:27:12Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* LED flash board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. Current control is done indirectly by the gate voltages of Q6, Q7, and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
The LEDs can tolerate 0.7A without degrading the colour temperature, and up to 1.4A. &lt;br /&gt;
The LED takes about 2.5V at 0.7A; this requires the supply voltage to be above 16V.&lt;br /&gt;
Each LED uses 1.75W, or the entire board uses 63W in pulses. At 3 images per second and a 300us illumination time, this then requires about 0.5W from the battery.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9042</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9042"/>
		<updated>2026-08-09T16:18:09Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* LED flash board */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash. 36 LEDs of type Osram GW-PLLRA2.PM-N4P4-XX57-1, a white LED with colour temperature 3000K. The current control is done indirectly by the gate voltage of Q6, Q7 and Q8. The gate voltage is controlled on-off by Q4 and Q5 from the &#039;&#039;pulse&#039;&#039; input. From about 3us and up. The maximum gate voltage is available from Q1, and the voltage is filtered by a low-pass filter R6/C4 from the &#039;&#039;intens_PWM&#039;&#039; input; this input should be above 50kHz.&lt;br /&gt;
An LED/driver temperature is available from the U3 sensor (analogue).&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:LED_light_sch.png&amp;diff=9041</id>
		<title>File:LED light sch.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:LED_light_sch.png&amp;diff=9041"/>
		<updated>2026-08-09T16:08:20Z</updated>

		<summary type="html">&lt;p&gt;Jca: Jca uploaded a new version of File:LED light sch.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schematig flash board&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:Power_distribute_sch.png&amp;diff=9040</id>
		<title>File:Power distribute sch.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:Power_distribute_sch.png&amp;diff=9040"/>
		<updated>2026-08-08T17:13:57Z</updated>

		<summary type="html">&lt;p&gt;Jca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9039</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9039"/>
		<updated>2026-08-08T17:13:20Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Hardware PCB */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high voltage generator, but this part is probably not populated.&lt;br /&gt;
&lt;br /&gt;
=== Power distribute ===&lt;br /&gt;
&lt;br /&gt;
[[file: power_distribute_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Power control board. Three separate power outlets, two high-power (XT60), originally for motors, but here for delayed power to cameras. Six XT30 plugs for electronics. And sockets for voltage display and temperature measurements.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:Hv_gen_sch.png&amp;diff=9038</id>
		<title>File:Hv gen sch.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:Hv_gen_sch.png&amp;diff=9038"/>
		<updated>2026-08-04T17:27:37Z</updated>

		<summary type="html">&lt;p&gt;Jca: Camera trigger board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Camera trigger board&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=File:LED_light_sch.png&amp;diff=9037</id>
		<title>File:LED light sch.png</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=File:LED_light_sch.png&amp;diff=9037"/>
		<updated>2026-08-04T17:27:07Z</updated>

		<summary type="html">&lt;p&gt;Jca: Schematig flash board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Summary ==&lt;br /&gt;
Schematig flash board&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9036</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9036"/>
		<updated>2026-08-04T17:26:32Z</updated>

		<summary type="html">&lt;p&gt;Jca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;br /&gt;
&lt;br /&gt;
== Hardware PCB ==&lt;br /&gt;
&lt;br /&gt;
=== LED flash board ===&lt;br /&gt;
&lt;br /&gt;
[[file: LED_light_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
PCB board for LED flash.&lt;br /&gt;
&lt;br /&gt;
=== Camera trigger board ===&lt;br /&gt;
&lt;br /&gt;
[[file: hv_gen_sch.png | 600px]]&lt;br /&gt;
&lt;br /&gt;
Teensy 4.0 board for camera trigger. The same PCB is also used as an experimental high voltage generator, but this part is probably not populated.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9035</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9035"/>
		<updated>2026-07-31T05:31:52Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Stop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Drive system ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the red Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
Use the Logitech gamepad marked &#039;ricbot&#039;.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
=== Stop ===&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pis.&lt;br /&gt;
&lt;br /&gt;
== Sensor box ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug to either a 15-29V supply or connected to the XT60 plug on the drive box), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
=== Start and pause recording ===&lt;br /&gt;
&lt;br /&gt;
Press the red button to start and pause image recording. An LED in the LED band will be on for the camera&#039;s recording. &lt;br /&gt;
One or 2 green LEDS will be flashing to indicate that the cameras are triggered.&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
&lt;br /&gt;
With the switch in the off position, an LED in the LED band will turn purple, and the Raspberry Pi will shut down, and power will be off after about 1 minute.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9034</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9034"/>
		<updated>2026-07-31T05:30:39Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Sensor box */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Drive system ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the red Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
Use the Logitech gamepad marked &#039;ricbot&#039;.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
=== Stop ===&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
== Sensor box ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug to either a 15-29V supply or connected to the XT60 plug on the drive box), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
=== Start and pause recording ===&lt;br /&gt;
&lt;br /&gt;
Press the red button to start and pause image recording. An LED in the LED band will be on for the camera&#039;s recording. &lt;br /&gt;
One or 2 green LEDS will be flashing to indicate that the cameras are triggered.&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
&lt;br /&gt;
With the switch in the off position, an LED in the LED band will turn purple, and the Raspberry Pi will shut down, and power will be off after about 1 minute.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9033</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9033"/>
		<updated>2026-07-31T05:25:37Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* shutdown */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Drive system ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the red Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
Use the Logitech gamepad marked &#039;ricbot&#039;.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
=== Stop ===&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
== Sensor box ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug to either a 15-29V supply or connected to the XT60 plug on the drive box), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
&lt;br /&gt;
With the switch in the off position, an LED in the LED band will turn purple, and the Raspberry Pi will shut down, and power will be off after about 1 minute.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9032</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9032"/>
		<updated>2026-07-31T05:25:21Z</updated>

		<summary type="html">&lt;p&gt;Jca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Drive system ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the red Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
Use the Logitech gamepad marked &#039;ricbot&#039;.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
=== Stop ===&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
== Sensor box ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug to either a 15-29V supply or connected to the XT60 plug on the drive box), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
=== shutdown ===&lt;br /&gt;
&lt;br /&gt;
With the switch in the off position, an LED in the LED band will turn purple, and the Raspberry Pi will shut down, and power will be off after about 1 minute.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9031</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9031"/>
		<updated>2026-07-31T05:20:05Z</updated>

		<summary type="html">&lt;p&gt;Jca: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Drive system ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the red Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Remote control ===&lt;br /&gt;
&lt;br /&gt;
Use the Logitech gamepad marked &#039;ricbot&#039;.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
=== Stop ===&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
== Sensor box ==&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9030</id>
		<title>RIC start and stop</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=RIC_start_and_stop&amp;diff=9030"/>
		<updated>2026-07-31T05:17:58Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Stop */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Start ==&lt;br /&gt;
&lt;br /&gt;
Connect the big battery (60Ah 24V) using the read Anderson plug.&lt;br /&gt;
&lt;br /&gt;
Turn on the on-off switch on the top of the electronics box.&lt;br /&gt;
&lt;br /&gt;
It should now turn on.&lt;br /&gt;
* The two displays should show battery voltage (between 24.5 and 26.6V).&lt;br /&gt;
** The right is the electronics voltage&lt;br /&gt;
** The left is the voltage to the motor controllers. This should be off if the emergency switch is pushed.&lt;br /&gt;
* After a while (approx 90 seconds), the small (blue) display on the Teensy board should show the IP of the drive Raspberry Pi (currently named &amp;quot;Saturn&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
== Remote control ==&lt;br /&gt;
&lt;br /&gt;
The Logitech gamepad marked &#039;ricbot&#039; should be used.&lt;br /&gt;
&lt;br /&gt;
Press the &#039;back&#039; button to get into manual control. The right joystick controls the driving.&lt;br /&gt;
The right-hand switch allows a faster speed when pressed.&lt;br /&gt;
&lt;br /&gt;
== Stop ==&lt;br /&gt;
&lt;br /&gt;
To stop and shut down, turn off the on-off switch. There will be a delay of up to 60 seconds before the shutdown is implemented. If it is still on after 2 minutes, unplug the battery.&lt;br /&gt;
&lt;br /&gt;
The delay is to ensure the integrity of the log files and proper shutdown of the Raspberry Pi.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9029</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9029"/>
		<updated>2026-07-30T05:36:56Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral IR cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9028</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9028"/>
		<updated>2026-07-30T05:33:38Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has a cabled interface to the drive system of the RICbot (mainly for MQTT odometry). A recording start-pause button is connected to the Pi.&lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9027</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9027"/>
		<updated>2026-07-30T05:30:40Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Start-up issue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has cabled interface to the drive system of the RICbot (mainly for MQTT odometry). &lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet (July 2026).&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9026</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9026"/>
		<updated>2026-07-30T05:30:10Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Startup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has cabled interface to the drive system of the RICbot (mainly for MQTT odometry). &lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* The down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the camera IP should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet.&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
	<entry>
		<id>https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9025</id>
		<title>Ricbot sensorbox</title>
		<link rel="alternate" type="text/html" href="https://rsewiki.electro.dtu.dk/index.php?title=Ricbot_sensorbox&amp;diff=9025"/>
		<updated>2026-07-30T05:27:16Z</updated>

		<summary type="html">&lt;p&gt;Jca: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Back to [[Ricbot]]&lt;br /&gt;
&lt;br /&gt;
== Sensorbox ==&lt;br /&gt;
&lt;br /&gt;
The sensorbox is a relatively self-contained box with camera sensors and electronics to support and record data from these sensors.&lt;br /&gt;
&lt;br /&gt;
External requirements are power (14-29V) and about 20W.&lt;br /&gt;
&lt;br /&gt;
Connection to odometry and GNSS are through cabled Ethernet and MQTT.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
[[file: sensorbox-cabling.png | 500px]]&lt;br /&gt;
&lt;br /&gt;
* 4 Basler cameras (a2A2448-23gcBAS) with a 6mm C lens.&lt;br /&gt;
* Raspberry Pi 5 (2) with SSD hard disk. This handles recording of all images. It has cabled interface to the drive system of the RICbot (mainly for MQTT odometry). &lt;br /&gt;
* 5V power board for the Raspberry Pi.&lt;br /&gt;
* The Pi cam is intended for forward-looking recording (a 12Mpixels camera with CS lens).&lt;br /&gt;
* A trigger management microprocessor (Teensy 4.0) that also manages the power distribution, the on-off switching and the status LED-band.&lt;br /&gt;
* A power distribution board with the ability for sequenced turn-on and turn-off.&lt;br /&gt;
* 12 V supply for cameras and common trigger junction board.&lt;br /&gt;
* Possibly 2 multispectral cameras with their own recording system.&lt;br /&gt;
* Flash boards can further be connected and controlled by the common trigger system.&lt;br /&gt;
&lt;br /&gt;
== Function ==&lt;br /&gt;
&lt;br /&gt;
=== Startup ===&lt;br /&gt;
&lt;br /&gt;
When power is connected (XT60 plug), nothing happens. The power board requires a start signal.&lt;br /&gt;
&lt;br /&gt;
The power switch has 3 positions:&lt;br /&gt;
* the down position gives an on signal to the power distribution board.&lt;br /&gt;
* Centre position is neutral (on or off)&lt;br /&gt;
* Up is delayed off; leave in this position when off (forced off).&lt;br /&gt;
&lt;br /&gt;
==== Start-up issue ====&lt;br /&gt;
&lt;br /&gt;
When everything is powered on at the same time, it happens that the cameras do not (all) get an IP in the right way, and thus are unavailable.&lt;br /&gt;
&lt;br /&gt;
The reason is that the Raspberry Pi is running the DNS server providing the camera IP, but takes time to start, as does the network switch.&lt;br /&gt;
This could be handled by using a static camera IP, but at times it is appropriate to connect the camera switch to an established cabled network, where the cameras should follow that network. This is needed to fully utilise the Basler Pylon software.&lt;br /&gt;
&lt;br /&gt;
To solve this, the cameras will be supplied with a delayed turn-on. &lt;br /&gt;
The delayed turn-on utilises one of the two power plugs on the power distribution intended for motor power.&lt;br /&gt;
This allows the Raspberry Pi and the network switch to be ready before the cameras are turned on.&lt;br /&gt;
The turn-on delay is controlled by the microprocessor.&lt;br /&gt;
&lt;br /&gt;
Delayed turn-on is not implemented yet.&lt;br /&gt;
&lt;br /&gt;
=== Trigger control ===&lt;br /&gt;
&lt;br /&gt;
The microprocessor controls the triggers. It can issue 2 camera triggers and control an LED-based flash.&lt;br /&gt;
&lt;br /&gt;
* Camera trigger 1 is intended for the Baslar cameras. It is a 3.3V signal, where the leading edge (low to high) is the trigger signal. The trailing edge should not be used. The pulse is at least 3ms.&lt;br /&gt;
* Camera trigger 2 is intended for the multi-spectral cameras and is also a 3.3V leading-edge signal. This signal can be delayed relative to the camera 1 signal.&lt;br /&gt;
* The flash signal is a positive pulse, where the delay and length are controllable.&lt;br /&gt;
&lt;br /&gt;
Triggering is activated by a command from the Raspberry Pi by an MQTT message&lt;br /&gt;
* topic: &#039;dtubot/cmd/T0&#039; message &#039;cam A B F R&#039;, where:&lt;br /&gt;
** &#039;cam&#039; is the trigger command.&lt;br /&gt;
** &#039;A&#039; is the delay from camera 1 trigger to camera 2 trigger in us. If zero, then there is no camera 2 trigger.&lt;br /&gt;
** &#039;B&#039; is the delay to the start of the flash in us. &lt;br /&gt;
** &#039;F&#039; is the duration of the flash in us. If zero, then there is no flash signal.&lt;br /&gt;
** &#039;R&#039; is the repeat timing in ms.&lt;br /&gt;
* Camera 1 is always triggered when the message is received.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
* &#039;cam 0 0 0 1000&#039;: No camera 2 trigger, no flash, camera 1 trigger every 1000ms (1 sec).&lt;br /&gt;
* &#039;cam 100 200 50 1000&#039;: Camera 2 trigger 100us after camera 1, flash starts 200us after camera 1 and illuminates for 50us. All are retriggered every 1000ms (1 sec).&lt;br /&gt;
The trigger command is initiated by the &#039;&#039;cam_mqtt&#039;&#039; app in the &#039;&#039;svn/ricbot/cam_mqtt&#039;&#039; directory.&lt;br /&gt;
The trigger command is specified in the &#039;&#039;svn/ricbot/cam_mqtt/build&#039;&#039; directory, in the &#039;&#039;robot.ini&#039;&#039; file. The &#039;&#039;trigger&#039;&#039; group configures the trigger.&lt;br /&gt;
&lt;br /&gt;
The robot.ini file, trigger part:&lt;br /&gt;
 [trigger]&lt;br /&gt;
 log = true&lt;br /&gt;
 use = true&lt;br /&gt;
 trigger_interval_ms = 1000&lt;br /&gt;
 trigger_cam2_us = 0&lt;br /&gt;
 trigger_flash_delay_us = 0&lt;br /&gt;
 trigger_flash_duration_us = 0&lt;br /&gt;
&lt;br /&gt;
== Recording control ==&lt;br /&gt;
&lt;br /&gt;
The red button on the side of the box controls the recording.&lt;br /&gt;
* Pressed once starts recording.&lt;br /&gt;
* Pressing again will pause the recording.&lt;br /&gt;
&lt;br /&gt;
When recording, there is an LED in the LED-band that will illuminate (orange) for every camera that is recording. If the camera is not found or has failed, the corresponding LED will not illuminate. &lt;br /&gt;
&lt;br /&gt;
The red recording button is connected directly to the Raspberry Pi and monitored by the &#039;&#039;cam_mqtt&#039;&#039; app.&lt;br /&gt;
&lt;br /&gt;
The recording is saved in the &#039;&#039;build&#039;&#039; directory for the &#039;&#039;cam_mqtt&#039;&#039; app. A new recording directory is generated with every reboot of the Raspberry Pi.&lt;br /&gt;
&lt;br /&gt;
Images are saved at full camera resolution in .jpg format.&lt;/div&gt;</summary>
		<author><name>Jca</name></author>
	</entry>
</feed>