DAVEGA X Updates

Hahaha no not quite

In short, it’s the ability to have different “board configs” as a whole setup to auto pause components and stuff. Needs more explanation though


Hm, interesting. Do you use one DAVEGA on multiple boards?

Nope but I have multiple completely different setups on the same board

Different battery and wheels, hot swappable


Seconded. I have two battery configs on the same board. Every time I have to go in and change the capacity (button press… hold… wait… miss target… go back). :stuck_out_tongue: really doesn’t take that long, but one click configs would be :ok_hand:


I see. So you need to pause/unpause several items in the parts lifespan tracking whenever you make the swap. Sounds like a perfect use case for a plug-in.

Same for this one.

I’ll give you some code snippets when I have a minute.


Firmware v5.04 released

# v5.04 | 2022-04-21
- allow switching a busy screen
- optionally display motor/ESC temperature on the riding screen
- optionally display duty cycle instead of speed
- optionally interpolate discharged/recharged energy from the master ESC only
- optionally disable charger detection (switch to the BMS screen automatically)
- fix: number rendering
- fix: Metr Pro integration: crashes under specific circumstances if imperial units are used
- fix: LLT BMS: prevent bms.device_info None error
- fix: LLT BMS: charger state update bug

That, and also be able to change the gear ratio at the same time for my three different tire setups

Again like I said I can give more ideas when I get the chance but you’ve got the simple baseline of it

1 Like

Okay, that could also be included in the plug-in. The idea is that you’ll have some boot-up gesture (e.g. hold the down button) that toggles between the two setups and changes all settings as appropriate. What exactly is to be changed will be hardcoded in the plug-in code. I’ll give you an example as time allows.


Maybe it doesn’t necessarily need to be a boot up thing, it could be an additional menu called “Board Configurations” or something

In there you’d be able to add or modify configs, as well as select?

1 Like

The idea of the plug-ins in the current form is that custom code is executed at boot up.

While this code, in theory, could also alter the behavior of the DAVEGA firmware (e.g. add new menu items), it’s not easy to do and would be somewhat hackish.

However, it would be possible to create a custom menu that’s triggered at boot-up and gives you more options than just toggling between two setups. It’s a similar idea to changing the BIOS settings on your computer. There you can also only enter the BIOS at boot-up by holding a combination of keys. It also gives you a simple menu.


Sounds interesting, will be cool to see what you come up with


Hey Jan, do you have any info on when raw housings will be back in stock?

1 Like

Hi, they are available but they don’t have the laser engraving. If you don’t mind that I can ship straight away. ETA for doing the laser engraving is 1-2 weeks.


Alright, thats no problem, thanks. Your shop system will get stress tested though, because my gf will order and she’s not that good with english. :smiley:

1 Like

I can’t update to v5, the last I have is 4.09

1 Like

you have to update it by plugging it in to a computer


I see. Why is that? I can get the other versions just fine via Wi-Fi.

Edit: nvm, found it


Here’s a plug-in that you should be able to modify and use:

from frozen.display import DISPLAY
from frozen.buttons import BUTTON_UP
from frozen.config import load_config, save_config

BATTERY1_MAH = 15000
BATTERY2_MAH = 20000

# hold button-up at start up to trigger the switch
if not BUTTON_UP.value():
    config = load_config()
    if config.battery_mah == BATTERY1_MAH:
        new_battery_mah = BATTERY2_MAH
        new_battery_mah = BATTERY1_MAH
    DISPLAY.print("switching battery mAh to %i" % new_battery_mah)
    config.battery_mah = new_battery_mah

start.py (534 Bytes)

Here’s how to install it:

And here’s a demo of how it works:

Here’s a list of all config options (as of firmware v5.04):

class Config:
    motor_pole_pairs = 7
    motor_temp_sensor = True
    wheel_diameter_mm = 100
    motor_pulley_teeth = 15
    wheel_pulley_teeth = 40
    motor_count = 2
    cells_in_series = 12
    cell_type = "liion"  # liion, lipo, lifepo4
    battery_mah = 12000
    battery_usable_capacity = 0.8
    imperial_units = False
    farenheit = False
    wifi_ssid = ''
    wifi_password = ''
    wifi_connect_timeout_secs = 10
    delay_switch_screen_on_stop_secs = 5
    delay_switch_to_bms_screen_secs = 5
    riding_screen_main = "speed"  # speed, battery_amps, motor_amps, duty, speed_and_motor_amps, speed_and_battery_amps, speed_and_motor_temp, speed_and_esc_temp
    initial_distance_km = 0
    show_unexpected_restarts = False
    show_total_voltage = True
    reset_session_on_charge_up = False
    max_cell_voltage_diff = 0.1
    get_voltage_from_bms = False
    backup_each_km = 10
    range_ramp_up_km = 1.0
    bt_enabled = False
    update_interval_ms = 100
    project_energy = False
    detect_charger = True
    parts = [
        {'name': 'motors', 'new_km': 0},
        {'name': 'wheels', 'new_km': 0},
        {'name': 'belts', 'new_km': 0},
        {'name': 'VESCs', 'new_km': 0},
        {'name': 'battery', 'new_km': 0},


This is pretty neat, I’ll have to install this on mine while you continue working on the other part of the board config thing

Version 5.04 is not working with vesc 6.0 error msg says that only 3.x - 5.x version of vesc fw are supported, or something…