PIC Firmware

The PIC requires firmware in order to run and will be delivered with the current version initially.

Firmware Update / Configuration

The initially delivered PIC firmware contains a bootloader that allows updating as well as configuring the firmware via USB, WIFI, or directly via Raspberry Pi GPIO/ttyAMA0.

This is done best with the ebus PIC Loader tool which also allows setting a fixed IP address (for the Ethernet variant), the arbitration delay, and further parameters.

To update or configure the firmware, the adapter has to be configured to USB, WIFI, or Raspberry Pi variant, i.e. the USR-ES1 module (in the Ethernet variant) has to be removed.

To then activate the bootloader, pins 3 and 4 on J11 have to be bridged (e.g. using tweezers or a short wire).

Siehe hier für die Position der Pins


Since version 20221105 it is sufficient to hold that bridge shortly until the PIC has rebooted. Before version 20221105 a reset has to be issued simultaneously (with the bridge in place) by either using J12 (see Reset below) or connecting the power supply.
Afterwards the bridge can be removed again.

When the bootloader is active, the blue LED lights up immediately very brightly (more than all others see here).

In order to update the firmware, the ebus PIC Loader is used like this, where /dev/ttyUSB0 may have to be replaced by the actual USB serial device or the address as stated by ebusd-esp PIC-passthrough (when using WIFI):
ebuspicloader -f firmware.hex /dev/ttyUSB0

Firmware Versions

Current Version 20221231:

Former versions: see Changelog

Variant adjustment

Since version 20221206 the variant can be adjusted via ebus PIC Loader and the jumpers at J12 are obsolete (no longer soldered in as well).

The following variants are possible:

Pins at J12 (only relevant for firmware versions before 20221206)


Important note: The pins at J12 must never be connected to any pin on the other jumpers/pin headers/sockets as separate power sources are used here. Any connection endangers the adapter and devices on the eBUS!

Ethernet Configuration

In case a fixed IP address is supposed to be used with the USR-ES1 module instead of obtaining it via DHCP, this can be done with the ebus PIC Loader. For this, the bootloader needs to be activated first, see above.

For example, to set the IP address with a network mask of (=length 24), the ebus PIC Loader is called as follows:
ebuspicloader -i -m 24 /dev/ttyUSB0


The blue LED is used to signal states from the PIC firmware. In general, the bootloader and normal modes are quite different.

LED in bootloader mode

If the LED lights up permanently very brightly (more than all others) immediately after supplying power, the PIC is in bootloader mode and is waiting for commands on the serial interface.

LED in normal operation (without Ethernet)

In normal operation, the blue LED is initially turned off after supplying power.

LED in Ethernet operation

If the USR-ES1 Ethernet module is plugged in and the variant set to Ethernet, the blue LED shows further state information in addition to those described above, and these are stepped through in the following stages:

  1. Until the W5500 of the USR-ES1 module responds after the reset, the LED flashes (2x per second).
  2. Until a link is found on the line, the LED flashes very quickly (20x per second).
  3. In case of DHCP, the LED flashes quickly (4x per second) until an IP address has been negotiated via DHCP.