Compare commits

...

14 Commits

Author SHA1 Message Date
Buzz
5b745243a2 fix3 2022-05-12 17:08:35 +10:00
Buzz
9297447603 fix2 2022-05-12 16:53:06 +10:00
Buzz
3415f43c18 fix 2022-05-12 16:39:45 +10:00
Buzz
bc82afda39 try to get vagrant ci to go futher 2022-05-12 16:38:31 +10:00
Buzz
48cd04fb93
Create main.yml
testing ci
2022-05-12 16:09:26 +10:00
Buzz
652be42857 update-rc.d seems to be located at an unreliable url, making a local copy of it.
and the dependant patches.
2022-05-12 15:56:27 +10:00
Buzz
abbe08fc18 bugfixes for error/s that were occuring in 'vagrant up'.
this pins the git version used to 2.32.2 as it seems to work ok with the patches, and latest one from releases didn't. 
it also changes the url schema to http: from git: as per github guidlines change/s.
bitbake recipies need protocol=http, to tell bitbake that git
should use the http protocol
2022-05-10 19:12:19 +10:00
Buzz
7e8f0ab393
git doesn't have root certs for all the remote servers 2021-12-05 11:40:10 +10:00
Buzz
9f1f83e970
need to use a git based on openssl, not gnutls as our build env is so old, AND not check expiry of certs etc. 2021-12-05 11:06:40 +10:00
Nicolas Chaslot
bf827a1fe2 Fixed install-vagrant-deps.sh
As pip dropped support for python 2.7 on versions >=21, we need to ask for older versions of pip specifically at upgrade for the setup to work properly.
Vm will not install otherway
2021-12-04 17:32:30 +10:00
Peter Barker
69a6d49633 solo-builder: update repo we fetch meta-fsl-bsp-release from
The freescale hostname no longer resolves
2020-08-01 13:46:21 +10:00
Peter Barker
f687d6e785 install-vagrant-deps.sh: correct path for chmod of downloaded repo 2020-08-01 13:46:21 +10:00
Matt Lawrence
a97bdf15df Docs: High resolution schematics
3DR's high resolution complete schematics of the Solo IMX and the carrier board.  Obtained by user Philip White and provided to Open Solo to share with the community.
2020-04-29 09:33:07 -04:00
Matt Lawrence
46fa85d366 Docs: Remove old flies replaced by Wiki 2020-04-29 09:25:57 -04:00
23 changed files with 261 additions and 389 deletions

28
.github/workflows/main.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: vagrant-up
on: [push]
jobs:
vagrant-up:
runs-on: macos-10.15
steps:
- uses: actions/checkout@v2
- name: Cache Vagrant boxes
uses: actions/cache@v2
with:
path: ~/.vagrant.d/boxes
key: ${{ runner.os }}-vagrant-${{ hashFiles('Vagrantfile') }}
restore-keys: |
${{ runner.os }}-vagrant-
- name: Show Vagrant version
run: vagrant --version
- name: Run vagrant up
run: vagrant up
- name: ssh into box after boot
run: vagrant ssh -c "/vagrant/solo-builder/builder-ci.sh"
- name: ssh and run builder a second time, to be sure
run: vagrant ssh -c "/vagrant/solo-builder/builder-ci.sh"

File diff suppressed because one or more lines are too long

Binary file not shown.

Binary file not shown.

View File

