The μPSD32xx family, from ST, consists of Flash programmable system devices with a 8032 Microcontroller Core. Of these, the μPSD3234A and μPSD3254A are notable for having a complete implementation of the USB hardware directly on the chip, complying with the Universal Serial Bus Specification, Revision 1.1. This application note describes a demonstration program that has been written for the DK3200 hardware demonstration kit (incorporating a μPSD3234A device). It gives the user an idea of how simple it is to work with the device, using the HID class as a ready-made device driver for the USB connection. IN-APPLICATION-PROGRAMMING (IAP) AND IN-SYSTEM-PROGRAMMING (ISP) Since the μPSD contains two independent Flash memory arrays, the Micro Controller Unit (MCU) can execute code from one memory while erasing and programming the other. Product firmware updates in the field can be reliably performed over any communication channel (such as CAN, Ethernet, UART, J1850) using this unique architecture. For In-Application-Programming (IAP), all code is updated through the MCU. The main advantage for the user is that the firmware can be updated remotely. The target application runs and takes care on its own program code and data memory. IAP is not the only method to program the firmware in μPSD devices. They can also be programmed using In-System-Programming (ISP). A IEEE1149.1-compliant JTAG interface is included on the μPSD. With this, the entire device can be rapidly programmed while soldered to the circuit board (Main Flash memory, Secondary Boot Flash memory, the PLD, and all configuration areas). This requires no MCU participation. The MCU is completely bypassed. So, the μPSD can be programmed or reprogrammed any time, any where, even when completely uncommitted. Both methods take place with the device in its normal hardware environment, soldered to a printed circuit board. The IAP method cannot be used without previous use of ISP, because IAP utilizes a small amount of resident code to receive the service commands, and to perform the desired operations.