Raspbian Stretch Release for Navio with ArduCopter-3.5 and ROS Kinetic

Hello guys!

We wanted to share with you the long-awaited Raspbian Stretch.

Here’s the overview of new features:

  1. The default ArduPilot binaries are now: ArduCopter-3.5.2, ArduPlane-3.8 and APMRover-3.2
  2. Emlidtool v1.0.0:
  • No need for update-alternatives routine now. Everything can be setup using a nice TUI
  • RCIO firmware upgrader
  • Emlidtool has tab completion from now on! So just type emlidtool and then press tab to see all options
  1. New RCIO features:
    There was a major rework on both MCU and Linux part (rcio-dkms v0.8.2) . Here’s the overview:
  • There’s now barely any limitations on using channels 4-8. You can hook up a servo on 5th servo to your copter and everything’s going to be working as expected
  • All drivers consolidated into two (rcio_spi and rcio_core)
  • Fixed a very rare bug which could start motors unexpectedly in case of a very frequent ArduPilot restart
  • Maximum PWM frequency is now 1000Hz!
  • Reimplemented ADC sampling from scratch and thus enabling ArduPilot report more smoothened and accurate data
  • A lot of debug info will be printed out to dmesg in case something goes awry

Run sudo emlidtool rcio check to check if you need to install new firmware which has all the support needed

  1. New ArduPilot features
  • Multicopter firmware consolidated into single binary, users must set FRAME_CLASS parameter (1:Quad, 2:Hexa, 3:Octa, 4:OctaQuad, 5:Y6, 7:Tri)

  • Sensor and Optional Hardware Improvements:

    • IRLock can be connected to any I2C bus
    • Here+ RTK GPS (UBlox M8P RTK) support
    • Garmin LidarLiteV3 support
    • TeraRanger Tower sensor
    • IMU sampling rate for MPU9250, ICM20608 IMUs to 8kHz for improved vibration resistance
    • LightWare I2C drivers usable on Copter
    • MaxBotix sonar with serial interface now supported
    • Pozyx support for Non-GPS flight
    • Maxell Smart Battery support
    • Invensense ICM-20602 IMU and ST L3GD20H gyro drivers added
  • Object Avoidance improvements (Copter Object Avoidance — Dev documentation)

  • Improved dual GPS support including blending (set GPS_TYPE2=1, GPS_AUTO_SWITCH=2)

  • AutoTune with position hold (enter AutoTune from Loiter or PosHold modes to enable light position hold)

  • Auxiliary switch to arm/disarm vehicle (set CH7_OPT to 41)

  • Motor output can be duplicated to multiple channels

  • Performance Improvements

  1. ROS Kinetic is a new default

We hope you like the new features and wait for your feedback!

9 Likes

Thanks for the new image. Installed and running…

I will fly it tomorrow.

Marc

2 Likes

Hello,

RCIO Check say I have to update:

pi@navio:~ $ emlidtool rcio check
current: 0x793d141e
local: 0xcaec2284

You need to update. Please run:
emlidtool rcio update

I have an error when trying to update RCIO:

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)

Marc

Thanks for the report, Marc!

Have you seen any locale related warnings upon login? Like LC_ALL?

Hello,

I have:

Last login: Sat Oct 7 05:14:50 2017 from 192.168.1.17
-bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)

Emlidtool test result is:

pi@navio:~ $ emlidtool test
2017-10-07 05:27:55 navio root[880] INFO gps: Passed
2017-10-07 05:27:55 navio root[880] ERROR pwm: Failed
– Reason: [Errno 13] Permission denied: ‘/sys/class/pwm/pwmchip0/export’
2017-10-07 05:27:55 navio root[880] INFO mpu9250: Passed
2017-10-07 05:27:55 navio root[880] INFO adc: Passed
2017-10-07 05:27:55 navio root[880] INFO lsm9ds1: Passed
2017-10-07 05:27:55 navio root[880] INFO rcio_status_alive: Passed
2017-10-07 05:27:55 navio root[880] INFO ms5611: Passed
pi@navio:~ $

