Git Product home page Git Product logo

remotivebroker-bootstrap's Introduction

RemotiveBroker bootstrapped

Run it yourself

Remotive Labs provides integrations to various platforms (read more), however in many cases you might prefer to host the software in a machine of your choice. If so; you are in the correct location, keep reading.

prerequisites:

  • docker
  • docker-compose
  • git
  • inotify-tools (optional)

Step 1/3 start using docker

Clone this repository and make sure you have docker and docker-compose installed, then run:

docker-compose up -d

This command only needs to be run once. It is persistent over system reboot -- the containers will be restarted after a reboot, over and over again.

Point your web browser at the machine running RemotiveBroker, an address like http://192.0.2.42:8080/.

Please note, the following license applies to the usage of Remotive Labs products, which is also shown when you run docker-compose up in attached mode.

##########################################################################################
      You are using software provided by Remotive Labs AB pursuant to the
      terms of the End User License Agreement located at
      https://www.remotivelabs.com/license. This license sets out the only
      licensed rights granted to you with respect to this software.
      By downloading or using such software, you accept and agree to the
      terms of his license. This license is valid until 'your end date will be shown here'.
      After this date, you need to either renew your license or cease
      all use of the software.
##########################################################################################

DONE! Now improve your experience by applying next step.

Step 2/3 (optional, quality of life improvement) Upgrade through the web interface

In order to allow upgrades triggered by the user interface you need to install a custom service. To install and start this service (only needed once):

sudo scripts/install-service.sh

This script assumes that you are running on a host where systemd is present

Step 3/3 Get evaluation license

Navigate to the About tab in the web interface, additional instructions can be found here.

Custom can interfaces

RemotiveBroker support all can interfaces which supports socket-can. Many USB can connectors are supported by default by the linux kernel. Typically, it will appear when you do ip a then you simply need to do:

#can/canfd
ip link set can0 type can bitrate 500000 dbitrate 2000000 restart-ms 1000 berr-reporting on fd on
## less capable device 
#can
ip link set can0 type can bitrate 500000 dbitrate 2000000 restart-ms 1000 berr-reporting on

## if above doesn't work try
ip link set can0 up type can bitrate 500000 restart-ms 1000

Remember to run as sudo if you run from shell

Setting up these interfaces on boot on Raspbian would look as follows

cat /etc/network/interfaces.d/can
auto can0
iface can0 inet manual
  pre-up /sbin/ip link set can0 type can bitrate 500000 dbitrate 8000000 restart-ms 1000 berr-reporting on fd on
  up     /sbin/ip link set can0 txqueuelen 65536 up
  down   /sbin/ip link set can0 down
auto can1
iface can1 inet manual
  pre-up /sbin/ip link set can1 type can bitrate 500000 dbitrate 8000000 restart-ms 1000 berr-reporting on fd on
  up     /sbin/ip link set can1 txqueuelen 65536 up
  down   /sbin/ip link set can1 down

## some devices do not support berr-reporting on
## if above doesn't work try
iface can2 inet manual
  pre-up /sbin/ip link set can2 type can bitrate 500000 restart-ms 1000
  up     /sbin/ip link set can2 txqueuelen 65536 up
  down   /sbin/ip link set can2 down

LIN, Flexray and Ethernet

These protocols are carried over ethernet, however dependent on you HW choice let us help. Reach out on [email protected]. Some guidance can be located below.

Technica

It's recommended to install a bridge module on the same host machine. The scrips provided here will install 2 services, allowing two Technica devices (thus enabling 2 flexray interfaces), one on port 51112 and the other on port 51113.

!> Make sure that your Technica devices is configured to use PLP headers and also make sure to note specified Destination MAC (available by clicking SPY) typically 01:00:5e:00:00:00.

Connect your Technica device to the secondary usb ethernet interface eth1 which is mentioned above. As multicast address provide Destination MAC.

{
  "chains": [
      {
         "type": "flexray",
         "device_name": "flexray0",
         "namespace": "MyFlexrayNamespace",
         "config": {
            "target_host": "127.0.0.1",
            "target_port": 51112,
            "hardware": "Technica_CM_CAN_COMBO",
            "target_config": {
               "interface": "eth1",
               "multicast": "01:00:5e:00:00:00"
            }
         },
         "database": "fibex_files/flexray.xml"
      }
   ]
}

Host Mobility MX-4 T30 FR as a flexray forwarding device

The binary located here need to be installed on the MX-4 T30 FR device. Go here for more information.

{
  "chains": [
      {
         "type": "flexray",
         "device_name": "flexray0",
         "namespace": "MyFlexrayNamespace",
         "config": {
            "target_host": "127.0.0.1",
            "target_port": 51111
         },
         "database": "fibex_files/flexray.xml"
      }
   ]
}

Advanced topics

Start in distributed mode

This mode enables you to daisy chain machines running RemotiveBroker allowing you to increase number of physical interfaces. read more here

Time synchronization using PTP

Our prebuild image contains binaries for ptp /home/pi/src/linuxptp typically there is a PTP Grandmaster, to connect go ahead and do:

sudo ./ptp4l -m -i eth0 -S --step_threshold=1 -f configs/automotive-slave.cfg

Make sure to specify correct interface in the example above eth0 is used.

Stop

docker-compose down

Upgrade

When you upgrade; remember to upgrade THIS repository as well git pull, as examples are continuously updated and improved. You will also find the latest pre-generated grpc files in this repository.

git pull
./upgrade.sh

Alternatively, just pull the latest container images manually:

docker-compose pull

Use a specific version

To pull a specific version you can specify custom tag for REMOTIVEBROKER_TAG or REMOTIVEWEBAPP_TAG, as in:

REMOTIVEBROKER_TAG=v1.2.3 docker-compose up -d

If you have done Step 2/2 above, you can conveniently pick version from the About in the user interface.

Troubleshoot

To start from a clean configuration you could do:

rm remotivelabs-bootstrap/configuration/boot

You can always reach out to us on [email protected]

remotivebroker-bootstrap's People

Contributors

aleksandarfilipov avatar quite avatar elliotjon avatar petervolvowinz avatar carlmartus avatar niclaslind avatar tomazzlender avatar jrask avatar persigurdson avatar hjelm avatar johankarlbergg avatar

Watchers

 avatar  avatar

remotivebroker-bootstrap's Issues

Expose port 50051 so its possible to license with CLI

CLI must have access to the broker on host port so we need to expose this port as well on the host.

Want to make sure this has no implications anywhere?

Problem:

I cannot do the following command unless this is exposed.

remotive broker license request --url http://localhost:50051

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.