Releases: 3devo/ChildbusBootloader
v4
Version 4 (2023-04)
- Support protocol verfsion 2.2.
- Support
READ_BOARD_INFO
command. - No longer set board versions and extra info (display type) at
compiletime, but read them from board info from flash at runtime.
This means that instead of producing a hex file for each board
version, just a hex file per hardware type (interface board & hopper
board) is produced that will be combined with a board info block at
flash time. - Removed version number block from flash.
- Size optimizations to make things fit on the attiny.
v3.1
Makefile: Add support for new interface- and hopperboards - This adds interfaceboard v1.5 to the list (again). Which is probably forgotten during the previous makefile overhaul. - Add interfaceboard v1.6. - Add hopperboard v2.0 and 2.1
V3
This release adds the following changes:
- Support protocol version 2.1.
- Support STM32G0.
- Support ATtiny441 (untested).
- Support RS485 (STM32G0 only).
- Support erasing/flashing pages more than 256 bytes long.
- Ignore general call messages that are longer than expected.
- Support an upstream child select pin.
- Support downstream childbus connections and the
GET_NUM_CHILDREN
andSET_CHILD_SELECT
commands. - Support
GET_MAX_PACKET_LENGTH
and increase max packet length to 255
on the hopperboard. - Support
GET_EXTRA_INFO
command and return the attached display
hardware type on the interfaceboard. - Size optimizations for ATtiny (noreturn on startApplication and
remove ISR). - Various refactoring and restructuring of the code to support Rs485
and allow reusing parts of the code elsewhere. - Support hopperboard v1.0.
V2.1
This version is identical to version 2, except for the compiler version and the new interfaceboard v1.5 version.
Bootloader for the 3devo interface boards. Compiled using avr-gcc 5.4.0 on Cygwin/Windows.
Keep in mind that the I²C and SPI pins are shared, so during programming, no I²C master must be active. The easiest way to do so is to connect programmer reset line to the master reset line, or connect the master reset line to GND directly. Colliding communication transfers could break the slave AtTiny (presumably by setting the fuses to external crystal usage or something similar).
make all BOARD_TYPE=interfaceboard CURRENT_HW_REVISION=0x13 COMPATIBLE_HW_REVISION=0x01
make[1]: Map '/cygdrive/c/GitHub/AtTinyBootloader' wordt binnengegaan
attinybootloader-v2-interfaceboard-1.3.elf: file format elf32-avr
Contents of section .fuse:
820000 e2d5f4 ...
^^ Low
^^ High
^^ Extended
avr-size --format=avr attinybootloader-v2-interfaceboard-1.3.elf
AVR Memory Usage
----------------
Device: Unknown
Program: 2010 bytes
(.text + .data + .bootloader)
Data: 114 bytes
(.data + .bss + .noinit)
...
To set fuses and flash:
$ avrdude -c atmelice_isp -B 4 -p t841 -U lfuse:w:0xe2:m -U hfuse:w:0xd5:m -U efuse:w:0xf4:m -U flash:w:attinybootloader-v2-interfaceboard-1.5.hex
(adapt the -c option for your programmer)
v2
Bootloader for the 3devo interface board v1.3 and v1.4. Compiled using avr-gcc 4.9.2 on Linux.
Keep in mind that the I²C and SPI pins are shared, so during programming, no I²C master must be active. The easiest way to do so is to connect programmer reset line to the master reset line, or connect the master reset line to GND directly. Colliding communication transfers could break the slave AtTiny (presumably by setting the fuses to external crystal usage or something similar).
To set fuses and flash:
$ avrdude -c atmelice_isp -B 4 -p t841 -U lfuse:w:0xe2:m -U hfuse:w:0xd5:m -U efuse:w:0xf4:m -U flash:w:attinybootloader-v2-interfaceboard-1.4.hex
(adapt the -c option for your programmer)
Initial release
Bootloader for the interface board v1.3. Compiled using avr-gcc 4.9.2 on Linux.
Keep in mind that the I²C and SPI pins are shared, so during programming, no I²C master must be active. The easiest way to do so is to connect programmer reset line to the master reset line, or connect the master reset line to GND directly. Colliding communication transfers could break the slave AtTiny (presumably by setting the fuses to external crystal usage or something similar).
To set fuses and flash:
$ avrdude -c atmelice_isp -B 4 -p t841 -U lfuse:w:0xe2:m -U hfuse:w:0xd5:m -U efuse:w:0xf4:m -U flash:w:bootloader-iface-v1.3.hex
(adapt the -c option for your programmer)