@ -1,83 +0,0 @@
# ArduCopter 3.7 Dev Testing
Once complete, ArduCopter 3.7.0 will be the first stable release version compatible with all Solos. The next full release of Open Solo will include ArduCopter 3.7.0.
_Please read this entire set of release notes and instructions. Every word is critical to doing this right._
## WHO
- This test version is compatible with all Solos, whether they have a stock cube, a green cube, or a new black cube
- Contains motor output slew time limit, previously only present in the old 3DR firmware which is required with the stock cube
- You must already have Open Solo installed and working properly!!!
- You must already have Open Solo installed and working properly!!!
- You must already have Open Solo installed and working properly!!!
**Stock/Black Cube Users:** This will be a huge upgrade for you. You are leaping 3+ years into the future of ArduPilot from the old circa 2015 modified ArduCopter 3.2. This is the first time the slew rate limiting code has been brought into ArduCopter master, and as such is the first time you can safely fly it in a stock/black cube Solo. You are the most important test users!
**Green Cube Users:** You can still install and fly this. It will handle the same as a stock/black cube Solo will handle. The slew limiting parameter is enabled by default, and the PID tuning parameters reflect that as well. You may notice a slight reduction in how crisp and snappy it handles, as is the nature of the slew rate limiting. But there are no other ill-effects. You will also have all the other new features that come with 3.7 to test out (flight modes, ChibiOS, etc). The more uses that test and tune this, the better. So even if you have a Green Cube, please give this a whirl.
## WHAT
### ArduCopter 3.7-Dev + Patches
The test package contains ArduCopter 3.7-dev (master) as of Saturday 12/8/2018. This build of ArduCopter 3.7-dev has upcoming patches for the slew rate limiting required by the stock cubes and restoring the GoPro automatic power-off. These two patches will be merged into master once we do this testing. ArduCopter 3.7-dev is light years ahead of the old 3DR firmware, which was based on ArduCopter 3.2 in 2015. It is also significantly ahead of the version that shipped with Open Solo for Green Cubes, which was ArduCopter 3.5.4. _All required parameter values are baked in by default!! You do NOT need to load any parameter files._
### Updated Python Files For IMX
Numerous python files are included which will be loaded onto the Solo's IMX companion computer. These files allow access to all of ArduCopter's new flight modes. They also add error handling and anti-brick code to the firmware loading process.
## WHEN
Testing is needed ASAP. ArduCopter 3.7.0 will likely be released in the next few months. By getting all of this tested now, we can ensure that 3.7.0 is 100% compatible with all Solos.
## HOW
### Prepare
- You must already have Open Solo installed and working properly!!! It doesn't matter if it's the Green Cube or stock cube ArduCopter on there. It just has to be Open Solo already.
- You must have the Solex or SidePilot app to load the installer packages and use the new features. And the app must be updated with the latest for the Play Store / App Store.
- You must be willing to be a test pilot. This may not be perfect yet. It could explode in mid-air, or crash, or do something else we couldn't predict. Please give us your feedback!!
### INSTALL
#### ArduCopter Firmware
1. **While connected to the Internet**, go to the Solex FW Updates menu. Press refresh and cleanup.
2. Tap the _ArduCopter 3.7-Dev Slew Test_ package. Tap download. Available will change to downloaded once complete.
3. Tap the _ArduCopter 3.6 and 3.7 Controller Update_ package. Tap download. Available will change to downloaded once complete.
4. **Reconnect to Solo WiFi** and Connect Solex to the Solo. Allow parameter download to complete.
5. In the Solex FW Updates menu, tap the _ArduCopter 3.7-Dev Slew Test_ package. Tap install and proceed.
6. When prompted, you can close the FW install menus in Solex.
7. Turn the Solo off and back on. It will click and the lights will go disco.
8. Completing Installation:
- _**If you are upgrading from the old 3DR firmware on a stock cube:** it will not stop the disco lights and will not play the happy tones when it is done installing. Therefore, just wait 3 minutes. Then power off the Solo and power it back on. When it boots back up, you'll have the new lights and everything will be fine._
- _**If you are upgrading from ArduCopter 3.5 or 3.6 on a Green Cube:** The lights will go back to normal and you'll get the happy tones once installation is complete._
9. If the Solo and Controller do not automatically reconnect promptly, simply reboot both of them.
#### Parameter Reset
1. Connect Solex to the Solo. Allow parameter download to complete.
2. In the Solex FW Updates menu, tape the _RESET PARAMS_ button and proceed.
3. Turn the Solo off and back on.
4. You will probably get warnings about calibrations required, since all prior calibrations were wiped out.
5. If you have a HERE, you should now go back into the Solex FW updates menu to reload that parameter package and reboot again.
#### Controller Update
1. Connect Solex to the Solo. Allow parameter download to complete.
2. In the Solex FW Updates menus, tap the _ArduCopter 3.6 and 3.7 Controller Update_ package. Tap install and proceed.
3. Controller screen will eventually go black during install.
4. When prompted, press A button to continue.
5. If the Solo and Controller do not automatically reconnect promptly, simply reboot both of them.
### Post-Install Calibrations & Settings
Proceed to the [post-installation instructions](../master/install_post.md) to do all the usual calibrations.
## TESTING
- Fly it. We need people to report how it handles and how the flight modes are working out.
- Tune it. If you are familiar with ArduCopter PID tuning, and want to try dialing it even better, please do so and report your results
- Feedback is needed. Please tell us everything you like or dislike. Tell us what worked and didn't work.
## WARNING: Do not use the _very fast_ speed slider setting in Solex until further notice. There is an error in the acceleration value sent to the Solo, and it will handle very poorly. All other speed sliders from very slow up to and including fast work fine. Once this is fixed in the next Solex update, this warning will be removed.

View File

@ -1,26 +0,0 @@
## Detailed Install Using The SidePilot App ##
1. **Download packages:** With your device connected to the Internet, go into the SidePilot 'Help & Settings' menu, and tap the '3DR Solo Firmware Upgrade' menu and download the Open Solo Clean Install packages (solo and controller). You can do this either before or after connecting to Solo's WiFi_. The installation packages are 75MB each, so it will take a little longer to download than you may be used to. If you don't see the Firmware Updates menu, make sure you have 3DR Solo selected as your connection type.
2. **Connect:** Once you've downloaded both, connect your mobile device to the Solo WiFi and tap the connect button in the top right corner of the SidePilot main screen. Ensure you begin receiving telemetry data before continuing. Again, your solo and controller must be fully charged, powered on, paired, connected, and not malfunctioning.
3. **Install:** From the firmware updates menu in SidePilot, tap the _Open Solo 3.0.0 Clean Install_ package that you previously downloaded. Read the instructions and continue with the installation by tapping the 'Install' button. Again, be patient while numerous large files are extracted and scripts execute. Do not push buttons, exit the app, mess with the Solo, etc. Let it do its thing. Do this for both the controller package and the copter package. The process the same. You must do both.
4. **Reboot:** Power cycle the Solo and controller once the installation packages have both completed successfully. When they power back on, they will automatically begin a factory reset procedure. Since we just installed Open Solo on the recovery partitions, they are factory resetting to Open Solo! They will then automatically execute a second update procedure, cleanly installing Open Solo on the system partition.
- You will likely hear the Pixhawk reboot 2-3 times. This is normal.
- You will likely see the controller reboot and say update success twice. This is also normal.
- It is difficult to know exactly what stage it is at since it can't speak and isn't telepathic. The process takes about 6 minutes on both the solo and the controller. So just wait about 6 minutes.
5. **Pair:** Hit the pair button under the Solo with a small pointy poking apparatus like a paper clip for 2 seconds to get the controller and solo re-paired. When the controller tells you it has detected the solo, hold the A and B button for 3 seconds... which is the second set of vibrations... until the the screen says pairing in progress.
6. **Reconnect mobile device:** You will need to reconnect your mobile device to Solo's WiFi now. Since it did a factory reset, the Solo and controller are using their default WiFi SSID and password (the default password is `sololink`).
7. **Load applicable parameter packages:** If you have a HERE GPS/Compass or a retractable landing gear mod, you will need to install some applicable parameter packages now. If you have none of these modifications, you can skip this step.
- Tap each package in the SidePilot Firmware Updates menu to install the parameters. You do not need to reboot after each one.
- If you have the HERE gps/compass, load the _HERE Parameters_ package.
- If you have the landing gear mod, load the _Landing Gear Parameters__ package.
- You do _not_ need to load the ArduCopter parameters or ArduCopter firmware packages!!!
- Reboot the solo after loading all the applicable parameter packages.
### Installation Complete! ###
Proceed to the [post-installation instructions!](../master/install_post.md)

