Skip to content

szymonlopaciuk/stm32-adb2usb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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:

If you are interested in the nitty-gritty of the ADB protocol, I wrote this post, which summarises all my findings, to accompany this repo.

TODO

  • Make the keyboard work
  • 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?)

About

Apple Desktop Bus to USB converter on the STM32

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages