Hardware

Anne

The Anne Pro contains 3 MCUs to handle each of the Keyboard, LED and BLE operations:

The battery circuit is managed by

  • Charging chip (U4): BQ24075 (marking CDU) or BQ24073 (marking CKQ)
  • Voltage step-down converter (U5): TPS62260 (marking BYK)

You can find some more information including pin assignments at https://github.com/hi-a/annepro-key

The STM32L151 Reference Manual and Data Sheet contain lots of useful information.

Flashing and debugging

To develop it's best to directly flash via the debug pins instead of DFU, so you get full debugging support and even working semihosting printing to your host machine.

Any ST-Link v2 or v2.1 programmer will do. You can find them cheap on ebay, or if you already have an STM32 Discovery/Nucleo board you can use the programmer built into that.

All the debug pins are exposed and easily accessible, however standard jumpers are too high for the case. You can solder on some wires and connect to your programmer:

PCB

The LED chip is the one closer to the edge. The pins order is the same for both chips, counting from the BLE shield: SWDIO, SWCLK, GND, 3V3.

OpenOCD

For the best experience, use a new opencd with a unified interface/stlink.cfg (0.11, not yet released). Otherwise you will need to specify the precise ST-Link version in openocd.cfg. Once your programmer is connected, make debug will build a semihosting-enabled binary, then use arm-none-eabi-gdb and openocd to load it into the keyboard. The semihosting output is printed to gdb's console, and OpenOCD's messages are logged into openocd.log. You can use another debugger by setting the GDB variable:

env GDB=gdb-multiarch make debug
# or
make debug -e GDB=gdb-multiarch

If you like gdbgui, use make gui-debug. However we haven't explored that tool much.

DFU

In DFU mode, the keyboard has STM's standard DFU USB identifiers 0483:DF11, with obins DFU as the product string.

PCB Revisions

We have found two revisions, visible under the spacebar. On the switch & case color sticker by Obins, the beginning of SN is approximately your keyboard's manufacturing date.

  1. V2.2: earlier revision, started at least 2016-12
  2. B31: possibly started 2017-06
    • No longer has those solder points

/u/columna1 contributed excellent photos of the PCB and chips for V2.2:

Chip-to-Chip wiring

LED is on Key's PC15(for power?), communicating over USART3 by sending via DMA1 Channel2 (PB10?), receiving via DMA1 Channel3 (PB11?). BT communicate with Key over USART2, sending via DMA1 Channel7 (PA1?), receiving via DMA1 Chanel6 (PA2?), using PA3 for (?).

Keymatrix

The keymatrix is connected to U2's GPIO pin groups A and B. There are 14 columns and 5 rows, giving 70 nodes. However 9 positions are not usable, marked N/a in this table.

A5 A6 A7 B0 B1 B12 B13 B14 A8 A9 A15 B3 B4 B5
B9 Escape 1 2 3 4 5 6 7 8 9 0 - = Backspace
B8 Tab Q W E R T Y U I O P [ ] \
B7 Capslock A S D F G H J K L ; ' N/a Enter
B6 Shift Z X C V B N M , . / N/a N/a Shift
A0 Control Meta Alt N/a N/a Space N/a N/a N/a N/a Alt Fn ANNE Control

LED matrix

Bluetooth connection

A keyboard's L0 and L1 addresses differ only in the first hex digit. The OUI of the address can be TI, or unassigned.

Case

The PCB's screw positions are incompatible with most 60% cases.

results matching ""

    No results matching ""