20 |
20 |
21 from .DeviceBase import BaseDevice |
21 from .DeviceBase import BaseDevice |
22 |
22 |
23 SupportedBoards = { |
23 SupportedBoards = { |
24 "bbc_microbit": { |
24 "bbc_microbit": { |
25 "ids": [ |
25 "ids": ( |
26 (0x0D28, 0x0204), # micro:bit |
26 (0x0D28, 0x0204), # micro:bit |
27 ], |
27 ), |
28 "description": "BBC micro:bit", |
28 "description": "BBC micro:bit", |
29 "icon": "microbitDevice", |
29 "icon": "microbitDevice", |
30 "port_description": "BBC micro:bit CMSIS-DAP", |
30 "port_description": "BBC micro:bit CMSIS-DAP", |
31 "module": ".MicrobitDevices", |
31 "module": ".MicrobitDevices", |
32 }, |
32 }, |
33 "calliope": { |
33 "calliope": { |
34 "ids": [ |
34 "ids": ( |
35 (0x0D28, 0x0204), # Calliope mini |
35 (0x0D28, 0x0204), # Calliope mini |
36 ], |
36 ), |
37 "description": "Calliope mini", |
37 "description": "Calliope mini", |
38 "icon": "calliope_mini", |
38 "icon": "calliope_mini", |
39 "port_description": "DAPLink CMSIS-DAP", |
39 "port_description": "DAPLink CMSIS-DAP", |
40 "module": ".MicrobitDevices", |
40 "module": ".MicrobitDevices", |
41 }, |
41 }, |
42 "circuitpython": { |
42 "circuitpython": { |
43 "ids": [ |
43 "ids": ( |
44 (0x0483, 0x572A), # STMicroelectronics NUCLEO-F446RE - CPy |
44 (0x0483, 0x572A), # STMicroelectronics NUCLEO-F446RE - CPy |
45 (0x04D8, 0xE799), # Cytron Maker Zero SAMD21 |
45 (0x04D8, 0xE799), # Cytron Maker Zero SAMD21 |
46 (0x04D8, 0xEA2A), # BHDynamics DynaLoRa_USB |
46 (0x04D8, 0xEA2A), # BHDynamics DynaLoRa_USB |
47 (0x04D8, 0xEAD1), # BH Dynamics DynOSSAT-EDU-EPS-v1.0 |
47 (0x04D8, 0xEAD1), # BH Dynamics DynOSSAT-EDU-EPS-v1.0 |
48 (0x04D8, 0xEAD2), # BH Dynamics DynOSSAT-EDU-OBC-v1.0 |
48 (0x04D8, 0xEAD2), # BH Dynamics DynOSSAT-EDU-OBC-v1.0 |
131 (0x1B4F, 0x8D22), # SparkFun SAMD21 Mini Breakout |
131 (0x1B4F, 0x8D22), # SparkFun SAMD21 Mini Breakout |
132 (0x1B4F, 0x8D23), # SparkFun SAMD21 Dev Breakout |
132 (0x1B4F, 0x8D23), # SparkFun SAMD21 Dev Breakout |
133 (0x1B4F, 0x8D24), # SparkFun Qwiic Micro |
133 (0x1B4F, 0x8D24), # SparkFun Qwiic Micro |
134 (0x1D50, 0x60E8), # Radomir Dopieralski PewPew M4 |
134 (0x1D50, 0x60E8), # Radomir Dopieralski PewPew M4 |
135 (0x1D50, 0x6152), # nrf52.jpconstantineau.com BlueMicro833 |
135 (0x1D50, 0x6152), # nrf52.jpconstantineau.com BlueMicro833 |
136 (0x1D50, 0x6153), # JPConstantineau PyKey18 |
136 (0x1D50, 0x6153), |
137 (0x1D50, 0x6153), # JPConstantineau PyKey44 |
137 # JPConstantineau PyKey18 |
138 (0x1D50, 0x6153), # JPConstantineau PyKey60 |
138 # JPConstantineau PyKey44 |
139 (0x1D50, 0x6153), # JPConstantineau PyKey87 |
139 # JPConstantineau PyKey60 |
|
140 # JPConstantineau PyKey87 |
140 (0x1D50, 0x6154), # JPConstantineau EncoderPad RP2040 |
141 (0x1D50, 0x6154), # JPConstantineau EncoderPad RP2040 |
141 (0x1D50, 0x6161), # nrf52.jpconstantineau.com BlueMicro840 |
142 (0x1D50, 0x6161), # nrf52.jpconstantineau.com BlueMicro840 |
142 (0x2019, 0x7103), # Benjamin Shockley Fig Pi |
143 (0x2019, 0x7103), # Benjamin Shockley Fig Pi |
143 (0x2341, 0x056B), # Arduino Nano ESP32 |
144 (0x2341, 0x056B), # Arduino Nano ESP32 |
144 (0x2341, 0x8053), # Arduino MKR1300 |
145 (0x2341, 0x8053), # Arduino MKR1300 |
184 (0x2E8A, 0x1019), # Pimoroni Motor 2040 |
185 (0x2E8A, 0x1019), # Pimoroni Motor 2040 |
185 (0x2E8A, 0x101A), # Pimoroni Servo 2040 |
186 (0x2E8A, 0x101A), # Pimoroni Servo 2040 |
186 (0x2E8A, 0x101B), # Pimoroni Badger 2040 |
187 (0x2E8A, 0x101B), # Pimoroni Badger 2040 |
187 (0x2E8A, 0x101E), # Raspberry Pi Zero W |
188 (0x2E8A, 0x101E), # Raspberry Pi Zero W |
188 (0x2E8A, 0x101F), # Waveshare Electronics RP2040-Zero |
189 (0x2E8A, 0x101F), # Waveshare Electronics RP2040-Zero |
189 (0x2E8A, 0x1020), # Waveshare Electronics RP2040-Plus (16MB) |
190 (0x2E8A, 0x1020), |
190 (0x2E8A, 0x1020), # Waveshare Electronics RP2040-Plus (4MB) |
191 # Waveshare Electronics RP2040-Plus (16MB) |
|
192 # Waveshare Electronics RP2040-Plus (4MB) |
191 (0x2E8A, 0x1021), # Waveshare Electronics Waveshare RP2040-LCD-0.96 |
193 (0x2E8A, 0x1021), # Waveshare Electronics Waveshare RP2040-LCD-0.96 |
192 (0x2E8A, 0x1023), # Invector Labs Challenger RP2040 LoRa |
194 (0x2E8A, 0x1023), # Invector Labs Challenger RP2040 LoRa |
193 (0x2E8A, 0x1026), # ELECFREAKS Pico:ed |
195 (0x2E8A, 0x1026), # ELECFREAKS Pico:ed |
194 (0x2E8A, 0x1027), # WIZnet W5100S-EVB-Pico |
196 (0x2E8A, 0x1027), # WIZnet W5100S-EVB-Pico |
195 (0x2E8A, 0x1029), # WIZnet W5500-EVB-Pico |
197 (0x2E8A, 0x1029), # WIZnet W5500-EVB-Pico |
232 (0x2E8A, 0x10A4), # Pimoroni Tiny 2350 |
234 (0x2E8A, 0x10A4), # Pimoroni Tiny 2350 |
233 (0x2E8A, 0x10A5), # Pimoroni Plasma 2350 |
235 (0x2E8A, 0x10A5), # Pimoroni Plasma 2350 |
234 (0x2E8A, 0x10A6), # Pimoroni PGA2350 |
236 (0x2E8A, 0x10A6), # Pimoroni PGA2350 |
235 (0x2E8A, 0x10AE), # Datanoise PicoADK V2 |
237 (0x2E8A, 0x10AE), # Datanoise PicoADK V2 |
236 (0x303A, 0x7001), # Espressif ESP32-S2-HMI-DevKit-1 |
238 (0x303A, 0x7001), # Espressif ESP32-S2-HMI-DevKit-1 |
237 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1 |
239 (0x303A, 0x7003), |
238 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-N16 |
240 # Espressif ESP32-S3-DevKitC-1 |
239 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-N32R8 |
241 # Espressif ESP32-S3-DevKitC-1-N16 |
240 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-N8 |
242 # Espressif ESP32-S3-DevKitC-1-N32R8 |
241 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-N8R2 |
243 # Espressif ESP32-S3-DevKitC-1-N8 |
242 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-N8R8 |
244 # Espressif ESP32-S3-DevKitC-1-N8R2 |
243 (0x303A, 0x7003), # Espressif ESP32-S3-DevKitC-1-nopsram |
245 # Espressif ESP32-S3-DevKitC-1-N8R8 |
|
246 # Espressif ESP32-S3-DevKitC-1-nopsram |
244 (0x303A, 0x7005), # Espressif ESP32-S3-Box-2.5 |
247 (0x303A, 0x7005), # Espressif ESP32-S3-Box-2.5 |
245 (0x303A, 0x7007), # Espressif ESP32-S3-DevKitM-1-N8 |
248 (0x303A, 0x7007), # Espressif ESP32-S3-DevKitM-1-N8 |
246 (0x303A, 0x7009), # Espressif ESP32-S2-DevKitC-1-N4 |
249 (0x303A, 0x7009), |
247 (0x303A, 0x7009), # Espressif ESP32-S2-DevKitC-1-N4R2 |
250 # Espressif ESP32-S2-DevKitC-1-N4 |
248 (0x303A, 0x7009), # Espressif ESP32-S2-DevKitC-1-N8R2 |
251 # Espressif ESP32-S2-DevKitC-1-N4R2 |
|
252 # Espressif ESP32-S2-DevKitC-1-N8R2 |
249 (0x303A, 0x700B), # Espressif ESP32-S3-USB-OTG-N8 |
253 (0x303A, 0x700B), # Espressif ESP32-S3-USB-OTG-N8 |
250 (0x303A, 0x700D), # Espressif ESP32-S3-Box-Lite |
254 (0x303A, 0x700D), # Espressif ESP32-S3-Box-Lite |
251 (0x303A, 0x700F), # Espressif ESP32-S3-EYE |
255 (0x303A, 0x700F), # Espressif ESP32-S3-EYE |
252 (0x303A, 0x7011), # Espressif ESP32-S3-EV-LCD-Board_v1.5 |
256 (0x303A, 0x7011), # Espressif ESP32-S3-EV-LCD-Board_v1.5 |
253 (0x303A, 0x8002), # UnexpectedMaker TinyS2 |
257 (0x303A, 0x8002), # UnexpectedMaker TinyS2 |
304 (0x303A, 0x81AA), # MakerM0 MagiClick S3 n4r2 |
308 (0x303A, 0x81AA), # MakerM0 MagiClick S3 n4r2 |
305 (0x303A, 0x81B1), # UnexpectedMaker TinyWATCH S3 |
309 (0x303A, 0x81B1), # UnexpectedMaker TinyWATCH S3 |
306 (0x303A, 0x81B4), # Waveshare Electronics Waveshare ESP32-S3-Zero |
310 (0x303A, 0x81B4), # Waveshare Electronics Waveshare ESP32-S3-Zero |
307 (0x303A, 0x81B6), # LILYGO T DECK |
311 (0x303A, 0x81B6), # LILYGO T DECK |
308 (0x303A, 0x81B9), # Espressif senseBox MCU-S2 ESP32S2 |
312 (0x303A, 0x81B9), # Espressif senseBox MCU-S2 ESP32S2 |
309 ( |
313 (0x303A, 0x81BF), |
310 0x303A, |
314 # MakerFabs MakerFabs-ESP32-S3-Parallel-TFT-With-Touch-7inch |
311 0x81BF, |
|
312 ), # MakerFabs MakerFabs-ESP32-S3-Parallel-TFT-With-Touch-7inch |
|
313 (0x303A, 0x81CF), # Flipper Devices Inc. Flipper Zero Wi-Fi Dev |
315 (0x303A, 0x81CF), # Flipper Devices Inc. Flipper Zero Wi-Fi Dev |
314 (0x303A, 0x81D0), # Double Take Labs COLUMBIA-DSL-SENSOR-BOARD-V1 |
316 (0x303A, 0x81D0), # Double Take Labs COLUMBIA-DSL-SENSOR-BOARD-V1 |
315 (0x303A, 0x81DA), # M5STACK M5Stack Cardputer - CircuitPython |
317 (0x303A, 0x81DA), # M5STACK M5Stack Cardputer - CircuitPython |
316 (0x303A, 0x81DD), # M5Stack M5stack - Dial |
318 (0x303A, 0x81DD), # M5Stack M5stack - Dial |
317 (0x303A, 0x81EA), # Waveshare Electronics ESP32-S3-GEEK |
319 (0x303A, 0x81EA), # Waveshare Electronics ESP32-S3-GEEK |
333 (0x3343, 0x83CF), # DFRobot Firebeetle 2 ESP32-S3 |
335 (0x3343, 0x83CF), # DFRobot Firebeetle 2 ESP32-S3 |
334 (0x4097, 0x0001), # TG-Boards Datalore IP M4 |
336 (0x4097, 0x0001), # TG-Boards Datalore IP M4 |
335 (0x612B, 0x80A7), # Ai-Thinker ESP 12k NodeMCU |
337 (0x612B, 0x80A7), # Ai-Thinker ESP 12k NodeMCU |
336 # do not overwrite this entry |
338 # do not overwrite this entry |
337 (0x239A, None), # Any Adafruit Boards |
339 (0x239A, None), # Any Adafruit Boards |
338 ], |
340 ), |
339 "description": "CircuitPython", |
341 "description": "CircuitPython", |
340 "icon": "circuitPythonDevice", |
342 "icon": "circuitPythonDevice", |
341 "port_description": "", |
343 "port_description": "", |
342 "module": ".CircuitPythonDevices", |
344 "module": ".CircuitPythonDevices", |
343 }, |
345 }, |
344 "esp": { |
346 "esp": { |
345 "ids": [ |
347 "ids": ( |
346 (0x0403, 0x6001), # M5Stack ESP32 device"), |
348 (0x0403, 0x6001), # M5Stack ESP32 device"), |
347 (0x0403, 0x6001), # FT232/FT245 (XinaBox CW01, CW02) |
349 (0x0403, 0x6001), # FT232/FT245 (XinaBox CW01, CW02) |
348 (0x0403, 0x6010), # FT2232C/D/L/HL/Q (ESP-WROVER-KIT) |
350 (0x0403, 0x6010), # FT2232C/D/L/HL/Q (ESP-WROVER-KIT) |
349 (0x0403, 0x6011), # FT4232 |
351 (0x0403, 0x6011), # FT4232 |
350 (0x0403, 0x6014), # FT232H |
352 (0x0403, 0x6014), # FT232H |
353 (0x10C4, 0xEA60), # CP210x |
355 (0x10C4, 0xEA60), # CP210x |
354 (0x1A86, 0x55D4), # CH343 |
356 (0x1A86, 0x55D4), # CH343 |
355 (0x1A86, 0x7523), # HL-340, CH340 |
357 (0x1A86, 0x7523), # HL-340, CH340 |
356 (0x303A, 0x1001), # USB JTAG serial debug unit, |
358 (0x303A, 0x1001), # USB JTAG serial debug unit, |
357 (0x303A, 0x4001), # Espressif Device |
359 (0x303A, 0x4001), # Espressif Device |
358 ], |
360 ), |
359 "description": "ESP32, ESP8266", |
361 "description": "ESP32, ESP8266", |
360 "icon": "esp32Device", |
362 "icon": "esp32Device", |
361 "port_description": "", |
363 "port_description": "", |
362 "module": ".EspDevices", |
364 "module": ".EspDevices", |
363 }, |
365 }, |
364 "generic": { |
366 "generic": { |
365 # only manually configured devices use this |
367 # only manually configured devices use this |
366 "ids": [ |
368 "ids": ( |
367 (0xF055, 0x9802), # Board in FS mode |
369 (0xF055, 0x9802), # Board in FS mode |
368 ], |
370 ), |
369 "description": QCoreApplication.translate( |
371 "description": QCoreApplication.translate( |
370 "MicroPythonDevice", "Generic MicroPython Board" |
372 "MicroPythonDevice", "Generic MicroPython Board" |
371 ), |
373 ), |
372 "icon": "micropython48", |
374 "icon": "micropython48", |
373 "port_description": "Board", |
375 "port_description": "Board", |
374 "module": ".GenericMicroPythonDevices", |
376 "module": ".GenericMicroPythonDevices", |
375 }, |
377 }, |
376 "pyboard": { |
378 "pyboard": { |
377 "ids": [ |
379 "ids": ( |
378 (0x2341, 0x045F), # Arduino Nicla Vision |
380 (0x2341, 0x045F), # Arduino Nicla Vision |
379 (0x2341, 0x055B), # Arduino Portenta H7 |
381 (0x2341, 0x055B), # Arduino Portenta H7 |
380 (0x2341, 0x0566), # Arduino GIGA R1 WiFi |
382 (0x2341, 0x0566), # Arduino GIGA R1 WiFi |
381 (0xF055, 0x9800), # Pyboard in CDC+MSC mode |
383 (0xF055, 0x9800), # Pyboard in CDC+MSC mode |
382 (0xF055, 0x9801), # Pyboard in CDC+HID mode |
384 (0xF055, 0x9801), # Pyboard in CDC+HID mode |
387 (0xF055, 0x9806), # Pyboard in CDC3 mode |
389 (0xF055, 0x9806), # Pyboard in CDC3 mode |
388 (0xF055, 0x9807), # Pyboard in CDC3+MSC mode |
390 (0xF055, 0x9807), # Pyboard in CDC3+MSC mode |
389 (0xF055, 0x9808), # Pyboard in CDC+MSC+HID mode |
391 (0xF055, 0x9808), # Pyboard in CDC+MSC+HID mode |
390 (0xF055, 0x9809), # Pyboard in CDC2+MSC+HID mode |
392 (0xF055, 0x9809), # Pyboard in CDC2+MSC+HID mode |
391 (0xF055, 0x980A), # Pyboard in CDC3+MSC+HID mode |
393 (0xF055, 0x980A), # Pyboard in CDC3+MSC+HID mode |
392 ], |
394 ), |
393 "description": "PyBoard", |
395 "description": "PyBoard", |
394 "icon": "micropython48", |
396 "icon": "micropython48", |
395 "port_description": "Pyboard", |
397 "port_description": "Pyboard", |
396 "module": ".PyBoardDevices", |
398 "module": ".PyBoardDevices", |
397 }, |
399 }, |
398 "rp2": { |
400 "rp2": { |
399 "ids": [ |
401 "ids": ( |
400 (0x1209, 0xF502), # Silicognition RP2040-Shim |
402 (0x1209, 0xF502), # Silicognition RP2040-Shim |
401 (0x16D0, 0x08C7), # Pimoroni Tiny 2040 (8MB) |
403 (0x16D0, 0x08C7), # Pimoroni Tiny 2040 (8MB) |
402 (0x1B4F, 0x0025), # SparkFun Thing Plus RP2040 |
404 (0x1B4F, 0x0025), # SparkFun Thing Plus RP2040 |
403 (0x1B4F, 0x0026), # SparkFun Pro Micro RP2040 |
405 (0x1B4F, 0x0026), # SparkFun Pro Micro RP2040 |
404 (0x1B4F, 0x0039), # SparkFun Pro Micro RP2350 |
406 (0x1B4F, 0x0039), # SparkFun Pro Micro RP2350 |
410 (0x239A, 0x80FE), # Adafruit ItsyBitsy RP2040 |
412 (0x239A, 0x80FE), # Adafruit ItsyBitsy RP2040 |
411 (0x2E8A, 0x0005), # Raspberry Pi Pico, Raspberry Pi Pico 2 |
413 (0x2E8A, 0x0005), # Raspberry Pi Pico, Raspberry Pi Pico 2 |
412 (0x2E8A, 0x000C), # Raspberry Pi Pico, Raspberry Pi Pico 2 |
414 (0x2E8A, 0x000C), # Raspberry Pi Pico, Raspberry Pi Pico 2 |
413 (0x2E8A, 0x1002), # Pimoroni Pico LiPo (4MB) |
415 (0x2E8A, 0x1002), # Pimoroni Pico LiPo (4MB) |
414 (0x2E8A, 0x1003), # Pimoroni Pico LiPo (16MB) |
416 (0x2E8A, 0x1003), # Pimoroni Pico LiPo (16MB) |
415 ], |
417 ), |
416 "description": QCoreApplication.translate( |
418 "description": QCoreApplication.translate( |
417 "MicroPythonDevice", "RP2040/RP2350 based" |
419 "MicroPythonDevice", "RP2040/RP2350 based" |
418 ), |
420 ), |
419 "icon": "rp2Device", |
421 "icon": "rp2Device", |
420 "port_description": "", |
422 "port_description": "", |
421 "module": ".RP2Devices", |
423 "module": ".RP2Devices", |
422 }, |
424 }, |
423 "stlink": { |
425 "stlink": { |
424 "ids": [ |
426 "ids": ( |
425 (0x0483, 0x374B), # STM32 STLink, |
427 (0x0483, 0x374B), # STM32 STLink, |
426 ], |
428 ), |
427 "description": "STM32 STLink", |
429 "description": "STM32 STLink", |
428 "icon": "micropython48", |
430 "icon": "micropython48", |
429 "port_description": "STM32 STLink", |
431 "port_description": "STM32 STLink", |
430 "module": ".STLinkDevices", |
432 "module": ".STLinkDevices", |
431 }, |
433 }, |
432 "teensy": { |
434 "teensy": { |
433 "ids": [ |
435 "ids": ( |
434 (0xF055, 0x9802), # Pyboard in CDC+MSC mode |
436 (0xF055, 0x9802), # Pyboard in CDC+MSC mode |
435 ], |
437 ), |
436 "description": "Teensy", |
438 "description": "Teensy", |
437 "icon": "micropython48", |
439 "icon": "micropython48", |
438 "port_description": "Teensy", |
440 "port_description": "Teensy", |
439 "module": ".TeensyDevices", |
441 "module": ".TeensyDevices", |
440 }, |
442 }, |