View File

@ -1,91 +0,0 @@
## Manual SSH Install ##
### WARNING ###
This procedure is for users that want to install Open Solo manually using various SSH and file transfer tools on a PC. If you are not familiar with SSH and copying files to/from the Solo, this procedure is not for you. This is for advanced users already familiar with the technology and procedures involved.
### SETUP ##
1. **Download** the `Open Solo x.x.x.zip` file from the release attachments and unzip somewhere convenient on your computer.
2. **Power up** the copter and controller. Both should be fully charged, paired, connected, and working normally.
3. **Connect** your PC to the Solo's WiFi.
### COPTER FILES ##
1. **SSH into the _Copter_** at address 10.1.1.10, username `root` and password `TjSDBkAu`.
2. **Prepare for upload** by executing the following commands. When you execute the --get-image command, make sure it says "latest".
```
sololink_config --get-image
sololink_config --update-prepare sololink
umount /dev/mmcblk0p1
mkfs.vfat /dev/mmcblk0p1 -n GOLDEN
mkdir -p /tmp/golden
mount /dev/mmcblk0p1 /tmp/golden
```
3. **Copy files** from inside the 3dr-solo.tar.gz file to the `/tmp/golden` directory on the Solo. _Not the tar file_. The individual files within it. You can copy it with SSH or use an app like WinSCP or FileZilla.
- 3dr-solo-imx6solo-3dr-1080p.squashfs
- imx6solo-3dr-1080p.dtb
- u-boot.imx
- uImage
4. **Verify the files copied. Refresh the folder in WinSCP or FileZilla... or run `ls /tmp/golden`. Make sure the files you see match the files you uploaded.
5. **Finalize the update** with the following final commands:
```
umount /dev/mmcblk0p1
touch /log/updates/FACTORYRESET
```
6. **Exit** the SSH session and exit any other apps (WinSCP/FileZilla).
### CONTROLLER FILES ##
1. **SSH into the _Controller_** at address 10.1.1.1, password TjSDBkAu.
5. **Prepare for upload** by executing the following commands. When you execute the --get-image command, make sure it says "latest".
```
sololink_config --get-image
sololink_config --update-prepare sololink
umount /dev/mmcblk0p1
mkfs.vfat /dev/mmcblk0p1 -n GOLDEN
mkdir -p /tmp/golden
mount /dev/mmcblk0p1 /tmp/golden
```
6. **Copy files** from inside the _3dr-controller.tar.gz_ file to the `/tmp/golden` directory on the Controller. _Not the tar file_. The individual files within it. You can copy it with SSH or use an app like WinSCP or FileZilla.
- 3dr-controller-imx6solo-3dr-artoo.squashfs
- imx6solo-3dr-artoo.dtb
- u-boot.imx
- uImage
7. **Verify the files copied. Refresh the folder in WinSCP or FileZilla... or run `ls /tmp/golden`. Make sure the files you see match the files you uploaded.
8. **Finalize the update** with the following final commands:
```
umount /dev/mmcblk0p1
touch /log/updates/FACTORYRESET
```
9. **Exit** the SSH session and exit any other apps (WinSCP/FileZilla).
### Execution ###
From this point forward, it is the same as any other installation method.
4. **Reboot:** Power cycle the Solo and controller once the Copter and Controller steps above are complete. When they power back on, they will automatically begin a factory reset procedure. Since we just installed Open Solo on the recovery partitions, they are factory resetting to Open Solo! They will then automatically execute a second update procedure, cleanly installing Open Solo on the system partition.
- You will likely hear the Pixhawk reboot tones 2-3 times. This is normal.
- You will likely see the controller reboot and say update success twice. This is also normal.
- It is difficult to know exactly what stage it is at since it can't speak and isn't telepathic. The process takes about 6 minutes on both the solo and the controller. So just wait about 6 minutes.
5. **Pair:** Hit the pair button under the Solo with a small pointy poking apparatus like a paper clip for 2 seconds to get the controller and solo re-paired. When the controller tells you it has detected the solo, hold the A and B button for 3 seconds... which is the second set of vibrations... until the the screen says pairing in progress. If the copter and controller are not pairing, reboot both. They may have timed out.
6. **Reconnect mobile device:** You will need to reconnect your mobile device to Solo's WiFi now. Since it did a factory reset, the Solo and controller are using their default WiFi SSID and password (the default password is `sololink`).
7. **Load applicable parameter packages:** If you have a HERE GPS/Compass, and/or Ian's landing gear mod, you will need to change or load those parameter packages. You can load the parameter packages in Solex or SidePilot. Or you can change them manually in Mission Planner or Tower. If you're doing this procedure, it is assumed you know how to do this and don't need instructions on parameters.
### Installation Complete! ###
Proceed to the [post-installation instructions!](../master/install_post.md)

View File

