lolwheel / owie Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Will this work on the Pint X? I just really want to see the cell voltages.
Thanks.
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
Trying to update to the latest firmware over WiFi, but following the guide, I don't see the "browse" option to upload it.
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 =================================================================================
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.
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
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.
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?
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.
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?
Hey guys,
do you think it will also work with the AZDelivery D1 Mini NodeMcu with ESP8266-12F???
AZDelivery 3 x D1 Mini NodeMcu with ESP8266-12F
thx
Tracker so that I don't forget fixing this,
A tracker for me not to forget about this issue.
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?
Why is the ESP WebTools page ow-breaker not recommended atm?
worked for me
thou v0.0.1
is it recommended to use 1.1.0
?
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.
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.
Hi,
is it possible that you add support for battery level shown on a Adafruit NeoPixel Stick (Like Pint/GT status light)?
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.
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.
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
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:
Is my understanding of this system through the schematic correct?
Do you think these would be interesting features to develop with the project?
Thanks
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.
Would it be possible to add cell voltage indicator rather then just listing them out? same thing with temp sensors
Line 94 in 37dfd37
This could probably be moved upstream to lib/bms/bms_relay.h
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?
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.
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
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
which software suite
what files to chose ...
or a link to a tut where you see how to do it.
think a few descriptive keywords in the readme would already do it.
i would write it if i knew how to do it
would be great
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....
A fully charged Pint with Chi Quart is reading 94%.
All cells are healthy.
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
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?
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...
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.
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.
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.
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:
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)
Not sure what other information I could provide to help debugging this.
When ever im trying to transfer the firmware it tells me com fail in the esp tool. Any ideas?
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
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.
Are there any plans for GT (and possibly GTS) compatibility?
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
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?
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?
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?
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.
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.