Giter Site home page Giter Site logo

owie's Introduction

Owie

Gitpod Ready-to-Code

This project unlocks battery expansion possibilities on otherwise locked OneWheels, adds WiFi-based monitoring of various battery health signals such as individual cell voltages, current, etc.

Disclaimer

The authors and contributors of this project are in no way affiliated with Future Motion Inc. OneWheel, OneWheel XR, OneWheel Pint, OneWheel Plus, etc are registered trademarks of Future Motion Inc.

This is a hobby project for its contributors and comes with absolutely no guarantees of any sort. Messing with your OneWheel in any way voids its warranty and could potentially lead to property loss, injuries or even death. Don't be silly and use this project at your own risk.

Features

  • Unlocks battery expansion capabilities on Pints and XRs.
  • Displays correct battery percentage in the official OneWheel app.
  • Defeats BMS <-> Controller pairing and allows you to use any Pint or XR BMS in your board.
  • Shows various stats about your battery on a web page through WiFi - Voltage, current, individual cell voltages and more.
  • Supports future firmware updates via WiFi - no need to reopen your board.
  • Adds password protection to your board

Installing Owie into your board

Prerequisites:

  • Have essential soldering skills and tools: Soldering iron, some 22 gauge or otherwise thin wires, fish tape or isolating tape.
  • Be comfortable with opening your board's battery enclosure.
    • For the PINT you require a somewhat exotic Torx 5-point security bit, size TS20. Amazon link
    • For the XR+ you will need a 3/32" Allen key. Amazon link
  • Wemos D1 Mini Lite - the cheapest and most compact ESP8266 board that I'm aware of. You can find those on Aliexpress and Amazon. Buy version without the metal shield or ceramic WiFi antenna on it as they're too bulky to fit inside of the battery enclosure. 5 pack Amazon Link.

Flashing Owie for the first time

  1. Download the latest firmware.bin.
  2. Follow the instruction on the ESP WebTools page here. Note that firmware flashed through this website might be older than the latest official release. To make sure that you're running the latest version, follow the instructions in the "Updating Owie" section below after the initial flash.
  3. Verify the flash success: When the chip is on, you should see a WiFi network called Owie-XXXX. Connecting to it should send you straight to the status page of the Owie board. Don't worry about the data because the board isn't hooked up yet.

Installation into the board:

NEW: Follow this step-by-step installation video made by one of the community members - https://www.youtube.com/watch?v=HhKdwnYUbA0

Or follow these instructions below:

  1. Install Owie firmware onto your Wemos D1 mini as instructed above.
  2. NEW: I highly recommend physically removing the reset button from the chip with pliers to exclude possibility of it accidentally getting pressed while inside of your OneWheel.
  3. Disassemble your board and open the battery enclosure.
  4. Disconnect all wires from BMS, strictly in the following order:
    1. Battery balance lead - the leftmost connector (24 wires) on the BMS.
    2. Battery main lead - an XT60 connector on the rightmost side of the BMS.
    3. All the other wires to the BMS, the order here doesn't matter.
  5. Prepare your Wemos D1 Mini and BMS:
    1. Tin 4 consecutive pins on Wemos D1 Mini marked as TX, RX, D1, D2 as well as 5v, GND pins.
    2. Solder a small wire on the top of the board connecting the pin marked as TX to the pin marked as D2
    3. Solder power pickup wires to the BMS. The JWFFM chip installation video demonstrates this well - YouTube: Power pickup from BMS
    4. Cut the WHITE and GREEN wires from the three-wire connector around 3/4 of an inch from the connector. Wrap the Green wire leading to the BMS(the 3/4 inch stub) in an isolating wire as we won't be needing it. Tin the other three wire endings, you'll be soldering those to the Wemos D1 Mini. Again, JWFFM install video has a good demonstration of this: YouTube: Cutting GREEN and WHITE wires
  6. Connecting wires to your Wemos D1 Mini. I found it much easier to solder these to the bottom of the board:
    1. Connect the GROUND wire from the BMS, the middle wire out of the BMS 5 pin connector to GND on Wemos D1.
    2. Connect the 5v wire, the other one from BMS to the 5v on the board.
    3. Connect the WHITE wire RUNNING TO THE MAIN BOARD to the TX pin on the board.
    4. Connect the GREEN wire RUNNING TO THE MAIN BOARD to the D1 pin on the board.
    5. Connect the WHITE stubby wire running to the BMS to the RX pin on the board.
    6. Cover the bottom of the Wemos D1 mini with either fish tape or isolating tape so that none of the exposed soldering joints have any chance of contacting anything on the BMS. I also put a bunch of tape on the top of the board, just in case.

