Microcontrollers & Programmer

MPLAB ICD3 (DV164035) Microchip In-Circuit Debugger / Emulator / Programmer

The DV164035 is a MPLAB ICD-3 in-circuit debugger. It is Microchip's latest and most cost-effective high-speed emulator for Microchip flash Digital signal controller (DSC) and microcontroller (MCU) devices. It debugs and programs PIC(R) flash microcontrollers and dsPIC(R) DSCs with the powerful, yet easy to use graphical user interface of MPLAB integrated development environment (IDE). MPLAB ICD-3 in-circuit debugger provides significant performance enhancements for embedded systems designers. Programming times are typically 15x faster than previous systems. A 40MHz dsPIC33 and high-speed FPGA yield faster communications, downloads and debugging. MPLAB ICD-3 in-circuit debugger/programmer supports most flash PIC MCUs and dsPIC DSCs.

Real-time debugging Ruggedized probe interface Microchip standard connectivity of RJ-11 High speed programming Low voltage emulation Test interface module is included with every MPLAB ICD-3 Portable, USB-powered and RoHS compliant Ease of maintenance and feature upgrade Low cost and powerful debugging

PIC18F4520 - 8-bit PIC Microcontrollers

Working with digital inputs and outputs is fundamental to circuit design, and PIC microcontrollers add versatility to design by allowing programming and re-programming of the logic associated with input and output pins. In this way, one PIC microcontroller can take the place of many pre-programmed digital logic ICs.



Available Pins

With the exception of the positive voltage supply and ground pins, all pins on the PIC18F4520 can be used as digital I/O, however a few other pins (shown in grey below) are commonly utilized for communication instead of digital I/O. 


Digital Outputs Example

This section uses an example to describe how to setup and write digital outputs using a PIC18F4520.

Sample Code

Program to blink one LED on and off every half second.

First include header file with definitions for specific PIC. Set fuses. HS is type of external clock, low voltage programming (LVP) is off, and the watchdog timer (WDT) is off. External clock frequency of 20 MHz is specified.

  #use delay (clock=20000000)

Define pin names to be used in the main program. See header file for currently defined pin names.

  #define LED_0 PIN_C0