@ -1,20 +0,0 @@
## Open Solo - Post Installation Instructions ##
Regardless of installation method, this is what you will need to do next, leading up to flight. Consequently, this is also what you need to do after a parameter reset in the future if you need to.
1. **Level Calibration:** Use the _IMU Calibration_ function in the Solex app, or the _level calibration_ function in the 3DR or SidePilot apps, or the _3D Accel Calibration_ in Mission Planner, or the _Accelerometer Calibration_ in the Tower app to do the level calibration. They all do the same thing and just give it different names. Reboot when complete.
- The level calibration must be done on a solid, stable, level surface like a table or hard floor.
- For each axis you calibrate, wait about 10 seconds after putting it down before pressing the button.
- Make sure the solo is _perfectly still_ when you push the button each time.
- The first step where it is right side up needs to be both _perfectly still and as level as you can make it_. The rest do not require perfect leveling. Just being still.
- Reboot when complete. The apps may not tell you to reboot. They may tell you to go fly. Reboot.
2. **Compass Calibration:** Use the _Compass Calibration_ function in The Solex app, SidePilot or 3DR app. Or use the _Onboard Compass Calibration_ in Mission Planner. They all do the same thing and just give it different names. Reboot when complete.
- Must be done outdoors
- Must be done in an open area away from buildings, vehicles, reinforced concrete slabs, power lines, MRI machines, metal fencing, etc.
- Remove any magnetic jewelry or steel accessories you may be wearing
- Rotate the solo around each of its axes: Right side up, both sides, nose up, nose down, upside-down, etc. If you just spin it around level, it will fail. Keep spinning it around until it completes.
- Reboot when when complete. The apps may not tell you to reboot. They may tell you to go fly. Reboot.
3. **Settings and Options:** Go through the _Vehicle Settings_ menu in Solex or the Solo settings in the 3DR app to set and verify all your settings and options. You will need to set your RTH altitude, A & B buttons, geofence, max altitude, speed sliders, etc. You can also change the WiFi SSID and password.
4. **FLY!** Find a safe open area to test fly the Solo. Ensure everything is operating as you expect and intend. Enjoy.

View File