DONE!

Troubleshooting:

Board reporting battery at 1% after install

If after installing OWIE into your board it reports that your battery is at 1% even though it shouldn't, plug your board into a charger. This problem occurs because the BMS goes through a state reset and doesn't know the status of the battery, and plugging the board into a charger corrects this issue by forcing the BMS (and controller potentially) to do a state check.

Pictures demonstrating soldering points on the board:

How it looks in my setup:

Board Locking functionality

TL;DR: You can immobilize your board by quickly power cycling the board. Once immobilized, you unlock the board by logging into Owie WiFi, tapping a button and power cycling the board. Keep reading for details.

WARNING: Arming your board for parking will disable the emergency recovery mode (2 restarts), so if you forget your network password, the only way to recover is to reflash via USB. The normal OTA update mode will still be functional as normal (see below for OTA instructions). Disarming the board will restore the emergency recovery mode.

Use these instructions if you want to be able to 'park' your OneWheel using the power button sequence. The park functionality comes by interrupting all communication between the BMS and the controller, thus causing an error 16.

This functionality can be removed quite easily by someone motivated enough and with enough knowledge; all that's required is to open up the board, remove Owie and solder the wires back together, or to reflash it via USB.

Setup

  1. Set an Owie network password in Settings.
  2. Tap the Arm button in Settings. This arms your board so you can put it into 'park'.

Parking your board

When you need to park your board, turn it on and then off in less than 5 seconds.

Un-parking your board