Begin main body of program. Notice main is a function of "void". This is a more explicit way of saying main is a function of nothing. Using main() is equivalent. Every program is required to have a function called "main".

  void main(void) {

Setup an infinite loop, using a while statement.


Turn LED on and off by setting its pin low or high, with a delay between each switching.


Circuit Diagram


Digital Output Ports Example

The PIC18F4520 has digital I/O pins organized into five ports. Ports A-D consist of eight pins each, while Port E has only three, although some of these pins are primarily used for communication. The diagram below shows the layout of the different ports on the PIC18F4520 microcontroller. 


Sample Code

Program to count in binary from 0-7 and display on LEDs.

First include header file with definitions for specific PIC. Set fuses. HS is type of external clock, low voltage programming (LVP) is off, and the watchdog timer (WDT) is off. External clock frequency of 20 MHz is specified.

  #use delay (clock=20000000)

Define variables to be used in main program. Both are defined as 8-bit numbers, with count already being assigned a value while temp is left unassigned.

  int count = 0;
  int temp;

Begin main body of program.

  void main(void) {

Set Port D to be an output (0). The SET_TRIS_X function can also be used to set ports to be inputs (1).


Use while to create an infinite loop.


Assign the value of "count" to Port D, thus displaying it on the LEDs connected to Port D.


Check the value of "count", and either increment it or reset it to zero.

        else {
           count = 0;}

Circuit Diagram


ULINK2 ARM Emulator STM32 Development Tool


  • Supports various ARM7, ARM9, Cortex-M, 8051, and C166 devices
  • JTAG speed up to 10MHz
  • Serial Wire Debug (SWD) support for ARM Cortex-M based devices
  • Serial Wire Viewer (SWV) Data Trace for Cortex-M up to 1Mbit/s (UART mode)
  • Real-Time Agent with memory R/W during execution, terminal emulation, and serial debug output
  • Seamless integration with the Keil µVision IDE & Debugger
  • Wide target voltage range: 2.7V - 5.5V
  • USB powered (no power supply required)
  • Plug-and-Play installation using standard Windows USB drivers
  • Target Connectors
    • 10-pin (0.05") - Cortex Debug Connector
    • 20-pin (0.10") - ARM Standard JTAG Connector

ULINK2 may be used for:

  • On-chip Debugging (using on-chip JTAG, SWD, or SWV),
  • Flash Memory Programming (using user-configurable Flash programming algorithms).

Using the ULINK2 adapter together with the Keil µVision IDE/Debugger, you can easily create, download, and test embedded applications on target hardware.

Technical Specifications


Debugging Features
RAM Breakpoints Unlimited
ROM Breakpoints (ARM7/9) 2 max
ROM Breakpoints (Cortex-M3) 8 max
ROM Breakpoints (µPSD)
(Cannot Set While Executing)
5 max
ROM Breakpoints (XC800)
(Cannot Set While Executing)
4 max
ROM Breakpoints (XC166) 4 max
Execution Breakpoints
(Set While Executing)
Access Breakpoints (ARM7/9) 2 max
(R/W Only, With Value)
Access Breakpoints (Cortex-M3) 4 max
(With value)
Access Breakpoints (µPSD) 3 max
Access Breakpoints (XC800) 1 in IDATA max
Access Breakpoints (XC166) 1 max
Debugging Support
Real-Time Agent (ARM7/9)
Serial Wire Debug (Cortex-M)
Data Trace (Cortex-M3)
(Serial Wire Viewer)
Instruction Trace (Cortex-M3)
(Embedded Trace Macrocell - ETM)
JTAG Clock <= 10MHz
Memory R/W ≈ 28KB/s
Flash R/W ≈ 25KB/s
Data Trace Streaming 1Mb/s
10-pin (0.05")
(Cortex Debug Connector)
20-pin (0.1")
(ARM Standard JTAG Connector)
20-pin (0.05")
(Cortex Debug+ETM Connector)
16-pin (0.1")
(Infineon OCDS Connector)
14-pin (0.1")
(ST µPSD Connector)
I/O Voltage Range 2.7V - 5.5V
Supported Device Families
XC800 (8051)
µPSD (8051)
LPC950 (8051)



Supported Devices
For the ULINK2 USB-JTAG Adapter

  • Use the Parametric Search to find microcontrollers that meet specific criteria.
  • Use the Device Database Problem Report to report a device that is not listed.

  • Actel (ARM7/ARM9/Cortex Family)
    A2F200M3F, A2F500M3G, COREMP7, Cortex-M1
  • Analog Devices (ARM7/ARM9/Cortex Family)
    ADuC7019, ADuC7020, ADuC7021, ADuC7022, ADuC7023, ADuC7024, ADuC7025, ADuC7026, ADuC7027, ADuC7028, ADuC7030,ADuC7032, ADuC7033, ADuC7034, ADuC7036, ADuC7037, ADuC7038, ADuC7039, ADuC7060, ADuC7061, ADuC7062, ADuC7122,ADuC7124, ADuC7126, ADuC7128, ADuC7129, ADuC7229
  • ARM (ARM7/ARM9/Cortex Family)
    Cortex-M0, Cortex-M1 (Altera), Cortex-M3, Cortex-M4, Cortex-M4 FPU
  • Atmel (ARM7/ARM9/Cortex Family)
    AT91C140, AT91F40416, AT91F40816, AT91FR40162, AT91FR4042, AT91FR4081, AT91M40400, AT91M40800, AT91M40807,AT91M42800A, AT91M43300, AT91M55800A, AT91M63200, AT91R40008, AT91R40807, AT91RM3400, AT91RM9200,AT91SAM3S1A, AT91SAM3S1B, AT91SAM3S1C, AT91SAM3S2A, AT91SAM3S2B, AT91SAM3S2C, AT91SAM3S4A,AT91SAM3S4B, AT91SAM3S4C, AT91SAM3U1C, AT91SAM3U1E, AT91SAM3U2C, AT91SAM3U2E, AT91SAM3U4C,AT91SAM3U4E, AT91SAM7A1, AT91SAM7A2, AT91SAM7A3, AT91SAM7L128, AT91SAM7L64, AT91SAM7S128, AT91SAM7S16,AT91SAM7S161, AT91SAM7S256, AT91SAM7S32, AT91SAM7S321, AT91SAM7S512, AT91SAM7S64, AT91SAM7SE256,AT91SAM7SE32, AT91SAM7SE512, AT91SAM7X128, AT91SAM7X256, AT91SAM7X512, AT91SAM7XC128, AT91SAM7XC256,AT91SAM7XC512, AT91SAM9260, AT91SAM9261, AT91SAM9261S, AT91SAM9263, AT91SAM9M10, AT91SAM9R64,AT91SAM9RL64, AT91SAM9XE128, AT91SAM9XE256, AT91SAM9XE512, SAM3N1A, SAM3N1B, SAM3N1C, SAM3N2A, SAM3N2B,SAM3N2C, SAM3N4A, SAM3N4B, SAM3N4C, SAM4S16C, SAM9G10, SAM9G15, SAM9G20, SAM9G35, SAM9G45, SAM9X25
  • AustriaMicroSystems (ARM7/ARM9/Cortex Family)
  • Cirrus Logic (ARM7/ARM9/Cortex Family)
    CS740110-IQZ, CS740120-IQZ, CS740130-IQZ
  • Ember (ARM7/ARM9/Cortex Family)
    EM351, EM357
  • Energy Micro (ARM7/ARM9/Cortex Family)
    EFM32G200F16, EFM32G200F32, EFM32G200F64, EFM32G210F128, EFM32G222F128, EFM32G222F32, EFM32G222F64,EFM32G230F128, EFM32G230F32, EFM32G230F64, EFM32G232F128, EFM32G232F32, EFM32G232F64, EFM32G280F128,EFM32G280F32, EFM32G280F64, EFM32G290F128, EFM32G290F32, EFM32G290F64, EFM32G840F128, EFM32G840F32,EFM32G840F64, EFM32G842F128, EFM32G842F32, EFM32G842F64, EFM32G880F128, EFM32G880F32, EFM32G880F64,EFM32G890F128, EFM32G890F32, EFM32G890F64, EFM32GG230F1024, EFM32GG230F512, EFM32GG280F1024,EFM32GG280F512, EFM32GG290F1024, EFM32GG290F512, EFM32GG295F1024, EFM32GG295F512, EFM32GG330F1024,EFM32GG330F512, EFM32GG380F1024, EFM32GG380F512, EFM32GG390F1024, EFM32GG390F512, EFM32GG395F1024,EFM32GG395F512, EFM32GG840F1024, EFM32GG840F512, EFM32GG880F1024, EFM32GG880F512, EFM32GG890F1024,EFM32GG890F512, EFM32GG895F1024, EFM32GG895F512, EFM32GG940F1024, EFM32GG940F512, EFM32GG980F1024,EFM32GG980F512, EFM32GG990F1024, EFM32GG990F512, EFM32GG995F1024, EFM32GG995F512, EFM32LG230F128,EFM32LG230F256, EFM32LG230F64, EFM32LG232F128, EFM32LG232F256, EFM32LG232F64, EFM32LG280F128,EFM32LG290F128, EFM32LG290F256, EFM32LG290F64, EFM32LG295F128, EFM32LG295F256, EFM32LG295F64,EFM32LG330F128, EFM32LG330F256, EFM32LG330F64, EFM32LG332F128, EFM32LG332F256, EFM32LG332F64,EFM32LG380F128, EFM32LG380F256, EFM32LG380F64, EFM32LG390F128, EFM32LG390F256, EFM32LG390F64,EFM32LG395F128, EFM32LG395F256, EFM32LG395F64, EFM32LG840F128, EFM32LG840F256, EFM32LG840F64,EFM32LG842F128, EFM32LG842F256, EFM32LG842F64, EFM32LG880F128, EFM32LG880F256, EFM32LG880F64,EFM32LG890F128, EFM32LG890F256, EFM32LG890F64, EFM32LG895F128, EFM32LG895F256, EFM32LG895F64,EFM32LG940F128, EFM32LG940F256, EFM32LG940F64, EFM32LG942F128, EFM32LG942F256, EFM32LG942F64,EFM32LG980F128, EFM32LG980F256, EFM32LG980F64, EFM32LG990F128, EFM32LG990F256, EFM32LG990F64,EFM32LG995F128, EFM32LG995F256, EFM32LG995F64, EFM32TG108F16, EFM32TG108F32, EFM32TG108F4, EFM32TG108F8,EFM32TG110F16, EFM32TG110F32, EFM32TG110F4, EFM32TG110F8, EFM32TG210F16, EFM32TG210F32, EFM32TG210F8,EFM32TG222F16, EFM32TG222F32, EFM32TG222F8, EFM32TG230F16, EFM32TG230F32, EFM32TG230F8, EFM32TG232F16,EFM32TG232F32, EFM32TG232F8, EFM32TG822F16, EFM32TG822F32, EFM32TG822F8, EFM32TG840F16, EFM32TG840F32,EFM32TG840F8, EFM32TG842F16, EFM32TG842F32, EFM32TG842F8
  • Freescale Semiconductor (ARM7/ARM9/Cortex Family)
    MAC7101, MAC7104, MAC7105, MAC7106, MAC7111, MAC7112, MAC7114, MAC7115, MAC7116, MAC7121, MAC7122, MAC7124,MAC7125, MAC7126, MAC7131, MAC7134, MAC7135, MAC7136, MAC7141, MAC7142, MAC7144, MC9328MX21, MCIMX27,MCIMX27L, MK10DN512xxx10, MK10DX256xxx10, MK10N512VMD100, MK10X128VMD100, MK10X256VMD100, MK20DN512xxx10,MK20DX128xxx10, MK20DX256xxx10, MK20N512VMD100, MK20X128VMD100, MK20X256VMD100, MK30DN512xxx10,MK30DX256xxx10, MK30N512VMD100, MK30X128VMD100, MK30X256VMD100, MK40DN512xxx10, MK40DX256xxx10,MK40N512VMD100, MK40X128VMD100, MK40X256VMD100, MK50N512CMD100, MK51N512CMD100, MK52N512CMD100,MK53DN512xxx10, MK53N512CMD100, MK60DN256xxx10, MK60DN512xxx10, MK60DX256xxx10, MK60N512VMD100,MK60X256VMD100, MK61FN1M0xxx12, MK61FN1M0xxx15, MK61FX512xxx12, MK61FX512xxx15, MK70FN1M0xxx12,MK70FN1M0xxx15, MK70FX512xxx12, MK70FX512xxx15
  • Fujitsu Semiconductors (ARM7/ARM9/Cortex Family)
    MB9AF102N, MB9AF102R, MB9AF104N, MB9AF104R, MB9AF111L, MB9AF111M, MB9AF111N, MB9AF112L, MB9AF112M,MB9AF112N, MB9AF114L, MB9AF114M, MB9AF114N, MB9AF115M, MB9AF115N, MB9AF116M, MB9AF116N, MB9AF311L,MB9AF311M, MB9AF311N, MB9AF312L, MB9AF312M, MB9AF312N, MB9AF314L, MB9AF314M, MB9AF314N, MB9AF315M,MB9AF315N, MB9AF316M, MB9AF316N, MB9BF104N, MB9BF104R, MB9BF105N, MB9BF105R, MB9BF106N, MB9BF106R,MB9BF116S, MB9BF116T, MB9BF117S, MB9BF117T, MB9BF118S, MB9BF118T, MB9BF216S, MB9BF216T, MB9BF217S,MB9BF217T, MB9BF218S, MB9BF218T, MB9BF304N, MB9BF304R, MB9BF305N, MB9BF305R, MB9BF306N, MB9BF306R,MB9BF316S, MB9BF316T, MB9BF317S, MB9BF317T, MB9BF318S, MB9BF318T, MB9BF404N, MB9BF404R, MB9BF405N,MB9BF405R, MB9BF406N, MB9BF406R, MB9BF416S, MB9BF416T, MB9BF417S, MB9BF417T, MB9BF418S, MB9BF418T,MB9BF504N, MB9BF504R, MB9BF505N, MB9BF505R, MB9BF506N, MB9BF506R, MB9BF516S, MB9BF516T, MB9BF517S,MB9BF517T, MB9BF518S, MB9BF518T, MB9BF616S, MB9BF616T, MB9BF617S, MB9BF617T, MB9BF618S, MB9BF618T
  • Holtek (ARM7/ARM9/Cortex Family)
    HT32F1251, HT32F1251B, HT32F1252, HT32F1253
  • Infineon (8051 Family)
    TLE7809, TLE7810, TLE7824, TLE7826, XC822-1F, XC822M-1F, XC822MT-1F, XC822T-0F, XC822T-1F, XC824M-1F, XC824MT-1F,XC835MT-2F, XC836-2F, XC836M-1F, XC836M-2F, XC836MT-2F, XC836T-2F, XC864-1FRI, XC866-1FR, XC866-2FR, XC866-4FR,XC866L-1FR, XC866L-2FR, XC866L-4FR, XC878-13FF, XC878-16FF, XC878C-13FF, XC878C-16FF, XC878CM-13FF, XC878CM-16FF,XC878L-13FF, XC878L-16FF, XC878M-13FF, XC878M-16FF, XC886-6FF, XC886-8FF, XC886C-6FF, XC886C-8FF, XC886CLM-6FF,XC886CLM-8FF, XC886CM-6FF, XC886CM-8FF, XC886LM-6FF, XC886LM-8FF, XC888-6FF, XC888-8FF, XC888C-6FF, XC888C-8FF,XC888CLM-6FF, XC888CLM-8FF, XC888CM-6FF, XC888CM-8FF, XC888LM-6FF, XC888LM-8FF
  • Infineon (C16x/ST10/XC16x Family)
    XC161CJ-16F, XC161CS-32F, XC164CM-16F, XC164CM-4F, XC164CM-8F, XC164CS-16F, XC164CS-16R, XC164CS-32F, XC164CS-32R, XC164CS-8F, XC164CS-8R, XC164D-16F, XC164D-32F, XC164D-8F, XC164GM-16F, XC164GM-4F, XC164GM-8F, XC164KM-4F,XC164KM-8F, XC164LM-4F, XC164LM-8F, XC164N-16F, XC164N-32F, XC164N-8F, XC164S-16F, XC164S-32F, XC164S-8F, XC164SM-4F, XC164SM-8F, XC164TM-4F, XC164TM-8F, XC167CI-16F, XC167CI-32F, XC2210U-4F, XC2210U-8F, XC2220L-12F, XC2220L-20F,XC2220U-4F, XC2220U-8F, XC2224L-12F, XC2224L-20F, XC2230L-12F, XC2230L-20F, XC2232N-24F, XC2232N-40F, XC2234L-12F,XC2234L-20F, XC2234N-16F, XC2234N-24F, XC2234N-40F, XC2236N-16F, XC2236N-24F, XC2236N-40F, XC2237M-104F, XC2237M-56F, XC2237M-72F, XC2238N-24F, XC2238N-40F, XC2261N-24F, XC2263M-104F, XC2263M-56F, XC2263M-72F, XC2263N-16F,XC2263N-24F, XC2263N-40F, XC2264-56F, XC2264-72F, XC2264-96F, XC2264N-16F, XC2264N-40F, XC2265M-104F, XC2265M-56F,XC2265M-72F, XC2265N-24F, XC2265N-40F, XC2267-56F, XC2267-72F, XC2267-96F, XC2267M-104F, XC2267M-56F, XC2267M-72F,XC2268I-136F, XC2268N-24F, XC2268N-40F, XC2269I-136F, XC2285-56F, XC2285-72F, XC2285-96F, XC2285M-104F, XC2285M-56F,XC2285M-72F, XC2286-56F, XC2286-72F, XC2286-96F, XC2287-56F, XC2287-72F, XC2287-96F, XC2287M-104F, XC2287M-56F,XC2287M-72F, XC2288H-136F, XC2288H-200F, XC2288I-136F, XC2289H-136F, XC2289H-200F, XC2289I-136F, XC2298H-136F,XC2298H-200F, XC2299H-136F, XC2299H-200F, XC2310S-4F, XC2310S-8F, XC2320D-12F, XC2320D-20F, XC2320S-4F, XC2320S-8F,XC2321D-12F, XC2321D-20F, XC2330D-12F, XC2331D-12F, XC2331D-20F, XC2336A-56F, XC2336A-72F, XC2336B-24F, XC2336B-40F,XC2338B-24F, XC2338B-40F, XC2361A-56F, XC2361A-56F, XC2361A-72F, XC2361B-40F, XC2361E-104F, XC2361E-136F, XC2363A-56F, XC2363A-72F, XC2364A-104F, XC2364A-56F, XC2364A-72F, XC2364B-24F, XC2364B-40F, XC2365-48F, XC2365-56F, XC2365-72F, XC2365A-104F, XC2365A-56F, XC2365A-72F, XC2365B-40F, XC2365E-136F, XC2368E-104F, XC2368E-136F, XC2387-72F,XC2387A-104F, XC2387A-56F, XC2387A-72F, XC2387C-136F, XC2388C-136F, XC2388C-200F, XC2388E-104F, XC2388E-136F,XC2712X-8F, XC2722X-8F, XC2723X-20F, XC2733X-20F, XC2734X-32F, XC2734X-40F, XC2764X-32F, XC2764X-40F, XC2765X-104F,XC2765X-72F, XC2765X-96F, XC2766X-96F, XC2768X-104F, XC2768X-136F, XC2785X-104F, XC2785X-72F, XC2786X-96F, XC2787X-136F, XC2787X-200F, XC2788X-104F, XC2788X-136F, XC2797X-136F, XC2797X-200F, XE162FM-24F, XE162FM-48F, XE162FM-72F,XE162FN-16F, XE162FN-24F, XE162FN-40F, XE162HM-24F, XE162HM-48F, XE162HM-72F, XE162HN-16F, XE162HN-24F, XE162HN-40F, XE164F-24F, XE164F-48F, XE164F-72F, XE164F-96F, XE164FM-24F, XE164FM-48F, XE164FM-72F, XE164FN-16F, XE164FN-24F, XE164FN-40F, XE164G-24F, XE164G-48F, XE164G-72F, XE164G-96F, XE164GM-24F, XE164GM-48F, XE164GM-72F, XE164GN-16F, XE164GN-24F, XE164GN-40F, XE164H-24F, XE164H-48F, XE164H-72F, XE164H-96F, XE164HM-24F, XE164HM-48F, XE164HM-72F, XE164HN-16F, XE164HN-24F, XE164HN-40F, XE164K-24F, XE164K-48F, XE164K-72F, XE164K-96F, XE164KM-24F, XE164KM-48F, XE164KM-72F, XE164KN-16F, XE164KN-24F, XE164KN-40F, XE167F-48F, XE167F-72F, XE167F-96F, XE167FH-136F, XE167FH-200F, XE167FM-48F, XE167FM-72F, XE167G-48F, XE167G-48F, XE167G-72F, XE167G-96F, XE167GM-48F, XE167GM-72F, XE167H-48F, XE167H-72F, XE167H-96F, XE167HM-48F, XE167HM-72F, XE167K-48F, XE167K-72F, XE167K-96F, XE167KM-48F, XE167KM-72F, XE169FH-136F, XE169FH-200F
  • Lapis Semiconductor (ARM7/ARM9/Cortex Family)
    ML674000, ML674001, ML674002, ML674003, ML675001, ML675002, ML675003, ML675011, ML67Q4050



Support all with ISP, PDI interface AVR (mainstream AVR with ISP interface, xmega with PDI interface)

  •          AVR Studio4.1x interface
  •          Supports ISP programming for all AVR chips
  •          Flash and EEPROM can be programmed
  •          Supports programming of capacitive and locked bits
  •          Supports RC oscillator calibration
  •          Can be upgraded to support the latest chips
  •          Can work between 2.7 volts and 5.5 volts
  •          Speed adjustable, support 50hz ~ 8mhz isp clock frequency
  •          Use USB up to 12MHZ full speed communication, compatible with USB2.0
  •          Can be directly used USB or target board power supply without additional power supply
  • Support model list The USB AVR ISP MKII programmer and ATMEL original AT ISP MKII programmer support the same device model, the latest support Xmega full range of PDI interface and the new 6 ATtiny series of TPI interface


    Description This product is domestic USB AVR ISP MKII, 100% compatible with the original AT ISP MKII programmer, support the original firmware automatic upgrade, with ISP, PDI and the latest TPI three download.

STM32 ARM STM32F103C8T6 Minimum System Microcontroller core board


STM32F103C8T6 minimum system core board

Product introduction

This is a based on STM32F103C8T6 ARM chip core chip , has the following characteristics:

1, on board the most basic circuit based on MCU , such as crystal oscillator circuit, USB power management circuit and USB interface.

2, the core board leads to all the I / O port resources.

3, with SWD simulation debug download interface, the interface requires at least 3 lines to complete the debug download task, compared to the traditional JTAG debugging has many benefits, insert a sentence here, JTAG now have a lot to be eliminated trend, For example, ST M0 series of new MCU only retained the SWD debug interface, JTAG was canceled

4, the size is only the size of the traditional DIP40 package (such as AT89S52 ), has not yet found on Taobao smaller than the same specifications of the core board.

5, using the current Mirco USB smart phone interface, easy to use, can do USB communication and power supply.

6. For the problem that the STM32 RTC can not vibrate, we adopt the officially recommended low-load RTC crystal solution and use the Epson brand crystal instead of the cheap cylindrical crystal.

7, with a single row of high quality 1 * 40 / 2.54mm pitch pin to ensure good conductive contact, user-friendly core board placed on the standard board or breadboard. Header default is not welded, the user can choose according to their needs welding direction.

Chip Description: 1, STM32F103C8T6

Package Type: LQFP;

Number of pins: 48;

Kernel: Cortex- M3;

Working frequency: 72MHz;

Storage resources: 64K Byte Flash, 20KByte SRAM;

Interface Resources: 2x SPI, 3x USART, 2x I2C, 1x CAN, 37x I / O,

A / D conversion: 2x ADC (12-bit / 16-channel)

Timer: 3 ordinary timer 1 advanced timer

Debugging Download: support JTAG / SWD interface debug download, support IAP.

2, RT9193: 3.3V voltage regulator chip, the maximum output 300mA.

Other MCU parameters are as follows

 Interface Description: 
1, SWD interface: support for simulation, download and debugging.

2, Mirco USB interface: power supply and USB communication function, does not support download.

3, USART1 interface: USART1 can be used to download program, or use the USART1 for communication.

4, MCU pin interface: leads all I / O port pins, easy to connect with peripherals.

5, 5V and 3.3V power input and output interface: Commonly used in external power supply, or with other modules to deal with 
 other devices Description:

1, Power LED (PWR): power indication status, to determine whether the power is stable.

2, the user LED (PC13): easy I / O output test or indicate the program running status.

3, start jump jump to choose programming: (1, user flash 2, SRAM 3, system memory).

4, reset button: for user reset chip program.

5,8 M Crystal: frequency multiplier can be set so that the system clocked at 72MHz.

6,32.768KHz Crystal: for built-in RTC use, or for calibration.



Product Image:


PICAXE 08M2 Microcontroller (8 pin)

Description: PICAXE-08M2 microcontroller chip.

PICAXE is a neat entry-level microcontroller system that is relatively cheap to get started with. The chip is programmed with a simple serial connection and the BASIC development environment is free! PICAXE has some excellent educational applications and support, and is a great entryway into more complicated embedded ...more detail given below

Description: PICAXE-08M2 microcontroller chip.

PICAXE is a neat entry-level microcontroller system that is relatively cheap to get started with. The chip is programmed with a simple serial connection and the BASIC development environment is free! PICAXE has some excellent educational applications and support, and is a great entryway into more complicated embedded systems. If you’re look for a place to start with microcontrollers, PICAXE is a great way to go!


Source: Sparkfun

NodeMCU Devkit 2.0 Kit

NodeMCU is an open source IoT platform.It uses the Lua scripting language. It is based on the eLua project, and built on the ESP8266 SDK 0.9.5. It uses many open source projects, such as lua-cjson,and spiffs. It includes firmware which runs on the ESP8266 Wi-Fi SoC, and hardwarewhich is based on the ESP-12 module.

NodeMCU is an open source IoT platform.It uses the Lua scripting language. It is based on the eLua project, and built on the ESP8266 SDK 0.9.5. It uses many open source projects, such as lua-cjson,and spiffs. It includes firmware which runs on the ESP8266 Wi-Fi SoC, and hardwarewhich is based on the ESP-12 module.

It is the 5th design of NodeMCU devkit. It uses CP2102 as UART bridge, and can flash firmware automatically by using nodemcu-flasher. It support apple's MAC OS.

Easy to access wireless router
Based on Lua 5.1.4 (without debug, os module.)
Event-Drive programming preferred.
Build-in json, file, timer, pwm, i2c, spi, 1-wire, net, mqtt, coap, gpio, wifi, adc, uart and system api.
GPIO pin re-mapped, use the index to access gpio, i2c, pwm.
Both Integer(less memory usage) and Float version firmware provided.

Build on ESP8266 sdk 0.9.5
Lua core based on eLua project
cjson based on lua-cjson
File system based on spiffs
Flash the firmware

nodemcu_latest.bin: 0x00000
for most esp8266 modules, just pull GPIO0 down and restart.
You can use the nodemcu-flasher to burn the firmware.

Or, if you build your own bin from source code.
0x00000.bin: 0x00000
0x10000.bin: 0x10000

Better run file.format() after flash

Connect the hardware in serial


Start play

Connect to your ap

ip = wifi.sta.getip()
-- nil
ip = wifi.sta.getip()
Manipulate hardware like a arduino

pin = 1
Write network application in nodejs style

-- A simple http client
conn=net.createConnection(net.TCP, 0)
conn:on("receive", function(conn, payload) print(payload) end )
conn:send("GET / HTTP/1.1rnHost: www.baidu.comrn"
    .."Connection: keep-alivernAccept: */*rnrn")
Or a simple http server

-- A simple http server

Hello, NodeMcu.

  conn:on("sent",function(conn) conn:close() end)
Connect to MQTT Broker

-- init mqtt client with keepalive timer 120sec
m = mqtt.Client("clientid", 120, "user", "password")
-- setup Last Will and Testament (optional)
-- Broker will publish a message with qos = 0, retain = 0, data = "offline"
-- to topic "/lwt" if client don't send keepalive packet
m:lwt("/lwt", "offline", 0, 0)
m:on("connect", function(con) print ("connected") end)
m:on("offline", function(con) print ("offline") end)
-- on publish message receive event
m:on("message", function(conn, topic, data)
  print(topic .. ":" )
  if data ~= nil then
-- for secure: m:connect("", 1880, 1)
m:connect("", 1880, 0, function(conn) print("connected") end)
-- subscribe topic with qos = 0
m:subscribe("/topic",0, function(conn) print("subscribe success") end)
-- or subscribe multiple topic (topic/0, qos = 0; topic/1, qos = 1; topic2 , qos = 2)
-- m:subscribe({["topic/0"]=0,["topic/1"]=1,topic2=2}, function(conn) print("subscribe success") end)
-- publish a message with data = hello, QoS = 0, retain = 0
m:publish("/topic","hello",0,0, function(conn) print("sent") end)
-- you can call m:connect again
UDP client and server

-- a udp server
s:on("receive",function(s,c) print(c) end)
-- a udp client
cu:on("receive",function(cu,c) print(c) end)

Package Included:
1 X NodeMCU Devkit 2.0

ATmega32L AVR 8-bit Microcontroller

8-bit Microcontroller with 32KBytes In-System Programmable Flash

Datasheet: http://www.atmel.com/Images/doc2503.pdf

ATMEGA328P-AU Micro-controller SMD QFP-32 Package

8-bit Microcontrollers - MCU 32KB In-system Flash 20MHz 1.8V-5.5V
Op.Temperature:-40 ~ 85 degree
Series: ATMega

datasheet: http://www.atmel.com/Images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

PCF8591 AD and DA Converter Module Analog to Digital and Digital to Analog Conversion Module


1. A module chip using PCF8591
2. module supports external voltage input capture (input voltage range 0-5v)
3. Three modules integrated photoresistor acquisition environment through the AD intensity accurate numerical
4. modules integrated thermistor, can capture the precise value of the ambient temperature through the AD
5. The five-module integrated 1 channel 0-5V voltage input acquisition (blue potentiometer to adjust the input voltage)
6. modules with power indicator light (on the module after power indicator lights)
7. modules with the DA output indicator light board DA output indicator module DA output interface voltage reaches a certain value, the voltage the greater the light brightness is more obvious;
8. module PCB size: 3.6cm * 2.3cm
9. standard double-sided, plate thickness 1.6mm, the layout is nice, surrounded by the through-hole, aperture: 3mm, convenient fixed

Performance indicators:
Single-Supply Operation
PCF8591 operating voltage range of 2.5V to 6V
Low standby current
Through the I2C bus serial input / output
PCF8591 by 3 hardware address pins addressing
Sampling rate PCF8591 I2C bus rate decided
4 analog inputs programmable as single-ended or differential inputs
Automatic incremental channel selection
PCF8591 analog voltage range from VSS to VDD
PCF8591 built-in track and hold circuit
8-bit successive approximation A / D converter
Through an analog output DAC gain

Module interface:

The module's left and right, respectively, the external expansion of 2-way pin interface, respectively, as follows:
Output interface of the left the AOUT chip DA
The AINO chip analog input interface.
AIN1 chip analog input interface
AIN2 chip analog input interface
AIN3 chip analog input interface
The right side of the SCL IIC clock interface to access the microcontroller IO port
The SDA IIC digital interface connected microcontroller IO port
GND module to an external
VCC power supply interface external 3.3v-5v
Module red jumper instructions for use
Module three red short circuit cap, respectively, the role are as follows:
P4 connected to the P4 jumper, select thermistor access circuit
P5 connected to P5 jumper to select the photoresistor access circuit
P6 connected to the P6 jumper, to select 0-5V adjustable voltage access circuit


Package Included:
1 X PCF8591 Module
4 X Dupond Cable