Hello, I was wondering if a JK BMS could be used in place of a PSM for BlueOS.
A PSM is listed as required in BlueOS documentation. We instead ordered a JK BMS for our custom made battery and was wondering if we could hook up the BMS to the light computer or our PI4 to act as the PSM and also separately log the data using its own software.
Its software looks to only have windows download so I don’t have much hope of it but otherwise it would be very helpful if it could replace the PSM without much work on our end. I wanted to ask incase anybody has used something similar before
If not, is there a way to disable or bypass the PSM requirement to log out third party BMS separately using NodeRed?
Hi @BerkY -
How does your BMS communicate? If it outputs analog voltages that represent scaled values of battery voltage and current, it might be possible to connect it to the appropriate Navigator power inputs and adjust the gains accordingly.
If it communicates digitally, you could likely receive and log the data in NodeRED or a python script - this may be a good thing to turn into a BlueOS Extension!
You could disable the failsafe checks that require values from the PSM, but you wouldn’t know your battery voltage / current in the general system control interface… and you don’t wan’t to over-discharge your battery!
Sorry for the late reply. This does clear things up a bit.
Just to confirm, we will:
Disable the failsafe to bypass the PSM requirement
Make a custom NodeRED flow to read out the voltage and current values and display on the dashboard
I did find a datasheet detail the communication procedure and a python code to request the values. I’m in the process of translating that to NodeRED. Thank you.
Additionally, to confirm:
The BMS we have communicates through an RS485 port so we are planning on using a RS485 to USB converter and plugging it into our pi4. Then using Serial Request blocks to get a reply through the USB port. Are there any serial restrictions on BlueOS or any other problem with this set up?
Hi @BerkY -
Yes, disable the failsafe parameters to get rid of warnings. You can refer to this guide for the NodeRED side of things. @williangalvani might have some ideas on how voltage and current measurements could be sent to the autopilot via Mavlink2Rest so the values appear in the expected location in QGround Control or Cockpit.
on a side note NodeRed extension seems to stall on start up sometimes and just never becomes available on the side bar.
18 Jun 16:39:59 - [warn] Encrypted credentials not found
18 Jun 16:40:00 - [info] Server now running at http://127.0.0.1:1880/
18 Jun 16:40:00 - [info] Starting flows
./entrypoint.sh: line 14: 9 Segmentation fault (core dumped) /usr/local/bin/node $NODE_OPTIONS node_modules/node-red/red.js --userDir /data $FLOWS "${@}"
I tried restarting, powering off and reinstalling the extension but seems to never become available. Is this a common issue and if so is there a fix?
Hi @BerkY -
That is not a common issue, I don’t believe it’s been encountered before! Can you share your BlueOS System logs, found in the gear icon in the lower left of BlueOS? I would guess this is related to your active flows, does it still occur with no flows present? What sort of flow are you using currently is it possible to share this as well?
system_logs.zip (6.4 MB) flows (2).json (15.1 KB)
Here are the system log files and the current flow I imported that I was working on. The flow didn’t have the serial request block, I added it into the flow and selected a serial port to start debugging and finishing up the flow. A couple minutes later Node-Red crashed and I couldn’t open it back up again.
UPDATE: I uninstalled the Node-RED extension and downloaded v1.0.3, I then removed the serial-request node and a global-config node which it was giving me errors about. I was then able to update up to v1.1.0 and I still have access to Node-RED through the side bar extension. It seems to have resolved it