# PEV Sensors Setting
## Xsen IMU
* Firmware Setting - First time only
Using [xsens_mti_ros_node](https://github.com/xsens/xsens_mti_ros_node) to set firmware
```
wget https://github.com/xsens/xsens_mti_ros_node/blob/master/src/xsens_driver/src/mtdevice.py
sudo chmod +x mtdevice.py
roscore
./mtdevice.py -d /dev/xsens_imu_odom -m 2 -f 50
./mtdevice.py -d /dev/xsens_imu_slam -m 2 -f 50
./mtdevice.py -d /dev/xsens_imu_tilt -m 2 -f 50
```
* Using [xsens_driver](http://wiki.ros.org/xsens_driver) ROS package to read sensors
## EMLID REACH RTK GNSS receiver
### Firmware reflashing
The offical document is avalible [here](https://docs.emlid.com/reach/common/reachview/firmware-reflashing/).
```
sudo dfu-util -l
```
Make sure it found the device. The message should looks like:
>dfu-util 0.8
>
> Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2014 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to dfu-util@lists.gnumonks.org
>
>Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=11, name="initrd", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=10, name="vmlinuz", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=9, name="home", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=8, name="update", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=7, name="rootfs", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=6, name="boot", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=5, name="u-boot-env1", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=4, name="u-boot1", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=3, name="u-boot-env0", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=2, name="u-boot0", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=1, name="ifwib00", serial="UNKNOWN"\
Found DFU: [8087:0a99] ver=9999, devnum=75, cfg=1, intf=0, alt=0, name="ifwi00", serial="UNKNOWN"
### Settings
The detail setting steps is folllowing [this](https://docs.emlid.com/reach/common/reachview/) website.
1. After flashed device Connect to the wifi:
>SSID: reach:xx:xx\
>Password: emlidreach
2. Type [http://192.168.42.1](http://192.168.42.1) to config device.
3. Connect to tyhe wifi which we set last step. Then type [http://reach.local](http://reach.local) to setting device.
4. sign up **MaCORS** account: http://64.28.83.185/sbc/Account/Register.
5. Place the order for RTK [here](http://64.28.83.185/SBC/User/Shop).
6. Set Correction input to MaCORS\
Setting is referent from [this](http://macors.massdot.state.ma.us/spiderweb/frmIndex.aspx) web site.
>Choose **NTRIP** mode\
>Address: 64.28.83.185\
>Port: 31000\
>Username: _USER NAME_ (step 4)\
>Password: _USER PASSWORD_ (step 4)\
>Mount Point: RTCM3_MAMI\
>Format: RTCM3
## Arduino ros setup
1. Install rosserial_arduino package.
```
sudo apt-get install ros-kinetic-rosserial-arduino -y
```
2. Add ros msgs library into Arduino IDE
```
cd ~/arduino-1.8.5/libraries
rm -r ros_lib/ #only if ros_lib exist
rosrun rosserial_arduino make_libraries.py .
```
### For front LED ring and stripts
- Add NeoPixel library
```
cd ~/Downloads
wget https://github.com/adafruit/Adafruit_NeoPixel/archive/1.1.6.tar.gz
tar -xzf Adafruit_NeoPixel-1.1.6.tar.gz
cp -r Adafruit_NeoPixel-1.1.6/ ~/Arduino/libraries/
```
- Add Timer library
```
wget https://github.com/JChristensen/Timer/archive/v2.1.tar.gz
tar -xzf v2.1.tar.gz
cp -r Timer-2.1/ ~/Arduino/libraries/
```
- Add DotStar library
```
wget https://github.com/adafruit/Adafruit_DotStar/archive/1.0.4.tar.gz
tar -xzf
cp -r Adafruit_DotStar-1.0.4/ ~/Arduino/libraries/
```
## Mid Drive Motor Switch
ros message type: std_msgs/Bool
True: Using VESC output to motor.
False: Using Electric Assist.