MCUs and FPGAs
We have several microcontroller units (MCU) and field programmable gate arrays (FPGA) for students to use.
Microcontroller Kits


DuinoKit allows you to program with an Arduino microprocessor.
DuinoKit Educator
Component List: Arduino NANO compatible microprocessor, ADXL345 Acceleration Sensor, Ultrasonic Distance Sensor, Auto-Off Module, IR Remote Controller, PS2 Joystick Module, Relay, Stepper Motor, ULN2003-based Stepper Motor Driver, DHT-11 Temperature & Humidity Sensor, LED Bar Graph Array, Active Buzzer, Passive Buzzer, Servo, Analog Temperature Sensor(Thermistor), Power Supply Module, 4*4 Matrix Keyboard, DC Motor, L9110 Motor Driver, LCD1602, 8x8 Dot-matrix LED Display, 8 digits 7-segment Display with Shift Register, 7-segment LED Display, Light Sensor(Photoresistor), Tilt Switch, Switches, RGB LED, Red LEDs, Green LED, Yellow LED, Blue LEDs, Resistors(220Ω), Resistors(1KΩ), Resistors(10KΩ), Potentiometers(10KΩ), Capacitors(104), Capacitors(10uF), Buttons, NPN Transistors(8050), PNP Transistors(8550), 1N4148 Diodes, 1N4001 Diodes, Battery Holder, Breadboard, USB Cable, Male to Male Jumper Wires, Male to Female Jumper Wires, Band Resistor Card, Rotary Encoder, oLed 64x128 module, IRF520 Mosfet transistor, TSOP4838 IR receiver module, 8 digits, 7 segment display module with MAX7221 driver, 8x8 LED array with MAX7221 driver, DS1307 Real Time Clock Module, 2N2222 Transistor, 2N2907 Transistor, 10 WS2812B LED Strip
DuinoKit IoT
Component List: Arduino compatible ESP32 microprocessor, GPS module, Passive Infared Motion Sensor (PIR), ADXL345 Acceleration Sensor, Ultrasonic Distance Sensor, Auto-Off Module, IR Remote Controller, PS2 Joystick Module, Relay, Stepper Motor, ULN2003-based Stepper Motor Driver, DHT-11 Temperature & Humidity Sensor, LED Bar Graph Array, Active Buzzer, Passive Buzzer, Servo, Analog Temperature Sensor(Thermistor), Power Supply Module, 4*4 Matrix Keyboard, DC Motor, L9110 Motor Driver, LCD1602, 8x8 Dot-matrix LED Display, 8 digits 7-segment Display with Shift Register, 7-segment LED Display, Light Sensor(Photoresistor), Tilt Switch, Switches, RGB LED, Red LEDs, Green LED, Yellow LED, Blue LEDs, Resistors(220Ω), Resistors(1KΩ), Resistors(10KΩ), Potentiometers(10KΩ), Capacitors(104), Capacitors(10uF), Buttons, NPN Transistors(8050), PNP Transistors(8550), 1N4148 Diodes, 1N4001 Diodes, Battery Holder, Breadboard, USB Cable, Male to Male Jumper Wires, Male to Female Jumper Wires, Band Resistor Card, Rotary Encoder, oLed 64x128 module, IRF520 Mosfet transistor, TSOP4838 IR receiver module, 8 digits, 7 segment display module with MAX7221 driver, 8x8 LED array with MAX7221 driver, DS1307 Real Time Clock Module, 2N2222 Transistor, 2N2907 Transistor, 10 WS2812B LED Strip
(You will need your own Mac / PC / or Linux based computer for uploading the programs to the Arduino compatible processor.)
Online course tutorials and lessons Moodle Classroom server (TinkerCode.us) Course materials and component lessons are available to individuals and private classrooms with teacher access can be created for groups with lesson assessments.
Microcontrollers

Arduino Uno is a microcontroller board based on the ATmega328P. It has 14 digital input/output pins (of which 6 can be used as PWM outputs), 6 analog inputs, a 16 MHz ceramic resonator (CSTCE16M0V53-R0), a USB connection, a power jack, an ICSP header and a reset button. It contains everything needed to support the microcontroller; simply connect it to a computer with a USB cable or power it with a AC-to-DC adapter or battery to get started.. You can tinker with your Uno without worrying too much about doing something wrong, worst case scenario you can replace the chip for a few dollars and start over again.
"Uno" means one in Italian and was chosen to mark the release of Arduino Software (IDE) 1.0. The Uno board and version 1.0 of Arduino Software (IDE) were the reference versions of Arduino, now evolved to newer releases. The Uno board is the first in a series of USB Arduino boards, and the reference model for the Arduino platform; for an extensive list of current, past or outdated boards see the Arduino index of boards.


