Skip to content

Releases: temoto/vender

MDB adapter v2.3

19 Nov 07:35
mega-firmware-2.3
Compare
Choose a tag to compare

Changes since v2.2:

  • TWI disabled while notification pin active

This update only concerns those who use MDB adapter to also read events from I2C keyboard.

MDB adapter v2.1

16 Jul 11:57
mega-firmware-2.1
02ff796
Compare
Choose a tag to compare

Changes since v2.0

  • TWI_DATA will not be sent while MDB session is active
  • TWI_DATA may be also sent together with successful MDB response (and in separate packet as before)

This update only concerns those who use MDB adapter to also read events from I2C keyboard.

kicad

14 Jun 10:55
Compare
Choose a tag to compare
kikad

remove footprint

MDB adapter v2.0

10 Jun 11:38
Compare
Choose a tag to compare
MDB adapter v2.0 over SPI

When VMC and keyboard (also I2C master) were talking to mega
simultaneously, mega (or keyboard) would go crazy, respond as random
slave addresses (as shown by i2cdetect) then stop responding at all.
Most likely it was caused by incorrect handling of TW_STATUS in my mega
firmware. Wasted two days of random changes without stable solution.

So we decided to rewrite everything to SPI, primarily because it's a
separate (even electrically) bus. Had we got ATMega328PB on hands or
similar device with more peripherals, I would choose UART for VMC-mega
communication.

Current implementation of SPI handler on mega is blocking other
interrupts for longer than required. This caused UART errors (likely buffer overflow).
Applied workaround to defer keyboard reports back to VMC while MDB
session in progress. It works reliably now with SPI speed 200-500KHz
and could be further improved by separating SPI IO from processing as
done in UART(MDB) part.

Among with other changes in mega protocol, basically it was downgraded
to single-tasking that Alex wanted from the start. I failed to make
ambitious async protocol work and it cost us precious time.