@ -1,44 +0,0 @@
## Detailed Open Solo Install Using The Solex App ##
_Note: If you are doing a brand new green cube install, please be sure to start off with the [New Green Cube Install Instructions](../master/green_cube_install.md). This warning does not apply to stock solos and existing green cube solos._
**Please read all the instructions carefully prior to beginning. Skipping steps or doing things out of order will generally result in failure that is difficult to diagnose and repair.**
***These instructions are for Solex version 1.6.6 released ono 12/29/2017, or higher versions. Please ensure your mobile device has the latest version of Solex installed via the Google Play Store.***
1. **Download packages:** If you haven't recently downloaded the latest files, you will need to do this first.
- First connect your mobile device to the Solo's WiFi and open Solex. Allow Solex to connect to the Solo and download parameters. It must make this connection first, or you will not see the firemware updates menu. This is how Solex determines it is connected to a Solo and no some other type of drone.
- Make sure you have _Advanced Mode_ checked in the Solex application settings menu, or you will not see the firmware updates menu.
- Switch your mobile device WiFi over to your home WiFi as you will need high speed internet to download.
- With your device connected to the internet, go into the Solex _Firmware Updates_ menu.
- Press the _clean up_ button, then the _refresh_ button to make sure you're seeing the latest files.
- Download the Open Solo Clean Install packages (solo and controller) by tapping the packages. _Available_ will change to _downloaded_ once complete. The installation packages are ~80MB each, so it will take a little longer to download than you may be used to.
- If you have the HERE GPS or retractable landing gear mods, also download those parameter packages.
- You do _not_ need the ArduCopter parameter package or the ArduCopter firmware package for this process.
2. **Reconnect:** Once you've downloaded both, reconnect your mobile device to the Solo WiFi and make sure Solex says connected to vehicle. Again, your solo and controller must be fully charged, powered on, paired, connected, and not malfunctioning. You may need to press the connect button in Solex to force it to reconnect.
3. **Install:** From the firmware updates menu in Solex, tap one of the _Open Solo Clean Install_ packages that you previously downloaded (copter or controller, doesn't matter which you do first).
- Read the notes and press install. Press install when prompted again to confirm. _This is your last chance to change your mind_.
- Again, be patient while numerous large files are extracted and scripts execute. Do not push buttons, exit the app, mess with the Solo, etc. Let it do its thing. Until it says it has completed.
- Do this for both the controller package and the copter package. The process the same. You must do both. Do not reboot or do anything else between these installs.
4. **Reboot:** Power cycle the Solo and controller once the Solex installation packages have both completed successfully. When they power back on, they will automatically begin a factory reset procedure. Since we just installed Open Solo on the recovery partitions, they are factory resetting to Open Solo! They will then automatically execute a second update procedure, cleanly installing Open Solo on the system partition.
- You will likely hear the Pixhawk reboot 2-3 times. This is normal.
- You will likely see the controller reboot and say update success twice. This is also normal.
- It is difficult to know exactly what stage it is at since it can't speak and isn't telepathic. The process takes about 6 minutes on both the solo and the controller. So just wait about 6 minutes.
5. **Pair:** Hit the pair button under the Solo with a small pointy poking apparatus like a paper clip for 2 seconds to get the controller and solo re-paired. When the controller tells you it has detected the solo, hold the A and B button for 3 seconds... which is the second set of vibrations... until the the screen says pairing in progress.
6. **Reconnect mobile device:** You will need to reconnect your mobile device to Solo's WiFi now. Since it did a factory reset, the Solo and controller are using their default WiFi SSID and password (the default password is `sololink`).
7. **Load applicable parameter packages:** If you have a HERE GPS/Compass or a retractable landing gear mod, you will need to install some applicable parameter packages now. If you have none of these modifications, you can skip this step.
- Tap each package in the Solex Firmware Updates menu to install the parameters. You do not need to reboot in between
- If you have the HERE gps/compass, load the _HERE Compass Parameters_ package.
- If you have the landing gear mod, load the _Landing Gear Parameters_ package.
- You do _not_ need to load the ArduCopter parameters or ArduCopter firmware packages!!!
- Reboot the solo after loading all the applicable parameter packages.
8. In the Solex vehicle settings menu, you can verify everything installed by scrolling to the bottom and looking at the listed version information. Controller and Vehicle should say 3.0.0. Controller FW should say Open Solo 3.0.0. And autopilot FW should say 1.5.4 for a stock cube, and 3.5.4 for a green cube.
### Installation Complete! ###
Proceed to the [post-installation instructions!](../master/install_post.md)

View File

@ -1,51 +0,0 @@
## Detailed Open Solo 4 Install Using The Solex App ##
_Note: If you are doing a brand new green cube install, please be sure to start off with the [New Green Cube Install Instructions](../master/green_cube_install.md). This warning does not apply to stock solos and existing green cube solos._
**Please read all the instructions carefully prior to beginning. Skipping steps or doing things out of order will generally result in failure that is difficult to diagnose and repair.**
***These instructions are for Solex version XXX released on XXX, or higher versions. Please ensure your mobile device has the latest version of Solex installed via the Google Play Store.***
1. **Download packages:** If you haven't recently downloaded the latest files, you will need to do this first.
- First connect your mobile device to the Solo's WiFi and open Solex. Allow Solex to connect to the Solo and download parameters.
- Make sure you have _Advanced Mode_ checked in the Solex application settings menu, or you will not see the firmware updates menu.
- Switch your mobile device WiFi over to your home WiFi as you will need high speed internet to download the packages
- With your device connected to the internet, go into the Solex _Firmware Updates_ menu.
- Press the _clean up_ button, then the _refresh_ button to make sure you're seeing the latest files.
- Download the Open Solo Clean Install packages (solo and controller) by tapping the packages. _Available_ will change to _downloaded_ once complete. The installation packages are ~75MB each, so it will take a little longer to download than you may be used to.
- If you have the HERE GPS or retractable landing gear mods, also download those parameter packages.
- You do _not_ need the ArduCopter parameter package or the ArduCopter firmware package for this process.
2. **Reconnect:** Once you've downloaded both, reconnect your mobile device to the Solo WiFi and make sure Solex says connected to vehicle. Again, your solo and controller must be fully charged, powered on, paired, connected, and not malfunctioning. You may need to press the connect button in Solex to force it to reconnect.
3. **Install Copter Package:** From the firmware updates menu in Solex, tap one of the _Open Solo Clean Install (Copter)_ package that you previously downloaded.
- Press install. Press install again when prompted again to confirm. _This is your last chance to change your mind_.
- Again, be patient while numerous large files are extracted and scripts execute. Do not push buttons, exit the app, mess with the Solo, etc. Let it do its thing. Until it says it has completed.
- The solo will click and lights will go disco. At this time, ArduCopter 3.7 firmware is being pre-installed on the Cube. This step takes about 1 minute and Solex will tell you when the whole process is complete.
- _Stock cube users upgrading from the old firmware:_ you will not get any happy tones to indicate firmware loading completed, and the lights will stay disco. This is not a problem, and this is why we're pre-loading the firmware now.
- **DO NOT REBOOT THE COPTER YET!** You must do the install for both the copter and controller before rebooting anything. Once Solex tells you the install is complete, leave the copter and move on to the controller install.
4. **Install Controller Package:** From the firmware updates menu in Solex, tap one of the _Open Solo Clean Install (Controller)_ package that you previously downloaded.
- Press install. Press install again when prompted again to confirm. _This is your last chance to change your mind_.
- Again, be patient while numerous large files are extracted and scripts execute. Do not push buttons, exit the app, mess with the Solo, etc. Let it do its thing. Until it says it has completed.
- Solex will tell you when the whole process is complete.
5. **Reboot:** Power cycle the Solo and controller once the Solex installation packages have both completed successfully. When they power back on, they will automatically begin installations.
- *If you began this installation while already in a factory reset state*, the installer scripts will install Open Solo directly to the system partition. The recovery partition will not be updated to Open Solo 4, since that's the partition you're currently on. Updating the recovery partition can be done later very easily. You will likely hear the cube reboot and flash its lights twice (firmware install and parameter reset). You will see the controller reboot and say update success once.
- *If you began this installation in a working state (not factory reset)*, the installer scripts will install Open Solo into the recovery partition, then execute a factory reset procedure automatically. Since we just installed Open Solo on the recovery partitions, they are factory resetting to Open Solo! They will then automatically execute a second update procedure, cleanly installing Open Solo on the system partition. You will likely hear the Cube reboot 3 times (firmware install at factory reset, firmware install on system, parameter reset). You will see the controller reboot and say update success twice.
- It is difficult to know exactly what stage it is at since it can't speak and isn't telepathic. The process takes about 6 minutes on both the solo and the controller. So just wait about 6 minutes.
6. **Pair:** Hit the pair button under the Solo with a small pointy poking apparatus like a paper clip for 2 seconds to get the controller and solo re-paired. When the controller tells you it has detected the solo, hold the A and B button for 3 seconds... which is the second set of vibrations... until the the screen says pairing in progress. If they are not pairing, they may have timed out. Reboot both and try again.
7. **Reconnect mobile device:** You will need to reconnect your mobile device to Solo's WiFi now. Since it did a factory reset, the Solo and controller are using their default WiFi SSID and password (the default password is `sololink`).
8. **Load applicable parameter packages:** If you have a HERE GPS/Compass or a retractable landing gear mod, you will need to install some applicable parameter packages now. If you have none of these modifications, you can skip this step.
- Tap each package in the Solex Firmware Updates menu to install the parameters. You do not need to reboot in between
- If you have the HERE gps/compass, load the _HERE Compass Parameters_ package.
- If you have the landing gear mod, load the _Landing Gear Parameters_ package.
- You do _not_ need to load the ArduCopter parameters or ArduCopter firmware packages!!!
- Reboot the solo after loading all the applicable parameter packages.
9. In the Solex vehicle settings menu, you can verify everything installed by scrolling to the bottom and looking at the listed version information. Controller and Vehicle should say 3.0.0. Controller FW should say Open Solo 3.0.0. And autopilot FW should say 1.5.4 for a stock cube, and 3.5.4 for a green cube.
### Installation Complete! ###
Proceed to the [post-installation instructions!](../master/install_post.md)

View File

@ -12,16 +12,53 @@ sudo apt-get install -y --assume-yes python2.7 python2.7-dev
sudo apt-get install -y --assume-yes git python-pip freetype* python-setuptools libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk libffi* ansible libssl-dev gcc-arm-none-eabi gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm texinfo tup gawk wget git-core diffstat unzip curl
# pip packages
sudo pip install --upgrade pip
sudo pip install --upgrade "pip < 21.0"
sudo pip install --upgrade setuptools
sudo pip install urllib3[secure] bcrypt pynacl cryptography==2.0.3 pillow
#git-with-openssl as gnutls can't do modern https/tls
cd /home/vagrant
#like https://raw.githubusercontent.com/paul-nelson-baker/git-openssl-shellscript/main/compile-git-with-openssl.sh but simplified and tied to version 2.32.2
set -x
BUILDDIR=${BUILDDIR:-$(mktemp -d)}
mkdir -p "${BUILDDIR}"
cd "${BUILDDIR}"
git_tarball_url="https://api.github.com/repos/git/git/tarball/refs/tags/v2.32.2"
curl -L --retry 5 "${git_tarball_url}" --output "git-source.tar.gz"
tar -xf "git-source.tar.gz" --strip 1
# Don't use gnutls, this is the problem package.
if sudo apt-get remove --purge libcurl4-gnutls-dev -y; then
# Using apt-get for these commands, they're not supported with the apt alias on 14.04 (but they may be on later systems)
sudo apt-get autoremove -y
sudo apt-get autoclean
fi
sudo apt-get install build-essential autoconf dh-autoreconf -y
sudo apt-get install libcurl4-openssl-dev tcl-dev gettext asciidoc libexpat1-dev libz-dev -y
make configure
./configure --prefix=/usr --with-openssl
make
# If you have an apt managed version of git, remove it
if sudo apt-get remove --purge git -y; then
sudo apt-get autoremove -y
sudo apt-get autoclean
fi
# Install the version we just built
sudo make install #install-doc install-html install-info
echo "Make sure to refresh your shell!"
bash -c 'echo "$(which git) ($(git --version))"'
#chmod 755 ./compile-git-with-openssl.sh
#./compile-git-with-openssl.sh --skip-tests
git config --global http.sslVerify false
cd /home/vagrant
#wgets
sudo wget "http://stedolan.github.io/jq/download/linux64/jq" -O "/usr/local/bin/jq"
sudo chmod 0755 /usr/local/bin/jq
sudo wget "https://storage.googleapis.com/git-repo-downloads/repo" -O "/usr/local/bin/repo"
sudo chmod 0755 /usr/local/bin/rep
sudo chmod 0755 /usr/local/bin/repo
ssh-keyscan -t rsa github.com
ssh-keyscan -t rsa bitbucket.org

View File

@ -1,5 +1,5 @@
SRC_URI = "git://github.com/OpenSolo/imx6-uboot/"
SRC_URI = "git://github.com/OpenSolo/imx6-uboot/;protocol=http"
SRCREV = "solo_v1.0.0"
# save UBOOT_CONFIG as separate names

View File

@ -8,7 +8,7 @@ DEPENDS += "lzop-native bc-native"
COMPATIBLE_MACHINE = "(mx6)"
SRCREV = "sololink_v1.3.0-5"
SRC_URI = "git://github.com/OpenSolo/imx6-linux/"
SRC_URI = "git://github.com/OpenSolo/imx6-linux/;protocol=http"
SRC_URI += "\
https://www.kernel.org/pub/linux/kernel/projects/rt/3.10/older/patch-3.10.17-rt12.patch.bz2;name=rt-patch1 \

View File

@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://requirements.txt;md5=b6106de10adcc12b60d3cf95b9017b7f
PV = "1.2.0"
SRCREV = "1.2.0"
SRC_URI = "git://github.com/dronekit/dronekit-python-solo/"
SRC_URI = "git://github.com/dronekit/dronekit-python-solo/;protocol=http"
S = "${WORKDIR}/git"

View File

@ -5,7 +5,7 @@ LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
SRCREV = "v2.4.0"
SRC_URI = "git://github.com/dronekit/dronekit-python"
SRC_URI = "git://github.com/dronekit/dronekit-python;protocol=http"
PV = "2.4.0"
S = "${WORKDIR}/git"

View File

@ -5,7 +5,7 @@ LICENSE = "LGPLv3"
LIC_FILES_CHKSUM = "file://README.txt;md5=2fc3900b33c4131645987a81bfe6a55f"
SRCREV = "${AUTOREV}"
SRC_URI = "git://github.com/OpenSolo/mavlink-solo/"
SRC_URI = "git://github.com/OpenSolo/mavlink-solo/;protocol=http"
PV = "${SRCPV}"
S = "${WORKDIR}/git/pymavlink"

View File

@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://COPYING.txt;md5=3c34afdc3adf82d2448f12715a255122"
PV = "1.4.20-solo"
SRCREV = "sololink_v1.1.17"
SRC_URI = "git://github.com/OpenSolo/MAVProxy/"
SRC_URI = "git://github.com/OpenSolo/MAVProxy/;protocol=http"
S = "${WORKDIR}/git"

View File

@ -0,0 +1,49 @@
Upstream-Status: Pending
--- update-rc.d/update-rc.d.org 2005-01-03 00:30:47.000000000 +0200
+++ update-rc.d/update-rc.d 2007-12-01 19:41:08.000000000 +0200
@@ -19,6 +19,7 @@
notreally=0
force=0
dostart=0
+verbose=0
usage()
{
@@ -28,6 +29,7 @@
update-rc.d [-n] [-r <root>] [-s] <basename> start|stop NN runlvl [runlvl] [...] .
-n: not really
-f: force
+ -v: verbose
-r: alternate root path (default is /)
-s: invoke start methods if appropriate to current runlevel
EOF
@@ -69,7 +71,7 @@
lev=`echo $2 | cut -d/ -f1`
nn=`echo $2 | cut -d/ -f2`
fn="${etcd}${lev}.d/${startstop}${nn}${bn}"
- echo " $fn -> ../init.d/$bn"
+ [ $verbose -eq 1 ] && echo " $fn -> ../init.d/$bn"
if [ $notreally -eq 0 ]; then
mkdir -p `dirname $fn`
ln -s ../init.d/$bn $fn
@@ -89,7 +91,7 @@
exit 0
fi
- echo " Adding system startup for $initd/$bn ..."
+ echo " Adding system startup for $initd/$bn."
for i in $startlinks; do
dolink S $i
@@ -105,6 +107,10 @@
shift
continue
;;
+ -v) verbose=1
+ shift
+ continue
+ ;;
-f) force=1
shift
continue