The Arduino Nano is a small, complete, and breadboard-friendly board based on the ATmega328 (Arduino Nano 3.x). It has more or less the same functionality of the Arduino Duemilanove, but in a different package. It lacks only a DC power jack, and works with a Mini-B USB cable instead of a standard one.
The Nano ESP32, a powerful addition to the Arduino ecosystem that brings the popular ESP32-S3 to the world of Arduino and MicroPython programming. Whether you're a beginner stepping into the world of IoT or MicroPython, or an advanced user looking to incorporate it into your next product, the Nano ESP32 is the perfect choice. It covers all your needs to kick-start your IoT or MicroPython project with ease.
Tiny footprint: Designed with the well-known Nano form factor in mind, this board's compact size makes it perfect for embedding in standalone projects.
- Wi-Fi® and Bluetooth®: Harness the power of the ESP32-S3 microcontroller, well-known in the IoT realm, with full Arduino support for wireless and Bluetooth® connectivity.
- Arduino and MicroPython support: Seamlessly switch between Arduino and MicroPython programming with a few simple steps. We even offer an introductory course for those new to the MicroPython world, find more information in the documentation page.
- Arduino IoT Cloud compatible: Quickly and easily create IoT projects with just a few lines of code. Our setup takes care of security, allowing you to monitor and control your project from anywhere using the Arduino IoT Cloud app. (Available starting August 2023)
- HID support: Emulate human interface devices, such as keyboards or mice, over USB, opening up new possibilities for interacting with your computer.
There are no more excuses to delay your exploration of IoT and MicroPython. The Nano ESP32 provides everything you need to start creating and discovering the endless possibilities.

The Teensy is a complete USB-based microcontroller development system, in a very small footprint, capable of implementing many types of projects. All programming is done via the USB port. The Teensy is available with header pins, for direct no-soldering-required use on a breadboard, which can also be run from the +5 volt from the USB cable. Standard Teensy boards come with solder pads. Either way, all Teensy boards come fully assembled and tested, so no surface mount soldering is needed.
Key Features:
- Compatible with Arduino Software & Libraries
- USB can be any type of device
- Single pushbutton programming
- Easy to use Teensy Loader application
- Free software development tools
- Works with Mac OS X, Linux & Windows
- Tiny size, perfect for many projects
- Available with pins for solderless breadboard
FPGAs

A field-programmable gate array (FPGA) is a configurable integrated circuit that can be programmed using an HDL (Hardware Description Language). FPGAs are a subset of logic devices referred to as programmable logic devices (PLDs). They consist of a grid-connected array of programmable logic blocks that can be configured "in the field" to interconnect with other logic blocks to perform various digital functions.
Alchitry Mojo is a development board based around the Xilinx Spartan 6 FPGA and the ATMega32U4 8-bit microcontroller. This device is the board used in the book "Learning FPGAs" by Justin Rajewski. It used by interns in the program to develop the IO devices for the calculator project.
The Mojo has an Arduino-compatible microcontroller whose main function is to program the FPGA over USB. However, once the FPGA is programmed, the microcontroller can be used as an ADC (eight analog inputs are broken out) and a USB-to-serial interface for your FPGA designs. Beyond the other bare necessities such as a 50 MHz oscillator, the Mojo features eight LEDs and a button (commonly used as a reset).
The I/O (a total of 84 digital I/O pins) on the Mojo is all at 3.3 V and is not 5 V tolerant. A level shifter was used at the junction between the FPGA and the 8085 microprocessor. Power can be supplied via the USB port, the barrel jack, the two holes, or the RAW input on the large headers. The supplied power should be between 4.8 V–12 V, with 5 V being the recommended voltage. You can connect an external power supply and the USB port at the same time, as the USB port is protected by a diode.
This device has been discontinued by the manufacturer and its use is deprecated in the program.


Alchitry Cu is a development board based around the Lattice iCE40 FPGA. It has 79 - 3.3V IO pins broken out across two headers

Digilent Cmod A7 is a development board based around the Xilinx Artix 7 FPGA.


Micro-Nova Mercury 2 is a development board based around the Xilinx Artix 7 FPGA. Technical Specifications
- Xilinx Artix-7 FPGA (XC7A35T or XC7A100T)
- FTDI FT2232H 480Mbps USB 2.0 interface
- Channel A: device configuration and debugging (SPI Flash programming and USB-JTAG interface)
- Channel B: user-configurable interface between the FPGA and host for high-speed data transfer
- 50MHz MEMS oscillator (±50ppm)
- External Memory
- 32Mbit SPI configuration / user Flash
- 4Mbit (512K x 8-bit) or 16Mbit (2M x 8-bit) 10ns asynchronous SRAM
- Analog I/O
- Microchip MCP 3008 8-channel, 200 KSPS, 10-bit ADC
- Microchip MCP 4812 2-channel, 225 KHz, 10-bit DAC
- Artix-7 internal XADC 1MSPS , 12-bit ADC, accessible on dedicated ADC input or mappable to FPGA-direct IO
- Digital I/O
- 40x 5-volt tolerant IO pins provided by 2x TI SN74CB3T16210 bus switches
- 10x FPGA-direct high speed IO pins
- 3x User LEDs
- On-board Microchip LAN8720A 10/100 Ethernet PHY
- Expansion headers for Ethernet and Wi-Fi communication modules
- 6-pin header for direct JTAG interface to the Artix-7 FPGA
- Power
- Powered from Micro USB input or external 4.5 - 5.5V regulated power source
- On-board high-efficiency switching regulators for 3.3V, 1.8V and 1.0V rails