commaai / cabana Goto Github PK
View Code? Open in Web Editor NEWCAN visualizer and DBC maker
Home Page: https://my.comma.ai/cabana/
License: MIT License
CAN visualizer and DBC maker
Home Page: https://my.comma.ai/cabana/
License: MIT License
Open a drive, select a message ID, graphing and message contents currently looks good.
Annotate a signal on the bit matrix, time jumps ahead to about 2400+ seconds.
https://drive.google.com/open?id=1IwJ9lqtPPDqhTSMlvYUCuj_rgvjXky37
https://help.github.com/en/articles/transferring-an-issue-to-another-repository
ideally someone with write access to both repos can manually click a few buttons and move the issues here.
see https://discord.com/channels/469524606043160576/819046761287909446/925437626180304898 for detailed information
cabana will only show the first 360 seconds of my drive video, despite having uploaded all the video and all the logs. I can get log data from beyond that point, but not video. If I look on connect.comma.ai, I can see the video from beyond 360 seconds. The drive which exhibits this issue is 354bf0d56b13da66|2021-12-28--07-59-18.
Addition of LIN bus logging support would be nice!
Suggest pulling default branch or allowing current dbc branch to be selectable.
Every time you load a route the all rlogs are downloaded. Ideally these files are cached and probably pulled through a CDN (should speed up delivery), too.
Ideally, we can come up with a nice UI for this, but a text field for setting the raw line would be great for now. For example, for this you'd enter 0 "P" 1 "R" 2 "N" 3 "D" 4 "B"
in the value field, then cabana would insert the VAL_ 295 GEAR
and the semicolon in the DBC it outputs.
Cabana crashes on many occasions *e.g. when clicking on a signal).
It also doesn't refresh data on the plots.
Tested with white panda and two different Windows 10 PC with Chrome and Opera browser.
I have recorded a video showing the behaviour:
https://youtu.be/W2sTxddQUjI
Redirects you to cabana.comma.ai
and still not logged in.
Since Cabana runs from https://community.comma.ai/cabana is there an internet connection needed even when using direct USB to panda? This may look like a stupid question but is it maybe possible to load the website on a laptop and then do offline and use USB afterwards or is it needed to stay online all the time?
We are not getting busTime from panda anymore, so removal of busTime will improve Cabana processing time.
https://cabana.comma.ai/?route=1632088eda5e6c4d|2017-11-05--18-13-36
I.e, 0x17c on bus 0, based on the frame counter in the sidebar, looks to be a 200hz message if you do # frames/90 seconds which equals 199.9hz. But based on the actual timing of the frame, it's 100hz. One frame every 0.01 seconds or so.
Caused by: sentry reported an error: Authentication credentials were not provided
https://app.netlify.com/sites/cabana-staging/deploys/60c7789b040f0e0007d5d8d3
Clicking load DBC and selecting a car makes it impossible to make another choice.
Even if you click on another car in the list, clicking ok will load the car you clicked first.
I think this may have been recently introduced. Steps to reproduce:
It looks like the signals list refuses to refresh when jumping between log event messages in the same group, e.g. "CarState:WheelSpeeds" to "CarState:[Ego|Controls|Flags]". However, it will refresh normally if jumping to a different log event group. Same bug/behavior seems to hold for all the log event groups, except that Health:Data seems to act as part of the Thermal group.
But keep performance!
I found this:
https://www.autopi.io/blog/discover-hidden-functions-in-your-car-with-can-bus/
Having the ability to more intelligently filter CAN messages in Cabana would go far as to help find messages for future Comma projects, such as blinker for nav and other features. Currently using Cabana to find signals is more guess and check.
I've asked them if they wanted to add support for pandas:
https://community.autopi.io/t/support-for-comma-panda-devices-also-we-have-a-vast-opendbc-library/2763
Cabana retains a local copy of the DBC used to interpret a given drive, per drive, indefinitely. This accumulates over time and eventually makes Cabana stop working until the browser cache is cleared, or the local storage entities are nuked by hand in the developer console.
It's nice to have all those workspaces held for later reference, particularly if edits are in progress, but a mechanism is needed to gracefully react to quota exhaustion.
I think the message rate display in Hz (for example, next to Bytes field) would somewhat simplify CAN reverse-engineering and porting related activities
Saving a mostly empty file with just: time,addr,bus,data
to reproduce:
When I tried to open a cabana link with honda_crv_hybrid_2019_can_generated.dbc, I noticed the GEAR and GEAR_SHIFTER plots in GEARBOX couldn't display properly (no timeline and not moving)
After inspecting the export dbc, I noticed it's overwriting GEARBOX definitions:
If I removed CM_ "Imported file _bosch_2018.dbc starts here" from the dbc file and import/export again, it seems loading fine and not overwriting defintions.
so looks like issue is caused when:
CM_ "Imported file bosch_2018.dbc starts here"
or
CM "honda_crv_hybrid_2019_can.dbc starts here"
are added.
in realtime streaming mode, cabana should wait to collect can messages until after a dbc is chosen because right now selecting a dbc is super slow and unresponsive on some computers that otherwise work fine with live cabana
Recently, sometimes I cannot see CAN data, but video feed works:
Cabana lets you create and save a Signal Name with a space in it, which seems to be invalid. Loading the generated/saved dbc file will result in the line being ignored.
Ideally, Cabana would prevent the user from using an "illegal" signal name.
Not sure why this happens but sometimes when I save a DBC file, then load it again later, I notice messages that were previously defined aren't there anymore. Not sure how to reproduce it, but here is an example
edude03/opendbc@315d0c0#diff-abcd5cc6c032c059a532d9896668e1b6L85
Use carParams to look up the DBC. This changes somewhat regularly so this needs to be pulled live, like the DBC files.
I purchased both a gray and black panda to use with Cabana USB Chrome livestreaming and it hangs indefinitely at "Loading messages"
https://discordapp.com/channels/469524606043160576/524328405433450531/838863792497754197
https://discordapp.com/channels/469524606043160576/524328405433450531/838870660373545001
https://discordapp.com/channels/469524606043160576/524328405433450531/838870660373545001
https://discordapp.com/channels/469524606043160576/524594418628558878/854553268231340032
node-gfx/node-canvas-prebuilt#9
pi@raspberrypi:~/cabana $ yarn why canvas-prebuilt
yarn why v1.22.5
[1/4] Why do we have the module "canvas-prebuilt"...?
[2/4] Initialising dependency graph...
[3/4] Finding dependency...
[4/4] Calculating file sizes...
=> Found "[email protected]"
info Reasons this module exists
- "vega-tooltip#vega" depends on it
- Hoisted from "vega-tooltip#vega#canvas-prebuilt"
Done in 10.44s.
Plenty of better UI libraries exist, don't need vega
Also have to remove sentry getsentry/sentry-cli#593
Also node-sass?
Error: Node Sass does not yet support your current environment: Linux Unsupported architecture (arm) with Unsupported runtime (83)
For more information on which environments are supported please see:
You are supposed to be able to mouse over a signal in the bytes view and it highlights the signal name in the signal name list at the bottom (or you can just visually match based on color). Sometimes, however, there are so many small signals that there is no way to see the byte view and corresponding signal name in the signal list at the same time. With the addition of CAN-FD support this is an even bigger problem.
A few potential ideas:
Problem encountered on my.comma.ai. To reproduce the problem just click on any message and then try to select any message portion in message details area.
Just to add, after this error the page goes blank so it is a critical error as cabana is is not usable anymore.
console.js:39 TypeError: Cannot read property 'hexData' of undefined
at MessageBytes.shouldComponentUpdate (MessageBytes.js:31)
at gg (react-dom.production.min.js:2869)
at Lh (react-dom.production.min.js:3870)
at mj (react-dom.production.min.js:6116)
at jj (react-dom.production.min.js:5101)
at Z (react-dom.production.min.js:4958)
at $i (react-dom.production.min.js:4817)
at react-dom.production.min.js:2543
at n.unstable_runWithPriority (scheduler.production.min.js:338)
at vf (react-dom.production.min.js:2513)
at yf (react-dom.production.min.js:2538)
at O (react-dom.production.min.js:2528)
at eg (react-dom.production.min.js:4773)
at Object.enqueueSetState (react-dom.production.min.js:2840)
at CanExplorer.D.setState (react.production.min.js:60)
at CanExplorer._callee3$ (CanExplorer.js:763)
at tryCatch (runtime.js:45)
at Generator.invoke [as _invoke] (runtime.js:264)
at Generator.forEach.e.<computed> [as next] (runtime.js:98)
at asyncGeneratorStep (asyncToGenerator.js:3)
at _next (asyncToGenerator.js:25)
e.<computed> @ console.js:39
di @ react-dom.production.min.js:4260
r.callback @ react-dom.production.min.js:4659
Zf @ react-dom.production.min.js:2808
Yf @ react-dom.production.min.js:2796
nj @ react-dom.production.min.js:5821
n.unstable_runWithPriority @ scheduler.production.min.js:338
vf @ react-dom.production.min.js:2513
ij @ react-dom.production.min.js:5547
$i @ react-dom.production.min.js:4817
(anonymous) @ react-dom.production.min.js:2543
n.unstable_runWithPriority @ scheduler.production.min.js:338
vf @ react-dom.production.min.js:2513
yf @ react-dom.production.min.js:2538
O @ react-dom.production.min.js:2528
eg @ react-dom.production.min.js:4773
enqueueSetState @ react-dom.production.min.js:2840
D.setState @ react.production.min.js:60
_callee3$ @ CanExplorer.js:763
tryCatch @ runtime.js:45
invoke @ runtime.js:264
forEach.e.<computed> @ runtime.js:98
asyncGeneratorStep @ asyncToGenerator.js:3
_next @ asyncToGenerator.js:25
Promise.then (async)
asyncGeneratorStep @ asyncToGenerator.js:13
_next @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
loadMessagesFromCache @ main.2c9f4575.chunk.js:1
persistDbc @ CanExplorer.js:970
onConfirmedSignalChange @ CanExplorer.js:977
propagateUpSignalChange @ AddSignals.js:520
onBitMouseUp @ AddSignals.js:367
ka @ react-dom.production.min.js:81
qa @ react-dom.production.min.js:101
ra @ react-dom.production.min.js:105
wa @ react-dom.production.min.js:125
Aa @ react-dom.production.min.js:154
ya @ react-dom.production.min.js:143
Ba @ react-dom.production.min.js:167
Pd @ react-dom.production.min.js:1749
Ud @ react-dom.production.min.js:1813
n.unstable_runWithPriority @ scheduler.production.min.js:338
vf @ react-dom.production.min.js:2513
fj @ react-dom.production.min.js:4863
Sd @ react-dom.production.min.js:1783
wrapped @ raven.js:363
asyncToGenerator.js:6 Uncaught (in promise) TypeError: Cannot read property 'hexData' of undefined
at MessageBytes.shouldComponentUpdate (MessageBytes.js:31)
at gg (react-dom.production.min.js:2869)
at Lh (react-dom.production.min.js:3870)
at mj (react-dom.production.min.js:6116)
at jj (react-dom.production.min.js:5101)
at Z (react-dom.production.min.js:4958)
at $i (react-dom.production.min.js:4817)
at react-dom.production.min.js:2543
at n.unstable_runWithPriority (scheduler.production.min.js:338)
at vf (react-dom.production.min.js:2513)
at yf (react-dom.production.min.js:2538)
at O (react-dom.production.min.js:2528)
at eg (react-dom.production.min.js:4773)
at Object.enqueueSetState (react-dom.production.min.js:2840)
at CanExplorer.D.setState (react.production.min.js:60)
at CanExplorer._callee3$ (CanExplorer.js:763)
at tryCatch (runtime.js:45)
at Generator.invoke [as _invoke] (runtime.js:264)
at Generator.forEach.e.<computed> [as next] (runtime.js:98)
at asyncGeneratorStep (asyncToGenerator.js:3)
at _next (asyncToGenerator.js:25)
shouldComponentUpdate @ MessageBytes.js:31
gg @ react-dom.production.min.js:2869
Lh @ react-dom.production.min.js:3870
mj @ react-dom.production.min.js:6116
jj @ react-dom.production.min.js:5101
Z @ react-dom.production.min.js:4958
$i @ react-dom.production.min.js:4817
(anonymous) @ react-dom.production.min.js:2543
n.unstable_runWithPriority @ scheduler.production.min.js:338
vf @ react-dom.production.min.js:2513
yf @ react-dom.production.min.js:2538
O @ react-dom.production.min.js:2528
eg @ react-dom.production.min.js:4773
enqueueSetState @ react-dom.production.min.js:2840
D.setState @ react.production.min.js:60
_callee3$ @ CanExplorer.js:763
tryCatch @ runtime.js:45
invoke @ runtime.js:264
forEach.e.<computed> @ runtime.js:98
asyncGeneratorStep @ asyncToGenerator.js:3
_next @ asyncToGenerator.js:25
Promise.then (async)
asyncGeneratorStep @ asyncToGenerator.js:13
_next @ asyncToGenerator.js:25
(anonymous) @ asyncToGenerator.js:32
(anonymous) @ asyncToGenerator.js:21
loadMessagesFromCache @ main.2c9f4575.chunk.js:1
persistDbc @ CanExplorer.js:970
onConfirmedSignalChange @ CanExplorer.js:977
propagateUpSignalChange @ AddSignals.js:520
onBitMouseUp @ AddSignals.js:367
ka @ react-dom.production.min.js:81
qa @ react-dom.production.min.js:101
ra @ react-dom.production.min.js:105
wa @ react-dom.production.min.js:125
Aa @ react-dom.production.min.js:154
ya @ react-dom.production.min.js:143
Ba @ react-dom.production.min.js:167
Pd @ react-dom.production.min.js:1749
Ud @ react-dom.production.min.js:1813
n.unstable_runWithPriority @ scheduler.production.min.js:338
vf @ react-dom.production.min.js:2513
fj @ react-dom.production.min.js:4863
Sd @ react-dom.production.min.js:1783
wrapped @ raven.js:363
Go to https://my.comma.ai/cabana/?demo=1
The video remain black and according network requests the data the error is :
403 Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
Set0
, the other signal is overwritten.The counts change during a route causing the messages to move around.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.