Doesn’t matter in my case if toggled or not.
I tried it today and they both work now.
Hmmm… what’s the consensus on the fix to upload?? I can’t upload either
Use the option “Automatic Uploads” in the Records settings for now.
If you can’t upload:
- Make sure you have active connection to the board that you have recorded with
- Upload. For further uploads you don’t need to have connection
- If you switch boards and upload doesn’t work, repeat 1-2
I think I’ve run into a strange bug.
metr appears to have wiped my app settings. not to defaults. but just some other settings including setting the app to “no app” so I can’t set them back over metr/ble.
I have two boards both pretty much the same. dual focbox over CAN metr on primary app set to PPM. + UART. metr pro connected to uart. VX1 remote connected via PPM to primary vesc.
I had an issue with the remote and while trying to debug it I checked in metr to see if it was sending signal, I went into the calibrate PPM wizard from the expert menu. that worked for a moment but then I tried to pair a different remote including a power cycle. metr didn’t connect anymore. I’m not sure if i noticed before or after the power cycle. when I got hooked up via USB I found the app set to noapp and a bunch of other app settings changed to random stuff. (not the defaults. )
Today on the other board. basically the same thing happened.
in both cases the motor configs were unaffected.
I happen to save my configs so I can give a custom diff of what was changed:
first board diff
+++ /var/folders/5z/4jb92sz1487b8zvx21md16s00000gp/T/tmp.N6zTEoPH 2020-07-26 18:51:29.000000000 -0700
--- /var/folders/5z/4jb92sz1487b8zvx21md16s00000gp/T/tmp.RbmiGXSB 2020-07-26 18:51:29.000000000 -0700
@@ -1,115 +1,115 @@
app_adc_conf.cc_button_inverted: 0
app_adc_conf.ctrl_type: 0
+app_adc_conf.hyst: 0
-app_adc_conf.hyst: 0.15
+app_adc_conf.multi_esc: 0
-app_adc_conf.multi_esc: 1
+app_adc_conf.ramp_time_neg: 0
-app_adc_conf.ramp_time_neg: 0.1
+app_adc_conf.ramp_time_pos: 0
-app_adc_conf.ramp_time_pos: 0.3
app_adc_conf.rev_button_inverted: 0
+app_adc_conf.safe_start: 0
-app_adc_conf.safe_start: 1
app_adc_conf.tc: 0
+app_adc_conf.tc_max_diff: 0
-app_adc_conf.tc_max_diff: 3000
app_adc_conf.throttle_exp: 0
app_adc_conf.throttle_exp_brake: 0
+app_adc_conf.throttle_exp_mode: 0
-app_adc_conf.throttle_exp_mode: 2
+app_adc_conf.update_rate_hz: 0
-app_adc_conf.update_rate_hz: 500
+app_adc_conf.use_filter: 0
-app_adc_conf.use_filter: 1
+app_adc_conf.voltage2_end: 0
-app_adc_conf.voltage2_end: 3
app_adc_conf.voltage2_inverted: 0
+app_adc_conf.voltage2_start: 0
-app_adc_conf.voltage2_start: 0.9
+app_adc_conf.voltage_center: 0
-app_adc_conf.voltage_center: 2
+app_adc_conf.voltage_end: 0
-app_adc_conf.voltage_end: 3
app_adc_conf.voltage_inverted: 0
+app_adc_conf.voltage_start: 0
-app_adc_conf.voltage_start: 0.9
app_balance_conf.current_boost: 0
app_balance_conf.deadzone: 0
-app_balance_conf.hertz: 1000
+app_balance_conf.hertz: 50
app_balance_conf.kd: 0
app_balance_conf.ki: 0
app_balance_conf.kp: 0
+app_balance_conf.overspeed_duty: 0
-app_balance_conf.overspeed_duty: 0.9
+app_balance_conf.pitch_fault: 0
-app_balance_conf.pitch_fault: 20
+app_balance_conf.roll_fault: 0
-app_balance_conf.roll_fault: 45
+app_balance_conf.startup_pitch_tolerance: 0
-app_balance_conf.startup_pitch_tolerance: 20
+app_balance_conf.startup_roll_tolerance: 0
-app_balance_conf.startup_roll_tolerance: 8
+app_balance_conf.startup_speed: 0
-app_balance_conf.startup_speed: 30
+app_balance_conf.tiltback_angle: 0
-app_balance_conf.tiltback_angle: 15
+app_balance_conf.tiltback_duty: 0
-app_balance_conf.tiltback_duty: 0.75
+app_balance_conf.tiltback_high_voltage: 0
-app_balance_conf.tiltback_high_voltage: 100
app_balance_conf.tiltback_low_voltage: 0
+app_balance_conf.tiltback_speed: 0
-app_balance_conf.tiltback_speed: 5
app_balance_conf.use_switches: 0
app_chuk_conf.ctrl_type: 0
+app_chuk_conf.hyst: 0
-app_chuk_conf.hyst: 0.15
+app_chuk_conf.multi_esc: 0
-app_chuk_conf.multi_esc: 1
+app_chuk_conf.ramp_time_neg: 0
-app_chuk_conf.ramp_time_neg: 0.2
+app_chuk_conf.ramp_time_pos: 0
-app_chuk_conf.ramp_time_pos: 0.4
+app_chuk_conf.smart_rev_max_duty: 0
-app_chuk_conf.smart_rev_max_duty: 0.07
+app_chuk_conf.smart_rev_ramp_time: 0
-app_chuk_conf.smart_rev_ramp_time: 3
+app_chuk_conf.stick_erpm_per_s_in_cc: 0
-app_chuk_conf.stick_erpm_per_s_in_cc: 3000
app_chuk_conf.tc: 0
+app_chuk_conf.tc_max_diff: 0
-app_chuk_conf.tc_max_diff: 3000
app_chuk_conf.throttle_exp: 0
app_chuk_conf.throttle_exp_brake: 0
+app_chuk_conf.throttle_exp_mode: 0
-app_chuk_conf.throttle_exp_mode: 2
+app_chuk_conf.use_smart_rev: 0
-app_chuk_conf.use_smart_rev: 1
+app_nrf_conf.address__0: 0
-app_nrf_conf.address__0: 198
+app_nrf_conf.address__1: 0
-app_nrf_conf.address__1: 199
app_nrf_conf.address__2: 0
+app_nrf_conf.channel: 0
-app_nrf_conf.channel: 76
app_nrf_conf.crc_type: 1
+app_nrf_conf.power: 0
-app_nrf_conf.power: 3
+app_nrf_conf.retries: 0
-app_nrf_conf.retries: 3
app_nrf_conf.retry_delay: 0
+app_nrf_conf.send_crc_ack: 0
-app_nrf_conf.send_crc_ack: 1
+app_nrf_conf.speed: 0
-app_nrf_conf.speed: 1
-app_ppm_conf.ctrl_type: 1
+app_ppm_conf.ctrl_type: 3
+app_ppm_conf.hyst: 0
-app_ppm_conf.hyst: 0.15
+app_ppm_conf.max_erpm_for_dir: 0
-app_ppm_conf.max_erpm_for_dir: 4000
+app_ppm_conf.median_filter: 0
-app_ppm_conf.median_filter: 1
+app_ppm_conf.multi_esc: 0
-app_ppm_conf.multi_esc: 1
+app_ppm_conf.pid_max_erpm: 0
-app_ppm_conf.pid_max_erpm: 15000
+app_ppm_conf.pulse_center: 0
-app_ppm_conf.pulse_center: 1.536
+app_ppm_conf.pulse_end: 0
-app_ppm_conf.pulse_end: 1.932
+app_ppm_conf.pulse_start: 0
-app_ppm_conf.pulse_start: 1.14
+app_ppm_conf.ramp_time_neg: 0
-app_ppm_conf.ramp_time_neg: 0.2
+app_ppm_conf.ramp_time_pos: 0
-app_ppm_conf.ramp_time_pos: 0.2
+app_ppm_conf.safe_start: 0
-app_ppm_conf.safe_start: 1
+app_ppm_conf.smart_rev_max_duty: 0
-app_ppm_conf.smart_rev_max_duty: 0.07
+app_ppm_conf.smart_rev_ramp_time: 0
-app_ppm_conf.smart_rev_ramp_time: 3
app_ppm_conf.tc: 0
+app_ppm_conf.tc_max_diff: 0
-app_ppm_conf.tc_max_diff: 3000
app_ppm_conf.throttle_exp: 0
app_ppm_conf.throttle_exp_brake: 0
+app_ppm_conf.throttle_exp_mode: 0
-app_ppm_conf.throttle_exp_mode: 2
+app_to_use: 0
-app_to_use: 4
+app_uart_baudrate: 0
-app_uart_baudrate: 115200
+can_baud_rate: 0
-can_baud_rate: 2
controller_id: 0
+imu_conf.accel_confidence_decay: 0
-imu_conf.accel_confidence_decay: 1
imu_conf.accel_offsets__0: 0
imu_conf.accel_offsets__1: 0
imu_conf.accel_offsets__2: 0
+imu_conf.gyro_offset_comp_clamp: 0
-imu_conf.gyro_offset_comp_clamp: 5
imu_conf.gyro_offset_comp_fact__0: 0
imu_conf.gyro_offset_comp_fact__1: 0
imu_conf.gyro_offset_comp_fact__2: 0
imu_conf.gyro_offsets__0: 0
imu_conf.gyro_offsets__1: 0
imu_conf.gyro_offsets__2: 0
+imu_conf.madgwick_beta: 0
-imu_conf.madgwick_beta: 0.1
imu_conf.mahony_ki: 0
+imu_conf.mahony_kp: 0
-imu_conf.mahony_kp: 0.3
imu_conf.mode: 0
imu_conf.rot_pitch: 0
imu_conf.rot_roll: 0
imu_conf.rot_yaw: 0
+imu_conf.sample_rate_hz: 1
-imu_conf.sample_rate_hz: 200
+imu_conf.type: 0
-imu_conf.type: 1
pairing_done: 0
+permanent_uart_enabled: 0
-permanent_uart_enabled: 1
send_can_status: 0
+send_can_status_rate_hz: 0
-send_can_status_rate_hz: 50
+shutdown_mode: 0
-shutdown_mode: 1
timeout_brake_current: 0
timeout_msec: 1000
uavcan_enable: 0
second board diff
+++ /var/folders/5z/4jb92sz1487b8zvx21md16s00000gp/T/tmp.iU9c2JZH 2020-07-26 18:48:28.000000000 -0700
--- /var/folders/5z/4jb92sz1487b8zvx21md16s00000gp/T/tmp.jerWJyoe 2020-07-26 18:48:28.000000000 -0700
@@ -1,115 +1,115 @@
app_adc_conf.cc_button_inverted: 0
app_adc_conf.ctrl_type: 0
+app_adc_conf.hyst: 0
-app_adc_conf.hyst: 0.15
+app_adc_conf.multi_esc: 0
-app_adc_conf.multi_esc: 1
+app_adc_conf.ramp_time_neg: 0
-app_adc_conf.ramp_time_neg: 0.1
+app_adc_conf.ramp_time_pos: 0
-app_adc_conf.ramp_time_pos: 0.3
app_adc_conf.rev_button_inverted: 0
+app_adc_conf.safe_start: 0
-app_adc_conf.safe_start: 1
app_adc_conf.tc: 0
+app_adc_conf.tc_max_diff: 0
-app_adc_conf.tc_max_diff: 3000
app_adc_conf.throttle_exp: 0
app_adc_conf.throttle_exp_brake: 0
+app_adc_conf.throttle_exp_mode: 0
-app_adc_conf.throttle_exp_mode: 2
+app_adc_conf.update_rate_hz: 0
-app_adc_conf.update_rate_hz: 500
+app_adc_conf.use_filter: 0
-app_adc_conf.use_filter: 1
+app_adc_conf.voltage2_end: 0
-app_adc_conf.voltage2_end: 3
app_adc_conf.voltage2_inverted: 0
+app_adc_conf.voltage2_start: 0
-app_adc_conf.voltage2_start: 0.9
+app_adc_conf.voltage_center: 0
-app_adc_conf.voltage_center: 2
+app_adc_conf.voltage_end: 0
-app_adc_conf.voltage_end: 3
app_adc_conf.voltage_inverted: 0
+app_adc_conf.voltage_start: 0
-app_adc_conf.voltage_start: 0.9
app_balance_conf.current_boost: 0
app_balance_conf.deadzone: 0
+app_balance_conf.hertz: 0
-app_balance_conf.hertz: 1000
app_balance_conf.kd: 0
app_balance_conf.ki: 0
app_balance_conf.kp: 0
+app_balance_conf.overspeed_duty: 0
-app_balance_conf.overspeed_duty: 0.9
+app_balance_conf.pitch_fault: 0
-app_balance_conf.pitch_fault: 20
+app_balance_conf.roll_fault: 0
-app_balance_conf.roll_fault: 45
+app_balance_conf.startup_pitch_tolerance: 0
-app_balance_conf.startup_pitch_tolerance: 20
+app_balance_conf.startup_roll_tolerance: 0
-app_balance_conf.startup_roll_tolerance: 8
+app_balance_conf.startup_speed: 0
-app_balance_conf.startup_speed: 30
+app_balance_conf.tiltback_angle: 0
-app_balance_conf.tiltback_angle: 15
+app_balance_conf.tiltback_duty: 0
-app_balance_conf.tiltback_duty: 0.75
+app_balance_conf.tiltback_high_voltage: 0
-app_balance_conf.tiltback_high_voltage: 100
app_balance_conf.tiltback_low_voltage: 0
+app_balance_conf.tiltback_speed: 0
-app_balance_conf.tiltback_speed: 5
app_balance_conf.use_switches: 0
app_chuk_conf.ctrl_type: 0
+app_chuk_conf.hyst: 0
-app_chuk_conf.hyst: 0.15
+app_chuk_conf.multi_esc: 0
-app_chuk_conf.multi_esc: 1
+app_chuk_conf.ramp_time_neg: 0
-app_chuk_conf.ramp_time_neg: 0.2
+app_chuk_conf.ramp_time_pos: 0
-app_chuk_conf.ramp_time_pos: 0.4
+app_chuk_conf.smart_rev_max_duty: 0
-app_chuk_conf.smart_rev_max_duty: 0.07
+app_chuk_conf.smart_rev_ramp_time: 0
-app_chuk_conf.smart_rev_ramp_time: 3
+app_chuk_conf.stick_erpm_per_s_in_cc: 0
-app_chuk_conf.stick_erpm_per_s_in_cc: 3000
app_chuk_conf.tc: 0
+app_chuk_conf.tc_max_diff: 0
-app_chuk_conf.tc_max_diff: 3000
app_chuk_conf.throttle_exp: 0
app_chuk_conf.throttle_exp_brake: 0
+app_chuk_conf.throttle_exp_mode: 0
-app_chuk_conf.throttle_exp_mode: 2
+app_chuk_conf.use_smart_rev: 0
-app_chuk_conf.use_smart_rev: 1
+app_nrf_conf.address__0: 0
-app_nrf_conf.address__0: 198
+app_nrf_conf.address__1: 0
-app_nrf_conf.address__1: 199
app_nrf_conf.address__2: 0
+app_nrf_conf.channel: 0
-app_nrf_conf.channel: 76
app_nrf_conf.crc_type: 1
+app_nrf_conf.power: 0
-app_nrf_conf.power: 3
+app_nrf_conf.retries: 0
-app_nrf_conf.retries: 3
app_nrf_conf.retry_delay: 0
+app_nrf_conf.send_crc_ack: 0
-app_nrf_conf.send_crc_ack: 1
+app_nrf_conf.speed: 0
-app_nrf_conf.speed: 1
-app_ppm_conf.ctrl_type: 1
+app_ppm_conf.ctrl_type: 3
+app_ppm_conf.hyst: 0
-app_ppm_conf.hyst: 0.1
+app_ppm_conf.max_erpm_for_dir: 0
-app_ppm_conf.max_erpm_for_dir: 4000
+app_ppm_conf.median_filter: 0
-app_ppm_conf.median_filter: 1
+app_ppm_conf.multi_esc: 0
-app_ppm_conf.multi_esc: 1
+app_ppm_conf.pid_max_erpm: 0
-app_ppm_conf.pid_max_erpm: 15000
+app_ppm_conf.pulse_center: 0
-app_ppm_conf.pulse_center: 1.53
+app_ppm_conf.pulse_end: 0
-app_ppm_conf.pulse_end: 1.927
+app_ppm_conf.pulse_start: 0
-app_ppm_conf.pulse_start: 1.137
+app_ppm_conf.ramp_time_neg: 0
-app_ppm_conf.ramp_time_neg: 0.2
+app_ppm_conf.ramp_time_pos: 0
-app_ppm_conf.ramp_time_pos: 0.2
+app_ppm_conf.safe_start: 0
-app_ppm_conf.safe_start: 1
+app_ppm_conf.smart_rev_max_duty: 0
-app_ppm_conf.smart_rev_max_duty: 0.11
+app_ppm_conf.smart_rev_ramp_time: 0
-app_ppm_conf.smart_rev_ramp_time: 0.5
app_ppm_conf.tc: 0
+app_ppm_conf.tc_max_diff: 0
-app_ppm_conf.tc_max_diff: 3000
app_ppm_conf.throttle_exp: 0
app_ppm_conf.throttle_exp_brake: 0
+app_ppm_conf.throttle_exp_mode: 0
-app_ppm_conf.throttle_exp_mode: 2
+app_to_use: 0
-app_to_use: 4
+app_uart_baudrate: 0
-app_uart_baudrate: 115200
+can_baud_rate: 0
-can_baud_rate: 2
controller_id: 0
+imu_conf.accel_confidence_decay: 0
-imu_conf.accel_confidence_decay: 1
imu_conf.accel_offsets__0: 0
imu_conf.accel_offsets__1: 0
imu_conf.accel_offsets__2: 0
+imu_conf.gyro_offset_comp_clamp: 0
-imu_conf.gyro_offset_comp_clamp: 5
imu_conf.gyro_offset_comp_fact__0: 0
imu_conf.gyro_offset_comp_fact__1: 0
imu_conf.gyro_offset_comp_fact__2: 0
imu_conf.gyro_offsets__0: 0
imu_conf.gyro_offsets__1: 0
imu_conf.gyro_offsets__2: 0
+imu_conf.madgwick_beta: 0
-imu_conf.madgwick_beta: 0.1
imu_conf.mahony_ki: 0
+imu_conf.mahony_kp: 0
-imu_conf.mahony_kp: 0.3
imu_conf.mode: 0
imu_conf.rot_pitch: 0
imu_conf.rot_roll: 0
imu_conf.rot_yaw: 0
+imu_conf.sample_rate_hz: 0
-imu_conf.sample_rate_hz: 200
+imu_conf.type: 0
-imu_conf.type: 1
pairing_done: 0
+permanent_uart_enabled: 0
-permanent_uart_enabled: 1
send_can_status: 0
+send_can_status_rate_hz: 0
-send_can_status_rate_hz: 50
+shutdown_mode: 0
-shutdown_mode: 1
timeout_brake_current: 0
timeout_msec: 1000
uavcan_enable: 0
Please collect log file from metr app -> Settings -> Show Logs and send it to support@metr.at
Yes, turns out power cycling board during PPM detection is not a good idea. When opening PPM dialog, metr app changes app_ppm_conf_ctrl_type so that your motors do not spin while you calibrate. On closing PPM dialog, metr app restores configuration. But in your case power cycle resulted in configuration zeroed out. I will think about possible solutions
brilliant. thanks for the confirmation.
I know how to avoid it now too. and I can probably reproduce it. just to prove you right.
so. that makes sense.
but now that I think about it. why would my actual app to use get changed?
and all those other values?
shouldn’t it write the intermediate state of only this change… and nothing else. and that would survive reboot?
instead it changed a lot of stuff. including disabling the uart by setting app to none.
hmm.
I agree it would be nice to survive reboot, but I never tested that and apparently it doesn’t. But I will try to fix it!
I still get a greyed out button when trying to upload files while connected to my Onewheel (old Metr hardware). Same goes for older files from early July that did upload at that time.
Is there anything I can try to do?
Uploads work again and are pretty quick in doing it.
Only thing i noticed is that it kicks you back to the realtime tab instead of back to the records.
The second real time layer has the Connections status on top, instead of the bottom. On purpose?
Short answer: uploads do not work any more for old modules.
I did some breaking changes on the server side for client authentication. Now all modules use strong passwordless authentication for uploads. Unfortunately this broke old metr modules, since they don’t use crypto. I don’t really have a good solution for old modules at the moment, maybe I can figure out something. But at least in-app web view is now fully featured and you can see all the details without uploading to the server.
@xsynatic You can hide second status cell. Enter layout editing mode on the second screen and tap it to disable. When resetting layout it is hidden by default. I think you accidentally enabled it.
I found it. The issue was that the box was out of bounds or at least not visible on editing mode. I had to reset the layout, that fixed it.
Could I ask of a small feature request? Is it possible to present split motor(VESC?) RPM values in the log? Had some weird behavior today with one side sticking, would have been nice to look which side was doing it…
Could you provide more detail on this please?
Does this mean all uploaded GPS information was in the clear?
Oh no
Tell me Metr CAN is close to launch so I can upgrade
I am.lookimg for this answer for quite some time now… I am hesitating to order a regular one and then the next day the can version will be released