0

I am trying to connect Feyree smart EV charger with Dynamic Load Balancing to DTSU666 smart meter via RS485.

Dynamic Load Balancing is a function of EV charger that lets you dynamically change charger output depending on reading from your energy meter (home consumption) to limit total consumption to a set current.

The only issue is selectable current range on EV charger is 20-100 A. I want to use this setup with solar panels so it can limit charging current depending on solar power in a way that total power output from my house (on bidirectional energy meter) is balanced to 0 A (no power pulled from grid and no power going to the grid, all excess power going to EV charger).

This means I would need to set DLB current on charger to 0 A so it could balance out nicely, but like I said the settable range is from 20 A to 100 A.

What's the easiest way to add constant value to the RS485 message on the fly? Can I put MKR 485 Shield between charger and meter and code it to simply add 20 A to the reading from meter? then I would set limit current on EV charger to 20 A and it could balance out and work as I intend?

5
  • 2
    This is more about electrical side of it than Arduino. Commented Jun 27, 2024 at 13:45
  • We can't really come up with a HW/SW design for you. If you have a HW design, or code, already, and have a certain issue, then we might be able to help with that. Please edit and update your question, if possible. Commented Jun 27, 2024 at 20:35
  • FWIW, what is the Feyree model number exactly? I have found user guides for F-MBM22 and EV Charging station but neither of those seem to have RS-485. I can see that there are at least a couple of other models (an 11 kV/16A/three phase, a 7.6KW/11KW/22KW model and another 7.6kW model), but can't find PDFs for those. Commented Jun 28, 2024 at 11:36
  • feyree.com/s/product-detail?productId=23010223118846420 This is the charger in question. Commented Jun 28, 2024 at 14:44
  • I believe you need to use RS485.h library. github.com/arduino-libraries/ArduinoRS485/blob/master/src/… Commented Jul 1, 2024 at 10:26

1 Answer 1

-1

Sounds like you want to do, what is effectively, a "man-in-the-middle" attack.

However, to do that, surely you would need two MAX3157 devices (and thus two MKR 485 shields)? One talking to the charger and one talking to the meter, with the Arduino "injecting" the "20A" message into messages from the meter to the charger. Yes, it sounds possible.

However, if you tried to use two MKR 485 shields (assuming that they are stackable), you will quickly discover that both shields use D6 and D7 for TX and RX - you can not configure this using jumpers or from software. So there would be a conflict - you wouldn't be able to address the shields independently. Therefore, a design using the MKR 485 doesn't seem possible. You need to think of something else.

Maybe you could design a custom PCB, or breadboard, using two MAX 3157 ICs (and not the MKR 485 shields), that you can enable and address independently, using additional digital pins for the addressing. Alternatively, use one shield in conjunction with an additional custom circuit for the other MAX 3157.

5
  • I expect RS485 devices to use specific communication protocols, which frequently have some addressing feature. So one bus suffices, if EV charger and energy meter are set to different addresses. The Arduino will play the role of the EV charger for the energy meter, and vice versa. The MITM attack works then on the protocol level, not the electrical level. Commented Jun 28, 2024 at 5:44
  • That's really helpful. I know that power meter is addressable, not sure about the charger. So basically I need to use MAX 3157 to read needed registers from power meter and store it in Arduino's memory as a float (adding 20A in the meantime). Then charger needs to speak with Arduino (via another MAX 3157 or using addressing) and ask for these registers thinking it speaks with power meter, correct? Commented Jun 28, 2024 at 6:50
  • 3
    RS-485-based protocols are typically single master: the master queries a slave, and the slave responds only when it has been addressed. If you add an Arduino that can behave as a master, then you will risk collisions on the bus. Collision detection and mitigation can be implemented, but I doubt the charger does that. Commented Jun 28, 2024 at 7:01
  • @EdgarBonet I stand corrected respective the single bus. Thanks! Commented Jun 28, 2024 at 7:58
  • @thebusybee: If the charger sends its requests on a predictable timing, maybe the Arduino could manage to send its own requests in-between the ones from the charger, and your scheme could still work. Commented Jun 28, 2024 at 8:39

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.