Use these instructions to un-park your board so you can go ride.

  1. Power on your board normally. Ignore the error 16 (that's how the board gets parked).
  2. Connect to your password protected Owie network.
  3. On the status screen, click the Unlock button.
  4. Then as the button will remind you, restart your board to get rid of the error 16.

Updating Owie

Use these instructions to update your Owie installation over WiFi (OTA).

Using OTA

These instructions will work so long as you can connect to your regular Owie-XXXX network.

  1. Download the latest firmware.bin from the Releases tab.
  2. Once you have your hands on a firmware.bin file, copy that binary onto your flashing device of choice (desktop, laptop, phone). Some phones might not let you select the binary, thus you will need to use a computer.
  3. Bring that device close to your board and ensure that your OneWheel has at least a few percent of battery left in the tank.
  4. Connect to your normal Owie network Owie-XXXX and navigate to your normal Owie IP (192.168.4.1).
  5. You should see the Owie menu load as normal.
  6. Click "Settings" button, hit the "Browse" button in the Firmware section of the page and select the firmware.bin.
  7. The page will look unresponsive during the file upload, do not refresh it.
  8. Once the file is uploaded you will see a success message. DO NOT CUT POWER TO OWIE until it's WiFi is back on. Doing otherwise will brick your Owie and you'll have to re-flash it via USB.
  9. Connect to the normal Owie network, and check that your update has worked.
  10. Enjoy.

Recovering an Owie flash

These instructions are for if you somehow manage to bungle flashing your wemos OTA. They are the last step you can reasonably take before having to remove the chip from your board and flash it using a USB cable.

  1. Follow the instructions above for how to build Owie from source using gitpod (or grab a release binary if they're available).
  2. Once you have your hands on a firmware.bin file, copy that binary onto your flashing device of choice (desktop, laptop, phone). Some phones might not let you select the binary, thus you will need to use a computer.
  3. Bring that device close to your board, and ensure that your OneWheel has at least a few percent of battery left in the tank (don't have it plugged in though).
  4. Power cycle the OneWheel 2 times (reboot it) in less than 3 seconds. Keeping your app connected can be useful here as once Owie makes it into recovery mode, your board will report an error 16 (don't worry, this is supposed to happen).
    1. On XR's your headlights will come on as normal, but after a few seconds they will dim and then totally turn off, followed by your power button light flashing rapidly to indicate that error 16.
  5. Connect to the WiFi network named Owie-Recovery and navigate to your normal Owie IP (192.168.4.1).
  6. You should see the firmware upload dialog. Point the file selector to the firmware.bin and wait for it to upload.
  7. Either check for your normal Owie WiFi network to come back online, or in the app you should see battery percentage being reported again. Once either of these things occur (preferably both), you can restart your board to reset the error 16.
  8. Connect to the normal Owie network, and check that your update has stuck.
  9. Enjoy.

[For posterity's sake] Things I've found during the development:

The BMS (Battery Management System) board, located in the battery side of the OneWheel, communicates with the main board via RS485 protocol. Details that I've managed to discover so far:

  • The communication is unidirectional. The data flows only from BMS to MB. It's 115200 baud, standard 8N1 framing.
  • The RS485 bus signaling voltage seems to be 3.3v. This makes it possible to read the bus voltages directly via ESP8266 and doesn't require 5v -> 3.3v level shifting.
  • Both ends of the RS485 bus are terminated properly - 120-ohm resistors across the A and B lines and pullup / pulldown resistors A and B lines correspondingly.

Doing away with MAX485 drivers

Technically, we'd need to use RS485 drivers such as MAX485 to intercept and retransmit bits on the line, however so far it seems like we can do away with them:

Receiving RS485 directly via hardware UART:

The A (high) line of the RS485 bus coming from the BMS can be read directly via hardware UART with a little care.

When the line isn't driven by the BMS transmitter, it hovers around 3.3v/2 = 1.6v due to the terminating resistors on the BMS side. 1.6v isn't a defined logic level for a GPIO pin so chances are we'll read spurious data. However, if we turn on the pullup resistor of the UART RX pin to which the A line is connected, the bus idle voltage gets pulled up to right above 3 volts, which is more than 0.75*VDD necessary for a logic 1 input, mentioned in ESP32 datasheet. This way the A wire from the BMS can be fed directly into the UART Rx pin and its logical state will read 1 at line idle, just as we want for UART communication.

Transmitting RS485 without the driver

Transmitting the data to the MB requires us to signal on two wires. The A wire of the RS485 can be connected directly to the output of a hardware UART. The B line must be inverse of the A line as RS485 uses differential signaling. I've achieved this by simply attaching a pin change interrupt to the UART TX pin and bitbanging the inverse value of this pin to the B line of the RS485.

Communication protocol

The data frames sent by BMS are of the following general format:

  1. Preamble - 3 bytes, fixed: FF 55 AA
  2. Message type - 1 byte. I've so far observed all values between 0 and 0xD, inclusive, except 1 and 0x10
  3. Message body - variable length but fixed based on the message type above.
  4. Checksum - last two bytes of the frame - simply sum of all of the bytes in the frame, including the preamble.

Message types:

I've isolated all message parsing code in src/lib/bms/packet_parses.cpp, the code should be self-explanatory.

owie's People

Contributors

jared-is-coding avatar jordanvlieg avatar lolwheel avatar mretich avatar ow-breaker avatar thibauddavid avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

owie's Issues

Realtime updates in browser window?

Is it possible to have realtime updates when connected to the browser window on a phone?

Instead of having to refresh the page to check balancing and all that?

OWIE connection issue

It seems that after setting OWIE to connect to my home Wi-Fi, I can’t seem to connect to OWIE if im out of range of my home Wi-Fi.

Naming conflict

Hi !

I see that you just changed your project's name from ow_bms_mitm to OWEnhancer
However, this is already the name of my iOS Cydia tweak OnewheelEnhancer.

Would you mind finding another name which would avoid any confusion between both our projects ?

Thanks

Hitting the back button in wifi settings saves

Going into the wifi settings and then hitting back saves 'changes' and reboots setting the password to whatever 3 is the default in the password field. This does not appear to be an intentional userflow.

Did not charge

since i installed owie…
if i take a x minute break while a ride the app thinks i'm charging the Onewheel.

E185907C-F074-423D-B203-FD3BA1019A43

DE6A9A54-202E-44F7-AF88-793728438A63

error 23

HELLO,
since July I have an error code 23: Incompatible hardware detected, in the official android application (and on the OW itself by 23 blinks on the power button).
I didn't make any changes on my OW XR....my firmware is 4210....
I tested my battery with OWCE and everything is fine.
I am located in France and with the new air freight rules I cannot return the OW to Future Motion in California. So I'm desperate to find a solution....
It looks like OWIE might be able to help me with my problem. What do you think?
Thanks a lot....

After platformio.ini changes the OTA binary flash does not work anymore.

Hi,
after your changes in the platformio.ini file, the OTA Update returns with an 400 HTTP Error containing following response: "OTA could not begin".

I was tracking this issue down to the change where you switched a lib_dep from "https://github.com/me-no-dev/ESPAsyncWebServer@^1.2.3" to "me-no-dev/ESP Async [email protected]"

After the change the lib loaded "[email protected]" AND "[email protected]"
while the old dependency only fetches "[email protected]" and omitting the "ESPAsyncTCP" library...

Here is a trace using "me-no-dev/ESP Async [email protected]"
Library Manager: ESP Async [email protected] has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing ESPAsyncTCP
Unpacking [####################################] 100%
Library Manager: [email protected] has been installed!
Library Manager: Installing AsyncTCP
Library Manager: Warning! More than one package has been found by AsyncTCP requirements:
Library Manager: - me-no-dev/[email protected]
Library Manager: - kubafilinger/[email protected]
Library Manager: Please specify detailed REQUIREMENTS using package owner and version (shown above) to avoid name conflicts
Unpacking [####################################] 100%
Library Manager: [email protected] has been installed!

and here the trace using "https://github.com/me-no-dev/ESPAsyncWebServer@^1.2.3"
Library Manager: ESP Async [email protected]+sha.f71e3d4 has been installed!
Library Manager: Resolving dependencies...
Library Manager: Installing me-no-dev/AsyncTCP @ ^1.1.1
Unpacking [####################################] 100%
Library Manager: [email protected] has been installed!

I know the ESPAsyncTCP IS used in the code, and NOT the AsyncTCP (since the later one is not used in esp8266
afaik) and I really have NO clue why it still works even when the ESPAsyncTCP is NOT loaded as dependency...
I guess it is included in the GIT (dev) version, but NOT in the Release ?

Nevertheless, this change causes a file size change of the resulting firmware binary from ~447k to ~645k.

I have no clue if I´m correct here, but I think this is the issue why ElegantOTA is not able to flash the binary file...

Pint X support?

Will this work on the Pint X? I just really want to see the cell voltages.
Thanks.

No Battery range in the FM app

Hey is there a way to get the range display back? I'm wondering what the green wire going from the OWIE to the controller is for exactly? Can that be the range indicator? OW Pint X on 5076 firmware

Onewheel battery operating "out of safety range"

A major update on the OW (XR) was done recently and 150 miles went by with no issues. Now I am getting "out of safety range" message followed by OW will not operate afterwards. It has to be a safety feature but I really do not know how to fix it. This only happens when the weather is over 80 degrees.

When riding I will get below message and after stopping I cannot keep going since the OW will not engage. Shutdown and restart does not matter.

FMM chip removed and replaced with Owie. FMM made my OW nosediving on my with "error 22" messages.

OWIE installed - working flawless until this latest strange reading.
JWXR installed - working

Original Hardware: 4212
New BMS: 4209 (original 4212 got fried)
Firmwate: Gemini -4155

Battery indicates 32 Farenheit......clearly not reading &/or not working correctly.

I use a:
Iphone 12 pro
IOS 15.6

Any input would be mighty appreciated.
IMG_4021

IMG_4010 (1)

Hardware versions beyond 5314 and Software 5050

Hello, I am purchasing a Pint that has a hardware revision beyond 5314 and has been upgraded to the latest firmware already. Does Owie work with the newer hardware versions and the latest update as of now? Will there be any issues installing the new battery (such as the firmware bricking when unplugging BMS like on the GT)?

Thanks

converting voltage to % remaining

The following formula can be used to convert voltage into % remaining on an idle XR. It works with a CBXR, and so would work with a JWXR. I don't know how it would work with VNR.

         99.9
-----------------------   -  10
0.8 + 1.29^(54-voltage)

Also, I updated pOnewheel and Onewave for my Two-X to do a pretty good job showing the % remaining while moving at about 10 MPH. Maybe, we could try a new way to do that here, so you don't have to stop riding to check your % remaining? In those apps, I had access to a lot of variables, we may not be able to do this with just the variables output by the BMS.

I think JW just drops the amp usage statistics because FM combines them with other variables to stop the board. However, I think it would be worth manipulating them to cause the main app to actually report correctly. For example, we could divide them by 10 maybe, then apps like OWCE could have an option to multiply by 10, and then report some of these statistics to the user in a reconstructed fashion.

The solution should always pass through the individual cell voltages also, because these are important for troubleshooting when they are available.

d1 mini recommendation in the readme has no stock

the amazon link you include in the readme is for a product that has no stock and may not get any more. also they seem to be a ripoff of the actual d1 mini. looking for alternatives i found several products with reviews pointing out issues where lower quality parts were used instead of the spec of the official wemos (now lolin) d1 mini series.

https://www.wemos.cc/en/latest/d1/d1_mini.html has links to their official aliexpress store.

not sure if this is official being resold or a ripoff but i found this which has stock and if not official seems to be the best counterfeit.
https://www.amazon.com/Development-MicroPython-Nodemcu-Arduino-Compatible/dp/B07H22CDQ8

Owie Flash Problem

When using Ow-breaker to download Owie on a ESP8266, it give me an error stating "Failed to execute 'open' on 'SerialPort': Failed to open serial port." Can anyone help me and tell me what I'm doing wrong?

D1 Mini lite version Compatibility

Hi,
Im from the UK and have been keeping an eye on this as i have a ChiBattery modded 4210/4150 with limited range due to the firmware version.

Its, difficult to source a WeMos D1 Mini Lite here. Well, actually what i mean by that is that its difficult to source any "lite" versions here as they all seem sold out, even on aliexpress if im reading things right.

It is possible to source D1 mini V3.0.0's and to my eyes they look identical, apart from having 4mb for example - https://www.ebay.co.uk/itm/313603433691?hash=item490438a4db:g:cFQAAOSwwMBf7MQa

Can you advise if this is compatible? The size and shape look the same so i expect it would fit but i dont know much about these chips so i thought i would ask.

Im not sure if the mini and the "lite" are similar or functionally different, compatible or otherwise.

It may be handy to list in your Wiki which chips from the range would work?

Finally, is this ready do you think yet?

Many Thanks for your work on this project.

Quart battery %

A fully charged Pint with Chi Quart is reading 94%.
All cells are healthy.

Using a Onewheel Pint BMS in an XR with the OWIE chip

I notice in the code there is a spoof function for the serial number is there any reason we cannot use a onewheel pint BMS in an XR the XR bms is broken and I think that the pint and the XR work off the same info so as long as I spoof the serial it should work correct?

% reading setting off bms error

Why is 4.14 considered 100%? I’m having an issue when battery reaches 4.2, all the cells start burning off until it gets down to 4.1

XR isn't charging fully after OWIE install

When I charge my XR (stock battery) after riding, it doesn't seem to charge fully. I have to unplug it and plug it back in for it to charge more. The below pictures show it "fully charged". The first two pics were taken within a minute or two max of each other.
The second two are a few hours charging, after unplugging and plugging it back in. This happens every time. I even swapped chips, thinking there was something wrong with the first one.

Initial Full Charge:
Screenshot_20221012_152822_CaptivePortalLogin

Unplugged Initial Full Charge:
Screenshot_20221012_152847_CaptivePortalLogin

2nd Full Charge:
Screenshot_20221012_190855_CaptivePortalLogin

Unplugged 2nd Full Charge:
Screenshot_20221012_190919_CaptivePortalLogin

Board went out while driving

I rode normally my onewheel was at 7% bms and 5% overriding it was my first ride with the chip. Suddenly my board switches off and I'm flying across the street. I immediately looked at the voltage it was at 50V then I see that I got the error 16 I was able to turn the board back on but I carried it home. I don't know why or what happened, I'm fine, I've got a few injuries but nothing is broken.

Quart error 16

I have two v4 wemos d1 minis, Ive tried both with the latest version OWIE and a few older ones. I can remove them and put the wires back to stock and error 16 goes away. Checked continuity in the harness and nothing gave me problems. Ran around all day without the chip without problems. I double checked the "park" feature wasn't on, and even cycled though it once to verify it wasn't popping on in the stock flash for some reason. I would imagine there isn't a difference in the v3 to the v4 besides the physical printed labeling of the ports. White in from BMS to RX, White out to TX. TX jumped to SDA. Green out from SCL to controller. BMS green closed off. It powers on, It reads the cells fine. It shows signal out to controller. Currently running FW5040 with BMS lock turned off. I have about 15 hours into this, and a bald spot at this point.

Incorrect Battery % vs Battery Voltage

Apologies if this is in the wrong place (please let me know where to post if needed).

Onewheel XR (4212/4161; cbxr; OWIE).

OWIE was working fine with some lag in showing correct battery % in onewheel app. I noticed that OWIE showed version 0.0.1. I decided to update to 1.4.3.

Now the OWIE status reports significantly incorrect values (see attached screengrab) - Battery Voltage 57.30V (which is 70+%), but BMS reported SOC - 43% and Overide SOC 21%.

Did I update with the wrong firmware? Any guidance would be welcome. Thank you

Screenshot_20240204-112335
cbxr battery chart

can you write a todo

Hello ,
First i will congratulate you for your work and to have share it! I think that's realy usefull.
I'm onewheel owner , i'm in a Belgium group of onewheeler.
I'm little knowledge on arduino,esp.
We are many to have mistake with board ( maybe to swap board and repair ) , or have add a battery (to a have a good reading).
I hope help my community with your project , and maybe help you with report..
If you can write a todo to inject all data in the wemos, normaly i code for my own i use only the library from other, i never use a entire code of other.
Thanks anyway , best regard.

Overridden SOC Not matching BMS Reported SOC after full overnight charge.

I am trying to see if this is an issue or by design. The BMS reported SOC and the Overridden SOC are not the same value even after leaving the onewheel pint on its standard charger overnight. I updated to version 1.1.0 this morning to see if that improved the reported value but am not seeing the values match when I believe they should. I think the piece that I am missing is when you are not using a third party battery or external battery like the GT40 are the BMS reported SOC and Overridden SOC supposed to be different?

Onewheel_OWIE_Values

I would like to contribute to the project, I am just having a bit of difficulty getting up to speed. My setup is original BMS, original main board, and stock battery. I purchased the GT40 mod which is one of the main reasons I wanted to use the OWIE chip to unlock battery options, but am not seeing the GT40 battery percent being registered on the lights on the board. I ran the board's battery all the way down to 0 last night with the GT40 still attached and could continue riding with the OWIE app reporting I still have 56% battery left, but the board its self reports 0 with the yellow low battery light staying on.

Scope of this project - some additional ideas for features

I've made q schematic of how I understand this system to work currently and wondered whether this could be extended with the following features:

  1. Current sensor to measure actual current draw and sum mAH usage. This should lead to a more accurate battery remaining and a live current draw.
  2. Additional input for second BMS - perhaps from an external battery extended unit
  3. An App over BLE - Battery health, usage, individual cells, temps, mAH remaining. Alarm for current draw? No more unexpected low battery nose dives?

Is my understanding of this system through the schematic correct?
Do you think these would be interesting features to develop with the project?

Thanks

OWE

BMS reported SOC always at 0%

As the title says, the "BMS reported SOC" is always at 0% in the Owie web interface. I have plugged the board in, rebooted it, and ridden it for a bit, but it stays at 0%.

I have verified that my wiring is correct, and the Owie does report the charge to the main board (aka "overridden SOC" is correctly displayed both in the web interface and the OW app).
The board is an XR and the battery is the stock XR battery, I have just added the Owie for the data it gives me.

As I cannot read what's in the "monitor BMS data" page to tell if it's a problem with the BMS or with the Owie, I'll attach it under here.

Main page in the interface:
Screenshot_20220409-024224

Monitor BMS data page:
Screenshot_20220409-024255

LED support?

Hi,
is it possible that you add support for battery level shown on a Adafruit NeoPixel Stick (Like Pint/GT status light)?

Battery percentage display for cbxr/jwxr

Hi, I'm running JWXR and the cell voltage range from 3v to 4.2v, according to the jwxr battery voltage and percentage chart https://cdn.shopify.com/s/files/1/0468/7252/7001/files/Battery_Voltage.pdf?v=1599258331 The current lookup table drops percentage to 0 way too fast for jwxr.

The correct percentage lookup table for jwxr/cbxr should be this:
static constexpr uint16_t lookupTableRangeMinMv = 3000;
static constexpr uint16_t lookupTableRangeMaxMv = 4170;
static uint8_t lookupTable[11] = {0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100};

I understand that the current lookup table maybe is for the stock battery, and the stock battery has a different chemistry, which has differnt min/max voltage. For now, I'm updating the lookup table locally and building custom firmware for my jwxr. But instead of updating the lookup table, I think the longterm solution is to have an option in the UI to set custom min/max cell/total voltage for interpreting percentage. This allows owie cover different types of battery.

Green wire

What would happen if you connected the green wire that gets left loose in the same spot as the other end of the green wire on the chip?

Chi and JW compatibility

What is the state of using these to install bigger batteries in the newer hardware versions? I unfortunately don't think I can help work on this. I only took 2 coding classes in college and haven't kept up my skills since then.

Reset Wifi name doesn't work properly

Action:
Set custom wifi name with or without a password

Symptoms:
After saving, wifi will disconnect.
Wifi name stays the same but can't connect to it anymore.

Version:
Tried 0.0.1 and 1.0.0. Same result

Recovery:
Recovery works with the 3 power cycle reset and a binary flash

OWIE - Overridden SOC never under 5%

Hi, Onewheel Pint (5314 - Gemini 5050) with Quart Battery will never Captain Morgan (low battery).
Lowest Overridden SOC is 5%, what should i do?
Regards

owie

Buzzer support

Nice work on this project! I am planning to modify your code to enable a buzzer which would warn of impending pushback, i.e. when battery-to-board current goes above a certain threshold. Are you thinking to add this type of feature at some point?

overcharge warning and shutoff

It seems like Owie is swallowing the overcharge warning and shutoff alerts from the BMS to the Main controller. I live at the top of a hill and always got both before I wasted enough battery to have room for downhill charging, before I put in Owie. Now I never get them. I did capture an Owie status with an 08 in the status byte ("ff 55 aa 00 08 02 06"). I tried adding a line to the packet parser to pass that status through, and I did get an overcharge shutoff. Maybe there is another bit for the warning?

Screenshot_20220503-165647

BMS reports 0%, Overridden SOC reports 67%, and the Battery has 56.88v, but the board won't let me ride

I am trying to diagnose this issue and will include a screenshot. Basically the BMS reports 0% which after a few seconds shuts the board down even though the battery voltage is at 56.88v. Where should I be looking to find the issue?

Onewheel_OWIE_BMS_0

Forgot to mention that I had this on the charger and had both the BMS and SOC reporting above 95%. I was able to ride the board and was not seeing any issues until a mile or two into the ride.

4206 BMS won't power D1 Mini Lite once TX is connected

Hi,

Following up the discussion we had a while ago on Discord, I got time to dig a bit more into the issue I have.

When installing Owie on a 4206 BMS, the D1 Mini lite won't power up (no light at all on it), if motherboard-white is connected to TX.

If I desolder this wire, D1 powers up without issue.

A little video demonstrating the problem:

IMG_9042.mov

I've tried multiple combination, and the only explanation I came to is that 4206 don't start delivering current through PROG1 until some condition is met.
My theory is that there could be a (now legacy) header sent, that owie somehow absorbs, preventing the BMS to fully power on.
Another thing that makes me confirm this, is that if I use an external power source to power on my D1 when fully connected to bms+motherboard, D1 successfully powers up, but there isn't any data showing up on BMS monitoring.
I tripled check all connections several times, and even tried with another D1 Mini Lite, so I'm 200% sure it's not a connection/hardware issue.

Here is my BMS data as soon as I boot my XR, with TX disconnected + D1 powered externally (to be able to capture earliest bits). There might be something odd in there which only happens on 4206 (as I think this is currently the only BMS Owie wasn't successfully installed on)

RPReplay_Final1649792809.mov

Not sure what other information I could provide to help debugging this.

Wemos D1 mini is the smallest really?

Hi, reading trough the readme and comments people have on this project I started to wonder if ESP-01 module would be much better fit. It is much smaller board that would be better fit into already crammed compartment.
Just an idea.

Compilation failed due to deleted function

In the bms_main.c file, there is a reference to a removed function on line 43, addPacketCallback. Replacing this call with addReceivedPacketCallback results in a successful compilation.

Compiling .pio/build/d1_mini_lite_clone/lib5c2/ESP8266WiFi/ESP8266WiFiSTA.cpp.o
src/bms_main.cpp: In function 'void bms_setup()':
src/bms_main.cpp:43:10: error: 'class BmsRelay' has no member named 'addPacketCallback'; did you mean 'PacketCallback'?
   43 |   relay->addPacketCallback([](BmsRelay*, Packet* packet) {
      |          ^~~~~~~~~~~~~~~~~
      |          PacketCallback
*** [.pio/build/d1_mini_lite_clone/src/bms_main.cpp.o] Error 1
====================================================================================== [FAILED] Took 62.79 seconds ======================================================================================

Environment         Status    Duration
------------------  --------  ------------
d1_mini_lite_clone  FAILED    00:01:02.787
================================================================================= 1 failed, 0 succeeded in 00:01:02.787 =================================================================================

GT support?

Are there any plans for GT (and possibly GTS) compatibility?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.