View File

@ -0,0 +1,59 @@
Check if symlinks are valid
When using root option and $initd/$bn is a symlink, the script would fail because
the symlink points to a path on target. For example:
/path/to/target/rootfs/etc/init.d/syslog -> /etc/init.d/syslog.busybox
Hence, [ -f /path/to/target/rootfs/etc/init.d/syslog ] condition would return
false.
This patch adds the posibility to check whether the file the symlink points to
actually exists in rootfs path and then continue.
Upstream-Status: Pending
Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Signed-off-by: Christopher Larson <chris_larson@mentor.com>
Index: git/update-rc.d
===================================================================
--- git.orig/update-rc.d
+++ git/update-rc.d
@@ -147,13 +147,34 @@ fi
bn=$1
shift
+sn=$initd/$bn
+if [ -L "$sn" -a -n "$root" ]; then
+ if which readlink >/dev/null; then
+ while true; do
+ linksn="$(readlink "$sn")"
+ if [ -z "$linksn" ]; then
+ break
+ fi
+
+ sn="$linksn"
+ case "$sn" in
+ /*) sn="$root$sn" ;;
+ *) sn="$initd/$sn" ;;
+ esac
+ done
+ else
+ echo "update-rc.d: readlink tool not present, cannot check whether \
+ $sn symlink points to a valid file." >&2
+ fi
+fi
+
if [ $1 != "remove" ]; then
- if [ ! -f "$initd/$bn" ]; then
+ if [ ! -f "$sn" ]; then
echo "update-rc.d: $initd/$bn: file does not exist" >&2
exit 1
fi
else
- if [ -f "$initd/$bn" ]; then
+ if [ -f "$sn" ]; then
if [ $force -eq 1 ]; then
echo "update-rc.d: $initd/$bn exists during rc.d purge (continuing)" >&2
else

View File

@ -0,0 +1,30 @@
SUMMARY = "manage symlinks in /etc/rcN.d."
DESCRIPTION = "update-rc.d is a utilities that allows the management of symlinks to the initscripts in the /etc/rcN.d directory structure."
SECTION = "base"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://update-rc.d;beginline=5;endline=15;md5=148a48321b10eb37c1fa3ee02b940a75"
PR = "r5"
# Revision corresponding to tag update-rc.d_0.7
SRCREV = "eca680ddf28d024954895f59a241a622dd575c11"
SRC_URI = "git://github.com/philb/update-rc.d.git;protocol=http \
file://add-verbose.patch \
file://check-if-symlinks-are-valid.patch \
"
S = "${WORKDIR}/git"
inherit allarch
do_compile() {
}
do_install() {
install -d ${D}${sbindir}
install -m 0755 ${S}/update-rc.d ${D}${sbindir}/update-rc.d
}
BBCLASSEXTEND = "native"

View File

@ -6,47 +6,48 @@ if [ ! $? -eq 0 ]; then
exit 1
fi
## Export machine twice since it's a clean build
## Switch to build directory
cd /solo-build
## Export machine twice since it's a clean build
export MACHINE=imx6solo-3dr-1080p
EULA=1 source ./setup-environment build
export_return=$?
if [ $export_return -eq 0 ]; then
echo "Build environment ready"
elif [ $export_return -eq 2 ]; then
# Automatic restart as required
echo "Restarting setup environment"
export MACHINE=imx6solo-3dr-1080p
EULA=1 source ./setup-environment build
if [ ! $? -eq 0 ]; then
echo "Machine export error."
exit 1
fi
else
echo "Machine export error."
exit 1
fi
## Build Solo specific recipes. Dump most of the running output so the travis log doesn't explode
MACHINE=imx6solo-3dr-1080p bitbake sololink shotmanager sololink-python pymavlink mavproxy cubeBlack-solo gimbal-firmware 2>&1 | grep -v 'pid'
if [ ! $? -eq 0 ]; then
exit 1
fi
MACHINE=imx6solo-3dr-artoo bitbake sololink sololink-python pymavlink mavproxy artoo-firmware stm32loader 2>&1 | grep -v 'pid'
if [ ! $? -eq 0 ]
then
exit 1
fi
## Build Artoo STM32 FW
cd /vagrant/artoo
tup
if [ ! $? -eq 0 ]; then
exit 1
fi
cd /solo-build
export MACHINE=imx6solo-3dr-1080p
EULA=1 source ./setup-environment build
MACHINE=imx6solo-3dr-1080p bitbake 3dr-solo
MACHINE=imx6solo-3dr-artoo bitbake 3dr-controller
# Copy the relevant files to a date/time stamped completed directory in the git repo folder for easy access (on git ignore list).
# Make an MD5sum of each as is required for the Solo and Controller to accept the files.
# The tar.gz and the .md5 go directly in the /log/updates/ directory on the solo and/or controller.
# Also copies the artoo.bin STM32 FW file used in the build.
COMP_DATE="$(date +%F_%H-%M)"
COMP_DIR="completed_$(date +%F_%H-%M)"
NEW_DIR=/vagrant/solo-builder/binaries/$COMP_DIR
echo $COMP > /tmp/COMP.txt
mkdir -p $NEW_DIR
cd $NEW_DIR
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/3dr-solo.tar.gz $NEW_DIR
md5sum 3dr-solo.tar.gz > 3dr-solo.tar.gz.md5
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-artoo/3dr-controller.tar.gz $NEW_DIR
md5sum 3dr-controller.tar.gz > 3dr-controller.tar.gz.md5
cp /vagrant/meta-3dr/recipes-firmware/artoo/files/artoo.bin "$NEW_DIR/artoo_$COMP_DATE.bin"
echo
echo "All completed files located in below directories of the Vagrant virtual machine (squashfs, uImage, kernel, u-boot, dtb file, initramfs, rootfs.cpio, etc)"
echo /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/
echo /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-artoo/
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-1080p/* /vagrant
cp /solo-build/build/tmp-eglibc/deploy/images/imx6solo-3dr-artoo/* /vagrant
echo
echo "Completed binaries have been copied to the /solo-builder/binaries/ directory and /vagrant"
ls -lh $NEW_DIR
ls -lh /vagrant

View File

@ -7,7 +7,9 @@
# "-m both" will build both the copter and controller IMX. Default is both if not specified.
# "-c true" will clean the build recipies prior to beginning the build. Default is false if not specified.
# "-n true" nuclear option will delete the entire build directory to start from a totally clean slate. Default is false if not specified.
git config --global http.sslverify "false"
# Defaults if options are not set from command line set
MACHINE_BUILD='both'
@ -87,7 +89,7 @@ export MACHINE=imx6solo-3dr-1080p
EULA=1 source ./setup-environment build
export_return=$?
if [ $export_return -eq 0 ]; then
echo "Build environment ready"
echo "Build environment ready, if u were expecting the build to happen, and it hasn't, edit builder.sh and try removing all the '> /dev/null' bits , and re-run, for more info"
elif [ $export_return -eq 2 ]; then
# Automatic restart as required
echo "Restarting setup environment"

View File

@ -9,7 +9,7 @@ cd $build_dir
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/poky
git clone git://git.yoctoproject.org/poky $source_dir/poky 2>&1 | grep -v 'fatal'
git clone https://git.yoctoproject.org/poky $source_dir/poky 2>&1 | grep -v 'fatal'
cd $source_dir/poky
git fetch
git checkout bee7e3756adf70edaeabe9d43166707aab84f581
@ -19,14 +19,14 @@ cp -f /vagrant/solo-builder/gtk-doc-stub_git.bb $source_dir/poky/meta/recipes-gn
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-fsl-arm
git clone git://git.yoctoproject.org/meta-fsl-arm $source_dir/meta-fsl-arm 2>&1 | grep -v 'fatal'
git clone https://git.yoctoproject.org/meta-fsl-arm $source_dir/meta-fsl-arm 2>&1 | grep -v 'fatal'
cd $source_dir/meta-fsl-arm
git fetch
git checkout af392c22bf6b563525ede4a81b6755ff1dd2c1c6
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-openembedded
git clone git://git.openembedded.org/meta-openembedded $source_dir/meta-openembedded 2>&1 | grep -v 'fatal'
git clone https://git.openembedded.org/meta-openembedded $source_dir/meta-openembedded 2>&1 | grep -v 'fatal'
cd $source_dir/meta-openembedded
git fetch
git checkout eb4563b83be0a57ede4269ab19688af6baa62cd2
@ -43,28 +43,29 @@ rsync -r /vagrant/meta-3dr/ $source_dir/meta-3dr --delete
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-fsl-arm-extra
git clone git://github.com/Freescale/meta-fsl-arm-extra $source_dir/meta-fsl-arm-extra 2>&1 | grep -v 'fatal'
git clone https://github.com/Freescale/meta-fsl-arm-extra $source_dir/meta-fsl-arm-extra 2>&1 | grep -v 'fatal'
cd $source_dir/meta-fsl-arm-extra
git fetch
git checkout 07ad83db0fb67c5023bd627a61efb7f474c52622
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-fsl-demos
git clone git://github.com/Freescale/meta-fsl-demos $source_dir/meta-fsl-demos 2>&1 | grep -v 'fatal'
git clone https://github.com/Freescale/meta-fsl-demos $source_dir/meta-fsl-demos 2>&1 | grep -v 'fatal'
cd $source_dir/meta-fsl-demos
git fetch
git checkout 5a12677ad000a926d23c444266722a778ea228a7
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-browser
git clone git://github.com/OSSystems/meta-browser $source_dir/meta-browser 2>&1 | grep -v 'fatal'
git clone https://github.com/OSSystems/meta-browser $source_dir/meta-browser 2>&1 | grep -v 'fatal'
cd $source_dir/meta-browser
git fetch
git checkout fc3969f63bda343c38c40a23f746c560c4735f3e
echo "----------------------------------------------------------------------------"
mkdir -p $source_dir/meta-fsl-bsp-release
git clone git://git.freescale.com/imx/meta-fsl-bsp-release $source_dir/meta-fsl-bsp-release 2>&1 | grep -v 'fatal'
#git clone https://git.freescale.com/imx/meta-fsl-bsp-release $source_dir/meta-fsl-bsp-release 2>&1 | grep -v 'fatal'
git clone https://github.com/opensolo/meta-fsl-bsp-release $source_dir/meta-fsl-bsp-release 2>&1 | grep -v 'fatal'
cd $source_dir/meta-fsl-bsp-release
git fetch
git checkout dora_3.10.17-1.0.0_GA