From 71082ef029d2692e3bacef95336c33d4e933cf79 Mon Sep 17 00:00:00 2001 From: whowechina Date: Wed, 5 Apr 2023 11:49:50 +0800 Subject: [PATCH] Turntable hotswap --- .vscode/c_cpp_properties.json | 20 ++++++++++++++++++++ Production/Firmware/iidx_pico.uf2 | Bin 79360 -> 80384 bytes README.md | 2 +- firmware/src/turntable.c | 10 +++++----- 4 files changed, 26 insertions(+), 6 deletions(-) create mode 100644 .vscode/c_cpp_properties.json diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json new file mode 100644 index 0000000..2cef924 --- /dev/null +++ b/.vscode/c_cpp_properties.json @@ -0,0 +1,20 @@ +{ + "configurations": [ + { + "name": "Linux", + "includePath": [ + "D:/Code/pico-sdk/**", + "D:/Code/lib/**", + "${workspaceFolder}/firmware/build/generated/pico_base" + ], + "defines": [ + "_DEBUG", + "UNICODE", + "_UNICODE", + "BOARD_IIDX_PICO" + ], + "intelliSenseMode": "linux-gcc-arm64" + } + ], + "version": 4 +} \ No newline at end of file diff --git a/Production/Firmware/iidx_pico.uf2 b/Production/Firmware/iidx_pico.uf2 index 5399a32d873dfd27946064200e336284599656e8..ecdbbd5c4229c110b5744f889ac307979981e1d3 100644 GIT binary patch delta 9755 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 T1kqXB{HfRB9;t5qiJ1QZnL9ZM diff --git a/README.md b/README.md index dd59774..64cb690 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Features: * It's thin, really thin. -* Turntable and keyboard are detachable with magnetic connector. +* Turntable and keyboard are detachable with magnetic connector, hotswap! * HID lights, of course! * Multiple turntable effects. * Many live settings. diff --git a/firmware/src/turntable.c b/firmware/src/turntable.c index 308d245..e6fd19c 100644 --- a/firmware/src/turntable.c +++ b/firmware/src/turntable.c @@ -54,11 +54,11 @@ static uint16_t angle = 0; void turntable_update() { - uint8_t reg = 0x0c; - i2c_write_blocking(TT_AS5600_I2C, as5600_addr, ®, 1, true); - - uint8_t buf[2] = {0x0c}; - i2c_read_blocking(TT_AS5600_I2C, as5600_addr, buf, 2, false); + uint8_t buf[2] = {0x0c, 0x00}; + i2c_write_blocking_until(TT_AS5600_I2C, as5600_addr, buf, 1, true, + time_us_64() + 1000); + i2c_read_blocking_until(TT_AS5600_I2C, as5600_addr, buf, 2, false, + time_us_64() + 1000); angle = ((uint16_t)buf[0]) << 8 | buf[1]; }