Configuration and telemetry for VESC [iOS, Android]

I hope I didn’t make it too complicated, please welcome Overlay

I wrote a little manual how to use it

Basically there are 3 default overlays available: ##vertical

##horizontal

##and :boom:DOOM​:boom:

What I really wish though is if someone of you could create your own. This is not that hard, even if you never did front-end web development, you can take existing preset and just start changing it bit by bit, colors and fonts, position of the text labels. Click “apply” and see if it works. Ask here if you need some assistance.

To web-developers on this forum: I apologize if my CSS sucks :slight_smile: I have little experience but I enjoy learning and recommend everyone as it takes 72.6% in the most recent Stack Overflow Developer Survey

6 Likes

I think that there is a bug with downloading the video, at least for vertical. It doesn’t download the full screen green screen. So when trying to put it on the footage, it is placed in the center.

It is not a bug, the video generated in Chrome has to be as narrow as possible, otherwise it will take ages to generate. After downloading you can pad it with ffmpeg to make iMovie happy. The magic command for vertical preset is

ffmpeg -i overlay.webm -crf 1 -vf "pad=w=1920:h=1080:x=1620:y=0:color=green" overlay.mp4

1 Like

WHO NEEDS AN UPDATE WITH TIZEN ? ( Samsung gear series compatible with IOS and android )

  • Yes
  • No

0 voters

Sorry - Clicked accidentally on mobile. Is there a way to remove a vote?

[edit] 10 c

So, can i use this app with random HM-10 bluetooth module?

No, you need a special Bluetooth module. You can buy it here: https://metr.at/shop

@rpasichnyk Sad to see no video of the overlay from any other user than your video, but I will try to get my hands on it next weekend. Maybe it is to difficult for “normal” user.

I have just tested it to generate the video for an old log. The log was around 5 minutes long, but it takes 6 minutes to generate the video in chrome. I like your idea to use the browser to generate the files, but it takes to long. Benjamins QT application overlays the VESC data in realtime with the big problem that you need to have the laptop/camera hocked up to the VESC while logging. So I think your browser overlay is a nice feature for “makers”, but definitely not for the majority.

Well, I hope 6 minutes is not too much, I will spend more time searching for a sound track and adding some fade out effects, and maybe some cats and rainbows. And of course eskate people here are “power users” and “makers” and will totally nail it, I’m sure :wink:

1 Like

@rpasichnyk: in perimeter it’s possible to save settings and load them, but would it be possible to allow the saves to be renamed by the user so we can have different configs like beginner, expert etc?

@rwxr Yes, it is possible, hold your finger on the saved entry, and rename it.

Awesome! Thanks

I haven’t tried on mac but on windows it’s very very fast on Chrome. I don’t know why but for me on Linux it’s not completing, the chrome tab went out of memory (it got limited around 1.5 GB) I had to use firefox but for ~1h ride it used 14GB of memory out of the 16 I have . There’s definately a memory leak/problem and it could be related to the js library used to makethe video from the html canvas to webm. I believe @rpasichnyk is using whammy which seems a library that is stable from long time. I researched a bit and stumbled upon ccapture which seems new but probaby it’s also more performant? I don’t know I never tried any of the two.

Anyway I modified the doom HTML/CSS/JS overlay and made this from one ride log:

I still need to wait a bit and get a new gimbal to make a decent video with the overlay.

Here’s the modified code if you want to use it: https://gist.github.com/makevoid/cd239f90939d9881c46133460b5ef0ff

note on the JS part I put a variable that you can use to multiply the stats to the number of vescs you have

@rpasichnyk I would like to try your app, but I control my vesc via UART, this would result in conflict right? Since UART is not a bus and I can only plug one device at a time

@makevoid Thank you for the feedback! I tried your long record (CoFQt) with your layout from github on macOS and it was okay, took around 11 minutes + 5GB of RAM, of which 1GB was compressed memory. I think compressed memory is why I was able to get away with it. On Ubuntu there is no such thing by default, I don’t know what linux distro you are using but it’s likely the same situation. Windows 10 also has memory compression.

Yes I am using whammy. I looked at ccapture, it uses whammy internally, so basically nothing new :slight_smile: Since overlay didn’t work on Ubuntu out of the box, I had to fix it and luckily I think I managed to do it. I found a place where a lot of memory was wasted and fixed that. Now chrome process consumes around 700mb for your 59 minute record.

Also, don’t try Firefox, it can not encode images as webp.

@Pedrodemio no, you can’t plug two things into one UART port. But if you have dual VESC setup, then you have 2 ports.

2 Likes

Thanks, for now I have single VESC, but I will change to PPM so I can use your module, the idea was to make a battery meter on the controller, all hardware are in place but I never implemented

In a dual VESC linked via can, your app sim the data from both VESC’s? At least battery current and energy

My app gets the data only from one VESC. But you can change the CAN Fwd ID in my app to specify which VESC to communicate with. I am thinking about a good way of getting data from multiple VESCs at the same time without sacrificing the frequency.

Something I have noticed is not really an issue, but an inconvenience. For example: I lose traction of my wheel on a turn for a split second, now the top speed says 80km/h. Is there a way to ignore large speed spikes?

Is there any processing capability on the transmitter? If that’s the case, you could sum most of the data there such as energy, battery current, etc, the only thing that would have to be doubled are motor current, duty cycle and maybe temperature, that would reduce the packet size and keep the a good update interval