Yeah, an additional button in the middle or bottom too!
But then people would just buy without reading and appreciating all the interesting content up to the very end of the page.
Don’t care, give me a davega, no baseplate included
Reading is for nerds
Okay, I added the purchase button but… next time somebody asks me what those numbers in the green rectangle at the top of the screen mean… when normally, in a desperate search for the purchase button, they would scroll all the way to the bottom of the page and watch the short 15 minutes demo video that explains it… I’ll know who to blame!
oh no that naming is gonna be a headache Maybe version V.II? But then it becomes vV.II and starts to look like a bad emoji or something
I just need to outpace the VESC development real quick.
I think it’s okay to share this here, but I just published my second DaVega video! Not on FW 5 yet but hopefully you enjoy anyways
Jan if you don’t want this here I can delete it
Thanks! I actually ordered Atomstack X7 this morning. I haven’t figured any other way to test whether the aluminum engraving will work than purchasing one. This one has 10W of power, which is currently the highest you can get from a diode laser. If it doesn’t work, I’ll probably just sell it off and go for a CO2 laser.
I’m thinking of also using the laser for cutting product boxes from some nice paper. At least that should work.
Great for cork/rubber gasket cutting too.
If it works, make an extra option for custom text engraving, the laser will pay for itself
v5.02 is officially released
# v5.02 | 2021-12-14
- ENNOID BMS v5.2 support
- improved support for LLT Power BMS (caching MAC address)
- warn that UART needs to be enabled if VESC connection fails
- warn if a reserved CAN ID (10, 11, 173) is used by any VESC
The latest stable firmware is now 5.02 for DAVEGA, 5.02 for VESC, and 5.2 for ENNOID. Welcome to hell!
Nice! Will try it tomorrow
I was dreaming of how to make a better travel build potentially for next year’s Carve PDX, and I might have the opposite problem – would it be possible to have the Davega iterate between multiple smart BMSes in the same board?
Just get some more DAVEGAs.
I’m currently quarantined, so that’s an ideal opportunity to work on the firmware and I’ve managed to get quite a bit done this week.
v5.03 is now available as a release candidate.
There 3 new features:
Pause lifespan tracking for a part
Thanks to @ShutterShock for the idea. This is handy for tracking the lifespan of a part that’s not installed permanently. Maybe you have two sets of tires that you toggle. Maybe you have an external battery that you only use for weekend trips but not for your daily commute.
Here’s how you pause the tracking. It’s completely straightforward:
Restore backup over WiFi
This goes in line with the transition to the DAVEGA v1.2 hardware that no longer has the USB port.
Before, it was only possible to upload data directly from the DAVEGA to the cloud. To restore the backup, you would need to download it to your computer and then copy to the DAVEGA over the USB cable.
Now this can be done directly from the DAVEGA:
WebREPL mode
Another update that allows doing more over the air. This is quite a big thing. I’ll do a separate post on it.
Woohooo! This is awesome, I mentioned this in my last video as something that would make the parts lifespan even more great! This will be perfect for me to use both my street tires and offroad tires in succession.
WebREPL mode
As you may know, DAVEGA firmware is written in micropython. Micropython is very cool and the WebREPL is one of the builtin features that allows you to connect to the device and get an interactive prompt.
With v5.03, DAVEGA will boot into the WebREPL mode if you hold the up and down buttons simultaneously at start up (using the grip).
Here’s how it looks:
DAVEGA will tell you the name of the WiFi access point it has created. Note that once you connect you’ll no longer have Internet so before you do that, you’ll want to open the WebREPL client in your browser, which is available at http://micropython.org/webrepl/.
You’ll want to make sure you have http:// and NOT https:// since the connection won’t work over SSL (we won’t be transferring credit card numbers or bitcoin wallet private keys so don’t worry). Though this may be counter-intuitive, the “Not Secure” warning is actually what you want here.
Now you’re ready to connect to the DAVEGA WiFi:
Then you can hit the “Connect” button in the WebREPL client and it should connect to the DAVEGA. You’ll be asked for a password, which is agevad (I had to put something; it doesn’t work without a password).
Then you should get the Python command prompt and you’re ready to run Python on your DAVEGA. How cool is that?!
For example, here’s one toy thing you can try. Type:
from frozen.display import DISPLAY
DISPLAY.print("hi mum!")
And it will get printed on the DAVEGA display:
There’s also stuff you can do that’s actually useful. In particular the frozen.commands
module contains functions for archiving/restoring the DAVEGA data. On the right hand side of the WebREPL client there are widgets for transferring files to/from the DAVEGA.
If you combine this, here’s how you can get a data backup. Type:
from frozen.commands import backup
backup()
This will archive all the DAVEGA data into a single filed called /backup.dfs
. If you then type /backup.dfs
into the “Get a file” text field and click on “Get from device”, the file gets transferred to your computer.
The other direction is also possible. Say that you have a backup file called backup_from_another_davega.dfs
that you either downloaded from https://davega.eu/backups or created using WebREPL the way I just showed.
In the “Send a file” widget, look up the file on your disk and click “Send to device”. The file name will be retained and it will be put in the root directory, so in this particular case the file path will be:
/backup_from_another_davega.dfs
Now we can go ahead and restore that backup as follows:
from frozen.commands import restore
restore('/backup_from_another_davega.dfs')
Last, the .dfs
files are now stored in the DAVEGA flash memory. We may want to clean it up. Here’s one way of listing the files in the root directory:
import os
os.listdir('/')
Here’s how to remove the files:
os.remove('/backup.dfs')
os.remove('/backup_from_another_davega.dfs')
(The leading slash is not strictly necessary since we’re working from the root directory.)
Being able to run custom code on DAVEGA opens the door for tinkering if you know what you’re doing. Some other things one could potentially do include:
- accessing VESC data programmatically
- changing VESC settings
- accessing smart BMS data programmatically
- changing smart BMS settings
- changing DAVEGA settings (including hidden settings)
- adjusting DAVEGA odometers
- writing DAVEGA plug-ins
Obviously none of this is straightforward and it’s not for everyone. It’s also riding completely without seatbelts and you can easily mess things up if you’re not careful. (Still if you backup everything first, there’s not a lot to worry about.)
Currently there’s no documentation for the DAVEGA APIs and I don’t intend to write and maintain complete documentation. However, if people come up with interesting use cases I’m happy to document relevant parts of the APIs and/or write up guidelines/tutorials.