I had a try with a new fresh Emlid stretch SDcard with the same sudo emlidtool rcio update error.

Same result (rcio test and update) without any plug on PWM out.

Marc

1 Like

Hi George

I have got the same errors.

locale -a
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_COLLATE to default locale: No such file or directory
C
C.UTF-8
POSIX
en_GB.utf8

This is the locale -a. I have used etcher to put the image on. Tried this twice still that same error.

Thanks

Tobe

Thank you guys for the reports. We’re onto it.

Either way, no worries! Your Navio will function alright without this rcio update. That’s needed only for new RCIO features. I think we’ll release an update for emlidtool by Tuesday.

1 Like

hi,
i managed to update rcio succesfully after apt-get update/upgrade - if i remember correctly;
i had the same error, as mentioned, before updating!

Anyone who encountered this problem should now be fine after running this:

sudo pip3 install -U emlidtool

I’ll be very thankful if anyone could check it out.

I’m also encouraging everyone who sees any locale related issues, generate appropriate locales either with a raspi-config or by uncommenting a line in /etc/locale.gen and then sudo locale-gen.

Hello,

Rcio update is OK.

Thanks,

Marc

1 Like

LC-ALL…

I did the change on a spare sdCard… Locale problem was always there after hot reboot.

After shutdown and sdCard swap with my arducopter valid configuration (stretch), no more error msg on the ssh boot screen.

Marc

RCIO updated a treat

… but I am still getting errors on the locales side of things.

Also silly question but choosing frame type is done through emlidtool or another way now?

I only seem to have the option of arducopter frame type in 3.5

Thanks in advance

So here’s the thing. Raspbian kind of made the locale settings stricter. This is the way it should be done if you’re not using en_GB.UTF-8.

Generate appropriate locales either with a raspi-config or by uncommenting a line in /etc/locale.gen and then sudo locale-gen.

We’ll make a release with more locales as soon as possible.

Running sudo emlidtool ardupilot is the preferred way from now. The older way still exists but there’s almost no reason to use it.

Here’s why:

1 Like

Thanks for the new release, just want to point out that the checksum for the new image is not yet included over at https://files.emlid.com/images/MD5SUMS

Can you please be a bit more specific ? :slight_smile:

Best regards

Luis Vale Gonçalves

New RCIO features:
There was a major rework on both MCU and Linux part (rcio-dkms v0.8.2) . Here’s the overview:
There’s now barely any limitations on using channels 4-8. You can hook up a servo on 5th servo to your copter and everything’s going to be working as expected
All drivers consolidated into two (rcio_spi and rcio_core)
Fixed a very rare bug which could start motors unexpectedly in case of a very frequent ArduPilot restart
Maximum PWM frequency is now 1000Hz!
A lot of debug info will be printed out to dmesg in case something goes awry

Marc

Thnaks,

When I read the original statement I got the impression that there were new features being added… I don’t know…, perhaps reserving some pin to a buzzer :slight_smile: or having SBus out :slight_smile:

Hi guys,

I am new in the Emlid and Raspberry world and I need some tips and help.
I have a raspberry pi2 (with Raspbian Stretch) and a Navio2. The problem is that Stretch comes without a GUI so I can access to raspi only through SSH but in my lab there is an IP-static network! The question is: how can I configure the network on the raspi?
Another issue about Navio2: is it possible to send the sensors data to raspi and then use MATLAB to process them in a Guidance-Navigation-Control loop? I would like to build a simple rover.

Hi. I was wondering how in gods name did you get this working?

I’m following what Emlid have posted and I’m still yet to get connected to QGroundControl. The only thing that I’ve managed to do is to get the app Fing to see the Navio2, connect to the Navio2 via Terminus and that’s about it.