RpiBoot + Navio2

Is it possible using RpiBoot to update Navio 2 firmware ?

No.

Could you please tell us what you want to achieve?

Navio 2 doesn’t have firmware per se. In order to update RCIO firmware use this.

Well I simply want to update new version like the new 3.8 that came out without having to write a new image everytime. So plug in update via Mission planner and QGC and go fly :slight_smile:

I understand you want to update your “Arduplane” version without waiting for a new Navio2.img

There is a set of instruction “HowTo” in the wiki to do that.

https://docs.emlid.com/navio2/common/ardupilot/installation-and-running/#launching-a-custom-ardupilot-binary

Instruction are for copter but it work the same way for plane. Link to Navio2 arduplane 3.8.4

[http://firmware.eu.ardupilot.org/Plane/stable/navio2/]
(http://firmware.eu.ardupilot.org/Plane/stable/navio2/)

Marc

2 Likes

i@navio:~ $ wget http://firmware.eu.ardupilot.org/Plane/stable/navio2/
–2018-01-25 18:38:49-- http://firmware.eu.ardupilot.org/Plane/stable/navio2/
Resolving firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)… 208.68.38.241
Connecting to firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)|208.68.38.24 1|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1779 (1.7K) [text/html]
Saving to: ‘index.html’

index.html 100%[===================>] 1.74K --.-KB/s in 0s

2018-01-25 18:38:49 (42.4 MB/s) - ‘index.html’ saved [1779/1779]


pi@navio:~ $ sudo emlidtool rcio update
updating firmware using /lib/firmware/rcio.fw
Progress | | 0.0 Traceback (most recent call last):
File “/usr/local/bin/emlidtool”, line 11, in
sys.exit(main())
File "/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py ", line 243, in main
emlidtool.parse_args()
File "/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py ", line 170, in parse_args
getattr(self, args.command)()
File "/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py ", line 219, in rcio
self.func(rcio, args)
File "/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py ", line 224, in func
args.func(args)
File "/usr/local/lib/python3.5/dist-packages/emlid/util/util.py ", line 25, in wrapped
return fn(*args, **kwargs)
File "/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py ", line 88, in update_rcio
updater.update(quiet_update=False)
File "/usr/local/lib/python3.5/dist-packages/emlid/util/util.py ", line 25, in wrapped
return fn(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/emlid/rcio/updater .py”, line 29, in update
self.connect()
File “/usr/local/lib/python3.5/dist-packages/emlid/rcio/updater .py”, line 49, in connect
print_progress_bar(10, 100, prefix=‘Getting connection’)
File "/usr/local/lib/python3.5/dist-packages/emlid/util/util.py ", line 67, in print_progress_bar
print(‘\r%s |%s| %s%% Complete’ % (prefix, bar, percent), end =‘\r’)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in posi tion 21-25: ordinal not in range(128)

What am I doing wrong ?

wget http://firmware.eu.ardupilot.org/Plane/stable/navio2/arduplane

rcio update problem?? maybe you do not need to update rcio (already done earlier???)

rcio update is related to Navio2, not to arduplane.

Do not forget to refer to https://docs.emlid.com/navio2/common/ardupilot/installation-and-running/#launching-a-custom-ardupilot-binary

to use the latest downloaded arduplane.

Marc

I did rcio check and says i need to update.

"* Documentation: https://docs.emlid.com/
Last login: Thu Jan 25 21:18:44 2018 from 192.168.11.150
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
^[[A-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)
pi@navio:~ $ emlidtool rcio check
current: 0x793d141e
local: 0xcaec2284

You need to update. Please run:
emlidtool rcio update"

i@navio: ~ $ wget http://firmware.eu.ardupilot.org/Copter/stable/navio2-quad/arducopter-quad
pi@navio: ~ $ chmod +x arducopter-quad

Do i need to change chmod +x arducopter-quad to chmod arduplane-plane ?

Yes you do, unless it will not launch.

Marc

pi@navio:~ $ chmod +x arduplane-plane
chmod: cannot access ‘arduplane-plane’: No such file or directory

The name of the file is arduplane

so

chmod +x arduplane

Marc

sudo chmod +x arduplane
chmod: cannot access ‘arduplane’: No such file or directory

pi@navio:~ $ chmod +x arduplane
chmod: cannot access ‘arduplane’: No such file or directory

Not easy…

I will do it on my Navio2.

pi@navio:~ $ wget http://firmware.eu.ardupilot.org/Plane/stable/navio2/arduplane
–2018-01-25 19:39:34-- http://firmware.eu.ardupilot.org/Plane/stable/navio2/arduplane
Resolving firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)… 208.68.38.241
Connecting to firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)|208.68.38.241|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1262084 (1.2M)
Saving to: ‘arduplane’

arduplane 100%[=========================================================================================>] 1.20M 680KB/s in 1.8s

2018-01-25 19:39:36 (680 KB/s) - ‘arduplane’ saved [1262084/1262084]

File arduplane is saved

pi@navio:~ $ ls -l
total 1240
-rw-r–r-- 1 pi pi 1262084 Jan 8 23:48 arduplane
drwxr-xr-x 6 pi pi 4096 Oct 1 05:21 Navio2

ls -l list files, arduplane is there with the wrong attributes

