Last edit: 2021-03-21 22:34 by Majenko
UltraNano
The Majenko Technologies UltraNano is probably the smallest, and yet one of the most handy, PIC32 development boards available, especially if you are doing anything that requires a USB interface to a PC. Flexible IO options, and built-in USB connector and incredibly small size make this ideal for developing small USB dongles and interfaces.
-
The Board Design
-
Useful Board Pins
-
LEDs
-
Pin Layout
-
Analog Inputs
-
Serial Objects
-
I2C
-
SPI
-
Bootloader Button
-
Bootloading
¶The Board Design
- PIC32MX250F128B-50I/ML microcontroller, which includes 128KB Flash and 32K RAM
- Supported as development target from within MPIDE and UECIDE
- 13 I/O pins (plus 2 on-board functions)
- CPU runs at 48MHz
- Built-in USB A "Tongue" connector
- Two buttons: RESET for resetting the board, and PROG for getting into bootloader mode and user application use
- USB bootloader pre-programmed at the factory – no other hardware needed to program board
¶Useful Board Pins
¶LEDs
PIN_LED1 is on its own distinct IO pin so it doesn't conflict with any of the normal IO pins.
¶Pin Layout
The pins are numbered throughout the main header starting from 0 and arranged in a zig-zag pattern. VIN is a separate pin by itself. Functions in bold are the recommended primary use for the pin (excepting GPIO and analog).
Extra |
Functions |
Ana |
Pin |
Ana |
Functions |
VIN |
style="text-align: right;" |
GND[This pin is not a controllable IO pin but is still included in the pin numbering] |
|
0 |
1 |
rowspan="9" |
|
style="text-align: right;" |
RB0, PWM, UART2 TX |
style="text-align: center;" |
A0 |
style="background-color: #88ee88; text-align: right;" |
RB14, SPI SCK |
|
4 |
5 |
style="text-align: center;" |
style="background-color: #88ee88; text-align: right;" |
RB1, SPI SDI (MISO) |
style="text-align: center;" |
A3 |
6 |
7 |
style="text-align: right;" |
RB15, SPI2 SCK |
style="text-align: center;" |
A4 |
8 |
9 |
style="text-align: right;" |
RESET |
|
10 |
11 |
|
style="background-color: #ee8888; text-align: right;" |
RB8, I2C SCL, SPI2 SDO |
|
12 |
13 |
|
style="text-align: right;" |
RA1, UART2 RX, PWM |
style="text-align: center;" |
A5 |
14 |
15 |
colspan="6" style="background-color: #888888;" |
|
|
|
|
|
style="text-align: right;" |
RB13, LED, PWM[This pin has no external connection on the board] |
|
16 |
17 |
|
¶Analog Inputs
Analog Input |
Digital Pin |
A0 |
2 |
A1 |
3 |
A2 |
5 |
A3 |
6 |
A4 |
8 |
A5 |
14 |
A6 |
15 |
¶Serial Objects
Serial Object |
UART |
TX Pin |
RX Pin |
Serial |
style="text-align: center;" |
USB |
colspan="2" style="text-align: center;" |
Serial0 |
style="text-align: center;" |
UART1 |
style="text-align: center;" |
Serial1 |
style="text-align: center;" |
UART2 |
style="text-align: center;" |
¶I2C
Channel |
SCL (Clock) |
SDA (Data) |
DTWI0 / Wire |
12 |
13 |
DTWI1 |
3 |
5 |
¶SPI
Channel |
SCK (Clock) |
SDO (MOSI) |
SDI (MISO) |
DSPI0 / SPI |
4 |
5 |
6 |
DSPI1 |
8 |
12 |
11 |
¶Bootloader Button
Bootloader Button (PROG) is on its own separate IO pin, and you can use the constant PIN_BTN1 in your sketch to read this button. Note that there is no
pullup or pulldown resistor on this button, so the use of pinMode(PIN_BTN1, INPUT_PULLUP);
is required.
¶Bootloading
When you want to upload a new sketch to the UltraNano board, you need to put it into bootloader mode. This is done by holding down the PROG button while pressing and releasing the RESET button, then releasing the PROG button. This will reset the UltraNano, and engage the bootloader, which will create a virtual serial port over USB, and wait for MPIDE/UECIDE/Arduino to upload a new sketch. You can also trigger the bootloader from within your sketch.