Szymon Łopaciuk 7bee9cdcb1 Update README.md
2021-02-10 01:29:36 +00:00
2021-01-31 00:23:37 +00:00
2021-01-31 00:23:37 +00:00
2021-02-10 01:19:54 +00:00
2021-02-10 01:19:54 +00:00
2021-01-31 00:23:37 +00:00
2021-01-31 00:23:37 +00:00
2021-02-10 01:19:54 +00:00
2021-02-10 01:29:36 +00:00

stm32-adb2usb

A simple implementation of an ADB to USB converter for the STM32F103 'Blue Pill'. It is currently functional, but there are many ways in which it could be improved upon (see TODO). Testing done on an STM32F103 (or rather actually a Chinese clone), but in the end should be compatible with other STM32 microcontrollers/boards. This code is a Platform IO project reliant on ST's stm32duino, although I am sure it could be easily converted to something else.

Useful resources

I aim to make the code as easy to follow as it is possible in this case, especially the part relating to the ADB protocol. By far the best and most comprehensive description of the ADB protocol and devices is Apple's Guide to the Macintosh© Family Hardware (2nd ed.) (chapter 8, p. 287). Some other resources that were useful to me as well:

TODO

  • Make the keyboard work
  • Fix timers, using micros() for time differences will cause problems
  • Make the mouse work
  • Ditch bitfields as the ordering of bytes/bits is confusing and not super portable (see tests failing; passing around uint16_t and then casting to bitfield structs is really dodgy and I shouldn't be doing that)
  • Handle SRQs and multiple devices of the same type properly
  • Make the layout easier to customise (swap a control, or num lock, for fn?)
S
Description
Apple Desktop Bus converter, adb to usb with stm32 or adb to Bluetooth with esp32
Readme GPL-3.0 441 KiB
Languages
C++ 99.3%
C 0.7%