Skip to content

Commit 09cc8a0

Browse files
tzarcclaude
andcommitted
Add ArteryTek AT32 DFU bootloader support
VID 0x2E3C / PID 0xDF11, flashed via dfu-util with address 0x08000000. Mirrors PR qmk#482. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent d14d332 commit 09cc8a0

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

src/QmkToolbox.Core/Bootloader/BootloaderFactory.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,9 @@ private static BootloaderType QmkOrLufaHid(ushort rev) =>
9191
// ── GigaDevice Semiconductor (0x28E9) ──────────────────────────
9292
[(0x28E9, 0x0189)] = new(BootloaderType.Gd32VDfu),
9393

94+
// ── ArteryTek (0x2E3C) ──────────────────────────────────────────
95+
[(0x2E3C, 0xDF11)] = new(BootloaderType.At32Dfu),
96+
9497
// ── Geehy Semiconductor (0x314B) ────────────────────────────────
9598
[(0x314B, 0x0106)] = new(BootloaderType.Apm32Dfu),
9699

@@ -111,6 +114,7 @@ public static IUsbDevice CreateDevice(
111114
return GetDeviceType(device.VendorId, device.ProductId, device.RevisionBcd) switch
112115
{
113116
BootloaderType.Apm32Dfu => new Apm32DfuDevice(device, toolProvider),
117+
BootloaderType.At32Dfu => new At32DfuDevice(device, toolProvider),
114118
BootloaderType.AtmelDfu => new AtmelDfuDevice(device, toolProvider, serialPortService),
115119
BootloaderType.AtmelSamBa => new AtmelSamBaDevice(device, toolProvider, serialPortService),
116120
BootloaderType.AvrIsp => new AvrIspDevice(device, toolProvider, serialPortService),
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using QmkToolbox.Core.Models;
2+
using QmkToolbox.Core.Services;
3+
4+
namespace QmkToolbox.Core.Bootloader.Impl;
5+
6+
/// <summary>ArteryTek AT32 DFU bootloader device (via dfu-util).</summary>
7+
internal sealed class At32DfuDevice(IUsbDevice device, IFlashToolProvider toolProvider)
8+
: DfuUtilDevice(device, toolProvider,
9+
BootloaderType.At32Dfu, "ArteryTek AT32 DFU",
10+
altSetting: 0, deviceId: "2E3C:DF11",
11+
flashSuffix: "-s 0x08000000:leave",
12+
resetSuffix: "-s 0x08000000:leave");

src/QmkToolbox.Core/Models/BootloaderType.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ namespace QmkToolbox.Core.Models;
44
public enum BootloaderType
55
{
66
Apm32Dfu,
7+
At32Dfu,
78
AtmelDfu,
89
AtmelSamBa,
910
AvrIsp,

0 commit comments

Comments
 (0)