pi@navio:~ $ chmod +x arduplane
pi@navio:~ $ ls -l
total 1240
-rwxr-xr-x 1 pi pi 1262084 Jan 8 23:48 arduplane
drwxr-xr-x 6 pi pi 4096 Oct 1 05:21 Navio2
pi@navio:~ $

After chmod, attributes are changed.

Marc

1 Like

pi@navio:~ $ ls -l
total 3316
-rw-r–r-- 1 pi pi 1058124 Mar 16 2017 arducopter-quad
-rw-r–r-- 1 pi pi 1058124 Mar 16 2017 arducopter-quad.1
-rwxr-xr-x 1 pi pi 1262084 Jan 9 01:48 arduplane
-rw-r–r-- 1 pi pi 1779 Jan 25 13:56 index.html
-rw-r–r-- 1 pi pi 1779 Jan 25 20:56 index.html.1
pi@navio:~ $ emlidtool rcio check
current: 0x793d141e
local: 0xcaec2284

You need to update. Please run:
emlidtool rcio update

pi@navio:~ $ sudo emlidtool rcio update
updating firmware using /lib/firmware/rcio.fw
Traceback (most recent call last): | 0.0% Complete
File “/usr/local/bin/emlidtool”, line 11, in
sys.exit(main())
File “/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py”, line 243, in main
emlidtool.parse_args()
File “/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py”, line 170, in parse_args
getattr(self, args.command)()
File “/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py”, line 219, in rcio
self.func(rcio, args)
File “/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py”, line 224, in func
args.func(args)
File “/usr/local/lib/python3.5/dist-packages/emlid/util/util.py”, line 25, in wrapped
return fn(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/emlid/emlidtool.py”, line 88, in update_rcio
updater.update(quiet_update=False)
File “/usr/local/lib/python3.5/dist-packages/emlid/util/util.py”, line 25, in wrapped
return fn(*args, **kwargs)
File “/usr/local/lib/python3.5/dist-packages/emlid/rcio/updater.py”, line 29, in update
self.connect()
File “/usr/local/lib/python3.5/dist-packages/emlid/rcio/updater.py”, line 49, in connect
print_progress_bar(10, 100, prefix=‘Getting connection’)
File “/usr/local/lib/python3.5/dist-packages/emlid/util/util.py”, line 67, in print_progress_bar
print(’\r%s |%s| %s%% Complete’ % (prefix, bar, percent), end=’\r’)
UnicodeEncodeError: ‘ascii’ codec can’t encode characters in position 21-25: ordinal not in range(128)

Should not be this difficult just to update to new plane version 3.8.4

I cannot help with this problem…

But I use an easy process to update my arducopter version without changes in the configuration files.

It can work with arduplane (if you are already using a 3.8 version).

pi@navio:cd /opt/ardupilot/navio2/arduplane-3.8/bin

It is the directory where arduplane is

pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ ls -l
total 1224
-rwxrwxr-x 1 root root 1252364 Sep 14 12:31 arduplane

Ls -l show arduplane, Now I rename it arduplane.old

pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ sudo mv arduplane arduplane.old
pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ ls -l
total 1224
-rwxrwxr-x 1 root root 1252364 Sep 14 12:31 arduplane.old

I download the latest arduplane directly in the directory: do not forget sudo

pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ sudo wget http://firmware.eu.ardupilot.org/Plane/stable/navio2/arduplane
–2018-01-25 19:55:12-- http://firmware.eu.ardupilot.org/Plane/stable/navio2/arduplane
Resolving firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)… 208.68.38.241
Connecting to firmware.eu.ardupilot.org (firmware.eu.ardupilot.org)|208.68.38.241|:80… connected.
HTTP request sent, awaiting response… 200 OK
Length: 1262084 (1.2M)
Saving to: ‘arduplane’

arduplane 100%[=========================================================================================>] 1.20M 655KB/s in 1.9s

2018-01-25 19:55:14 (655 KB/s) - ‘arduplane’ saved [1262084/1262084]

then change attributes (sudo is mandatory)

pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ sudo chmod +x arduplane
pi@navio:/opt/ardupilot/navio2/arduplane-3.8/bin $ ls -l
total 2460
-rwxr-xr-x 1 root root 1262084 Jan 8 23:48 arduplane
-rwxrwxr-x 1 root root 1252364 Sep 14 12:31 arduplane.old
pi@navio

I prefer to do that, but it is not the way documented by Emlid. Doing my way, after next reboot, latest arduplane is running.

Marc

Thanks going to try that tomorrow.

I wonder if there is a way that all this can be via emlidtool.

There is a new release that fixes an error on the speed sensor and we can not have that due to this complicated process

No yet…

Marc

Hello,

There is a fix for this problem: you have to edit /etc/locale.gen

pi@navio:~ $ sudo nano /etc/locale.gen

When there you go to line “# en_US.UTF-8” and remove the #
(uncomment), write back the file, and exit nano.

then generate locale

pi@navio:~ $ sudo locale-gen
Generating locales (this might take a while)…
aa_DJ.ISO-8859-1… done
en_GB.UTF-8… done
en_US.UTF-8… done
Generation complete.

then reboot

pi@navio:~ $ sudo reboot

You can also update upgrade your stretch distribution then try again rcio update.

pi@navio:~ $ sudo apt-get update && sudo apt-get dist-upgrade

Marc

1 Like