JIKONG BMS JK PB2A16S20P ESP32 ESP8266 MQTT Active Balance 16S 200A BT Battery LiFePO4

I have a JIKONG BMS JK PB2A16S20P Active Balancer 16S 200A Bluetooth for my LiFePO4 Battery

I have seen topics here discussing the intergation via USB or RS485.
I have a couple of ESP32 and ESP8266 bare-chips here.
By bare I mean they don’t have a CH340 nor an atmega 328 or any 5V regulator.

The JK-BMS connector has 3.3V, is this live and does this supply efficient power when the BMS is powered up to drive the ESPs?

Which of the firmwares flying around on github or elsewhere would be most suitable to broadcast all data via MQTT?
I would prefere to be working with the 8266 because it has larger solder-pins.

thanks alot

esphome-jk-bms seems to be what I am looking for.

Can someone explain to me please how I get this programmed onto my ESP8266?

I also want it to distribute it to a MQTT broker.

substitutions:
  name: jk-bms
  device_description: "Monitor a JK-BMS (JK-PB series) via Modbus"
  external_components_source: github://syssi/esphome-jk-bms@main
  tx_pin: GPIO4
  rx_pin: GPIO5

esphome:
  name: ${name}
  comment: ${device_description}
  min_version: 2024.6.0
  project:
    name: "syssi.esphome-jk-bms"
    version: 2.2.0

esp8266:
  board: d1_mini

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

ota:
  platform: esphome

logger:
  level: DEBUG
  baud_rate: 0

# If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component!
# The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt
mqtt:
  broker: !secret mqtt_host
  username: !secret mqtt_username
  password: !secret mqtt_password
  id: mqtt_client

# api:

uart:
  - id: uart_0
    baud_rate: 115200
    rx_buffer_size: 384
    tx_pin: ${tx_pin}
    rx_pin: ${rx_pin}

modbus:
  - id: modbus0
    uart_id: uart_0
    flow_control_pin: GPIO12

modbus_controller:
  - id: bms0
    # Dip switch configuration of a single pack setup / address 0x01
    #  1    2    4    5
    #  on, off, off, off (0x01)
    #
    # Don't turn off all dip switches / don't use device address 0x00.
    # This is the Modbus Master mode. You must select a device address
    # between 0x01 and 0x0f so the BMS acts as Modbus Slave.
    address: 0x01
    modbus_id: modbus0
    setup_priority: -10
    update_interval: 5s
    command_throttle: 50ms

sensor:
  # 0x128A   138    INT16    2    R    TempMos         0.1 °C
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} mosfet temperature"
    address: 0x128A
    register_type: holding
    value_type: S_WORD
    unit_of_measurement: "°C"
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.1

  # 0x1290   144   UINT32    4    R    BatVol          mV
  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} total voltage"
    address: 0x1290
    register_type: holding
    value_type: U_DWORD
    unit_of_measurement: "V"
    device_class: voltage
    state_class: measurement
    accuracy_decimals: 3
    filters:
      - multiply: 0.001

  - platform: modbus_controller
    modbus_controller_id: bms0
    name: "${name} total runtime in seconds"
    address: 0x12BC
    register_type: holding
    value_type: U_DWORD
    state_class: measurement
    accuracy_decimals: 0

You do need some components like usb-serial chip, 3.3V regulator etc to use those bare-chips.

as described in github < under this link, do I need a TTL to RS485 converter chip or can the JK BMS connect directly via the 4 Pin, JST 1.25mm pitch connector?
I looks that way in the photo.
Here a quote:
“The RS485-TTL jack of the BMS can be attached to any UART pins of the ESP. A hardware UART should be preferred because of the high baudrate (115200 baud).”

Will a direct connection work? It says “should” for the hardware adapter …
Which one would be the best RS-485 to ttl converter for the ESP8266?

Your link clearly states to connect directly to Esp UART.
If your wiring between BMS and Esp is long (for some reason), then you need two RS485-TTL converters. Avoid that, and keep them together.

If you can, use Esp32 instead.