OLIMEX DuinoMite User manual

DuinoMite User's Manual
Revision 1.03 December 2011
Copyright 2011, Olimex Ltd ( ased on original Maximite by Geoff Graham www.geoffg.net)
Released under Creative Commons Attribution Share Alike 3.0 United States Licensee

1. INTRODUCTION
DuinoMite is a series of compact development boards based on the PIC32 microcontroller from
Microchip Technology Inc.
The DuinoMite is a complete computer, running a ASIC interpreter called MM- asic (originally
written by Geoff Graham), which when interfaced with a PS2 keyboard and VGA monitor, is
reminiscent of the old retro APPLE][ and TRS-80 personal computers. No need for a PC, no need for
compilers IDEs, programmers, all you need to write embedded applications is DuinoMite.
DuinoMites have ARDUINO shield connectivity, allowing ARDUINO shields to be directly interfaced,
making the DuinoMite the world's first stand alone ARDUINO Single oard Complete ASIC
computer .
DuinoMite is a completely open source platform and the schematic and board files are available for
download from the Olimex (www.olimex.com) web site and released under the Creative Commons
Attribution-Share Alike 3.0 United States License, which generally means that you are free to use these files
to create your own product providing you credit Olimex as the source and release your files with the
same license as well.
The heart of DuinoMite is the PIC32M 795F512 which, amongst others, includes the following
features: On-Chip: 80Mhz clock operation, 512K Flash memory, 128K RAM memory, US with
OTG functionality, UARTs, SPIs, I2C, ADC, CAN, PMP.
Three DuinoMite boards are in production:
DuinoMite-Mega http://www.olimex.com/dev/DUINO/duinomite-mega.hrml
DuinoMite-Mini http://www.olimex.com/dev/DUINO/duinomite-mini.hrml
DuinoMite http://www.olimex.com/dev/DUINO/duinomite.hrml
and two more boards are in design phase at the current date:
DuinoMite-eMega board with Ethernet, Internal Flash and PMP, with possibility for color VGA output.
PIC32-T795 which is a low cost, general purpose, development board for easy bread-boarding using
wire jumpers.

2. BOARDS
2.1. DuinoMite-Mega
This is, to date, the most sophisticated board from DuinoMite range of boards.
The schematic of the current revision of the DuinoMite-Mega can be found online in the DUINO
section at http //www.olimex.com/dev, you will also find the CAD schematics and board files.

DuinoMite-Mega is available for sale as either a pre-assembled board only or alternatively, in a laser
cut, custom made plastic enclosure:

Hardware features:
–PIC32MX795F512H processor running at 80Mhz with 128KB RAM and 512KB Flash
–DC-DC power supply 9-30V DC input
–US Device / US Host OTG
–mini SD card socket
–two EXT connectors, one inside enclosure, one outside
–CAN connector
–GPIO connector
–ARD INO shield connector
–PS2 Keyboard connector
–RS232 connector
–VGA connector
–Audio RCA jack
–Composite Video RCA jack
–Headphones 3.5 mm jack
–RESET and SER buttons
–three status LEDs
–build-in LiPo Lithium-Polimer battery charger
–ultra low power design which allow down to 30uA current consumption
–Industrial temperature operation -40+85C
–Noise immunity
–ICSP programming connector for programming and debugging
–32,768 KHz low frequency crystal allow implementation of RTC and low power modes

2.2. DuinoMite-Mini
This is the compact, low cost, entry level board with size of only 65 mm x 50 mm.
The schematic of the current revision of DuinoMite-Mini is at http://www.olimex.com/dev in the
DUINO section, where you can also find the CAD schematic and board files.
Hardware features:
–PIC32MX795F512H processor running at 80Mhz with 128KB RAM and 512KB Flash
–Linear power regulator, require EXACTLY 5V to the DC POWER JACK
–US Device DuinoMite-Mini can take power from US also, there is 3 way jumper
which selects which source is used the DC POWER JACK or the US
–mini SD card socket
–EXT connector
–GPIO connector
–PS2 Keyboard connector
–VGA connector
–RESET button
–SER buttons
–three status LEDs
–Commercial temperature operation -0+70C
–Noise immunity
–ICSP programming connector for programming and debugging
–32,768 KHz low frequency crystal allow implementation of RTC and low power modes

2.3. DuinoMite, DuinoMite-IO, DuinoMite-Shield
This is a compact, low cost board in ARDUINO form factor ready to interface with ARDUINO shields.
The schematic of the current revision of DuinoMite, DuinoMite-IO, DuinoMite-S ield is at
http://www.olimex.com/dev in DUINO section, where you will also find the CAD schematics and
board files.
Hardware features:
–PIC32MX795F512H processor running at 80Mhz with 128KB RAM and 512KB Flash
–DC-DC power supply 9-30V DC input
–US Device / US Host OTG
–mini SD card socket
–EXT connector
–EXT connector to connect DuinoMite-IO with Keyboard, Video, Audio connectors
–GPIO connector
–ARD INO shield connector
–D INOMITE-IO connector
–RESET and SER buttons
–three status LEDs
–build-in LiPo Lithium-Polimer battery charger
–ultra low power design which allow down to 30uA current consumption
–Industrial temperature operation -40+85C
–Noise immunity
–ICSP programming connector for programming and debugging
–32,768 KHz low frequency crystal allow implementation of RTC and low power modes

2.4. DuinoMite-eMega
This is a new Ethernet enabled board, still in development. The features will be similar to the
DuinoMite-Mega, but with some additional features such as Ethernet connector and PHY controller,
which will add a 100Mbit Ethernet interface to DuinoMite, 2M on board Data Flash which could be
used as disk for data and code storage. PMP external connector with 80Mhz clock which could be used
to interface to TFT displays, fast ADCs, allowing Duinomite to be used as Logic Analyzer, Digital
Storage oscilloscope, capture for fast external signals.

2.3. PIC32-T795 (breadboarding PIC32MX795)
This is a new breadboard based on Ken Segler's design. It is T-shaped and is intended to plug into a
breadboard. It incorporates a UEXT connector and US with Device and Host (OTG)
PIC32-T795 is the fastest way to make something with a breadboard and Jumper wires without the
need to solder.
PIC32-T795 can be reused many times as no soldering is required.

3. HARDWARE
3.1. POWER Supply
3.1.1. DuinoMite-Mega
DuinoMite-Mega can be powered by four different sources:
- POWER JACK with a 2.1 mm internal pin and 6 mm outer diameter, the inner pin is positive,
the voltage that the DuinoMite-Mega accepts on this connector is in range 9-30V DC, note that there
is a DC / DC power supply implemented, so the power consumption of this board is the same no matter
what the input voltage is, other similar boards we have seen use linear voltage regulators heat up when
a higher voltage is applied and wastes energy. There is a reverse voltage protection diode on this
connector, to protect against reverse polarity.
- USB power supply, when DuinoMite-Mega is connected via a US cable to a US host it will
take its 5V power supply from the US host source to power the board, note that depending on what
frequency the DuinoMite-Mega runs at, it may consume up to 140mA, so the US port needs to be able
to provide this current, some US ports are set to 100mA maximum current supply and may be not able
to power the DuinoMite-Mega.
- Lithium-Polimer battery, DuinoMite-Mega hardware is build to be very power efficient. In
Low Power mode DuinoMite-Mega consumes only 30uA (plus current draw from the I/O pins) while
the RTC low frequency clock is running, so this allows handheld and battery powered devices to be
built with the DuinoMite.
- VIN port on the Arduino platform Connector 1. Note that on this connector there is NO reverse
protection diode, so you should make sure 9-30V DC is applied to this port.
DuinoMite-Mega could be powered by more than one power source at the same time, for instance
POWER JACK and US at same time. The different power sources have different priorities, this
means when two or more power sources are available at the same time only one of them is used.
The priority is the POWER JACK and VIN, if the power supply is applied to any of these two
connectors, the power is sourced from them and not from the US and/or the battery, second priority is
US , if there is no power applied to POWER JACK or VIN and US is active then the power will be
taken from the US . The battery power supply is with lowest priority and board will take power from it
only if there is no power supply to any of the other sources.
DuinoMite-Mega has a built in LiPo battery charger, so once it senses power on POWER JACK, US
or VIN it will charge the LiPo battery (If present) until the battery is charged to 100%.
The switching between the different power supplies is done automatically and glitch free with no need
to change jumpers. oard power is not lost during voltage source switching.

The LiPo battery with 3.7V 1400mA capacity and JST connector for DuinoMite-Mega is available
from Olimex. At maximum frequency with a VGA monitor connected the consumption is 125mA which
will allow the DuinoMite-Mega to run about 10 hours on battery.
As the external power supply utilises a DC/DC converter and not a linear voltage regulator the
DuinoMite-Mega power consumption when running at maximum frequency and with a VGA monitor
and keyboard attached is 100mA when the input power supply is 12VDC. (at 30VDC the current will
drop to 40mA and will rise to 130mA at 9VDC).
3.1.2. DuinoMite-Mini
The DuinoMite-Mini power supply is made with a linear voltage regulator to save cost (an LM1117 is
used). The power source could be US connector or POWER JACK. The source is selected with a 3-
way jumper. The board has a protection ZENER diode (6.8V) on the input to protect the board from
over-voltage spikes on the power supply.
Note
The external power supply applied to the POWER JACK must be 5V REG LATED. Note that applying
non-regulated or voltage above 5V could DESTROY the DuinoMite-Mini.
Our recommendation is to use US to power this board or the cheap `under $2' power supply adapters
for iPods, iPads, e-readers etc. which are with specification 5V/1A and are available on e ay.
3.1.3. DuinoMite
The DuinoMite has same sophisticated power supply like DuinoMite-Mega and allows power supply
9-30VDC.

3.2. USB
The PIC32MX795 has a US controller which can work in two modes:
- US device, in this mode you can make US HID devices or US CDC devices and emulate
such devices like Keyboard, Mouse, Serial port etc., this mode is supported by all DuinoMite boards.
- US On-The-Go (OTG) host/device mode in which the US host PIC32 can interface US
mouse, US keyboard, US camera, US printers, US luetooth, WiFi modules, US memory stick
etc. Of course all of these devices need proper drivers to be implemented. This mode is not yet
supported by DuinoMite-Mini board.
Special care is taken in the DuinoMite design for US noise immunity and protection when it works in
host mode.
When working as US host DuinoMite may provide up to 500mA to the US devices attached, so this
should be taken into account when you size the power supply input voltage/current.
MM- ASIC uses US as an HID device during boot-loading when new firmware is updating, then as a
CDC serial port to establish a virtual console from which you can write your MM- ASIC code via a
terminal program with a US connection, thus there is no need to use a VGA monitor or PS2
Keyboard.
US -FAULT signal is low when there is no power supplied to either the US or the POWER JACK. It
is connected to port RG7 and could be used to detect when you are powered only on battery.

3.3. SD-CARD
A micro SD card connector is available on DuinoMite-Mega, DuinoMite-Mini, DuinoMite-eMega and
DuinoMite boards, this connector is with push-push action to insert and remove the card.
The uSD power supply is designed with ferrite bead filtering to minimise noise problems.
As DuinoMite, and DuinoMite-Mega are designed to be low power boards there is provision for the
SD-card power supply to be shut down, this is done with FET2 connected to ST _E on R 13 port of
PIC32.
SD-CARD presence is sensed by the SD_#CS connected to RD5 port, there is low pull down made
with 100K on this port so when there is no card inserted RD5 is read as 0, when SD card is inserted it
have 10K pullup inside which pull RD5 high and it's read as 1.
Note that the SPI used for the SD card is also wired to UEXT and ARDUINO connectors, so
programmer should take care of this when writing their code.

3.4. UEXT
The UEXT connector is a 10 pin connector which have the following signals: 3.3V power supply,
GND, Serial RX, Serial TX, SPI MOSI, SPI MISO, SPI CLK, I2C CLK, I2C DATA.
y having these signals available on a fixed interface allows us to develop different modules which can
be used on any board with a UEXT connector.
All DuinoMite boards have UEXT connectors and can interface Olimex's UEXT modules.
For more information on UEXT see: http://www.olimex.com/dev/OTHER/UEXT.pdf
Please look at the example section of this manual for sample MM- ASIC code for various modules.
The DuinoMite-Mega has two UEXT connectors one internal and one external.

3.5. ARDUINO SHIELDS
ARDUINO is popular platform for development by beginners and people with little knowledge in
electronics. This platform is gaining popularity and there are lot of projects using it. Arduino allows
various hardware modules to be stacked on top of each other. They are called SHIELDS.
DuinoMite and DuinoMite-Mega have this connector to allow ARDUINO SHIELDS to be connected.
This connector is also very useful for jumper wiring to an external breadboard.
The DuinoMite-Mini has no ARDUINO shield connector on board but has the 26pin GPIO connector
which can be connected to an external DuinoMite-S ield board, which adds the ARDUINO SHIELD,
connected via a 26 pin ribbon cable.
The ARDUINO SHIELD has these signals:
D0,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,
AREF, A0,A1,A2,A3,A4,A5
VIN, GND, 5V, 3.3V, RST, CTS, RTS
D0 – D13 are digital I/Os,
A0-A5 are analog I/Os,
VIN – input power which allows you to power DuinoMite (or Mega) by an external power supply
RST – reset
CTS, RTS – handshake signals from the Mega's RS232 connector, they are TTL levels.
MM- ASIC can access ARDUINIO SHIELDS with the PIN() function.
These ports may be digital inputs, digital outputs and analog inputs, note max voltage to these ports
should not exceed 3.3V as they may be damaged:
ARDUINO.A0 → PIN(1)
ARDUINO.A1 → PIN(2)
ARDUINO.A2 → PIN(3)
ARDUINO.A3 → PIN(4)
ARDUINO.A4 → PIN(5)
ARDUINO.A5 → PIN(6)
These ports may be digital inputs, digital outputs, they are 5V tolerant, so the maximum input voltage
which you should apply to them should not exceed 5V.
ARDUINO.D0 → PIN(11) → COM1:RX → COM4:RX from RS232 connector
ARDUINO.D1 → PIN(12) → COM1:TX → COM4:TX from RS232 connector
ARDUINO.D2 → PIN(13) → COM1:RTS
ARDUINO.D3 → PIN(14) → COM1:CTS
ARDUINO.D4 → PIN(15) → COM2:RX
ARDUINO.D5 → PIN(16) → COM2:TX
ARDUINO.D6 → PIN(17)
ARDUINO.D7 → PIN(18)

NOTES!
D0 & D1 are wired via protection resistors to the RS232 connector (COM4) on the DuinoMite-Mega
this means that if there are signals on the RS232 connector they will affect D0, if D1 is initialized as
INPUT this signal will merge with the signal on ARDUINO.D0 connector. Also if D1 is initialized as
output it will affect COM4 port transmission. If you want to separate COM4 from D0 and D1 you can
do this by removing R2 and R3.
As COM1: TX, RX are available on same D0 D1 ports anyway, R2 and R3 may be removed unless you
need a fast UART there.
These ports share more than one function together and should be used with care:
ARDUINO.D8 → PIN(19) → UEXT.CS/VIDEO.SELECT
ARDUINO.D9 → PIN(20) → LED2(YELLOW) VGA.SYNC
ARDUINO.D10 → PIN(7) → UEXT/SD.CARD.SS
ARDUINO.D11 → PIN(8) → UEXT/SD.CARD.MOSI
ARDUINO.D12 → PIN(9) → UEXT/SD.CARD.MISO
ARDUINO.D13 → PIN(10) → UEXT/SD.CARD.CLK
NOTES!!
If you use UEXT.SPI or SD-CARD note that the SPI signals also go to ARDUINO.D10-D13.
ARDUINO.D8 is shared with VIDEO.SELECT and UEXT.CS

3.6. CAN
Controller Area Network (CAN or CAN-bus) is a bus standard, generally used in the automotive
industry, designed to allow micro-controllers and devices to communicate with each other within a
vehicle, and without a host computer.
CAN is available only on the DuinoMite-Mega.
CAN is a very useful interface, it’s the de-facto standard for automotive bus applications, so by having
CAN it would be possible to connect to your car and read all of the data sensors for speed,
temperatures, fuel consumption, etc. This video can give you rough idea what you can do with CAN
and DuinoMite-Mega. http://www.youtube.com/watch?v=PbA_bOO2mMw
eing a robust and noise immune protocol, CAN is used not only in automotive but also in industrial
robot applications – For more information see the following links
http://en.wikipedia.org/wiki/DeviceNet
http://en.wikipedia.org/wiki/CANopen
CAN is not supported currently in MM- ASIC, but in a future firmware CAN will be implemented to
be seen as a file, the same as the COM ports, so you will be able to do OPEN “CAN” AS #1 and use
INPUT # , INPUT$ and PRINT # to send and receive CAN messages.
The CAN connector consists of these 3 signals:
CAN-H, CAN-L – these are the CAN physical layer twisted pair
GND - the shielding connection
The CAN end node should have termination resistor and if CAN-T is soldered (shorted) add such
termination resistor to the CAN bus.

3.7. GPIO
The original MaxiMite introduced the 26 pin GPIO connector. With the emergence of the DuinoMite
and support for ARDUINO we expanded the GPIO layout as shown below:
MM- ASIC allows the GPIO ports to be accessed with the PIN() command and function, and different
functions to be set with SETPIN command.
SETPIN configurations:
0 - not defined
1 - analog input AI
2 - digital input DI
3 - frequency input FI

4 - period input PI
5 - counter input CI
6 - interrupt low-to-high IP
7 - interrupt high-to-low IN
8 - digital output DO
9 - digital output open collector OC
MM asic Arduino 26pin header Allowable SETPIN
Referrence: Referrence Pin No. Configurations
PIN(1) → ARDUINO.A0 21 AI, DI, , , , IP, IN, DO,
PIN(2) → ARDUINO.A1 19 AI, DI, , , , IP, IN, DO,
PIN(3) → ARDUINO.A2 17 AI, DI, , , , , , DO,
PIN(4) → ARDUINO.A3 15 AI, DI, , , , , , DO,
PIN(5) → ARDUINO.A4 13 AI, DI, FI, PI, CI, IP, IN, DO,
PIN(6) → ARDUINO.A5 11 AI, DI, FI, PI, CI, IP, IN, DO,
PIN(7) → ARDUINO.D10 9 AI, DI, FI, PI, CI, IP, IN, DO,
PIN(8) → ARDUINO.D11 7 , DI, , , , , , DO, OC
PIN(9) → ARDUINO.D12 5 , DI, , , , , , DO, OC
PIN(10)→ ARDUINO.D13 3 , DI, , , , , , DO, OC
PIN(11)→ ARDUINO.D0 4 , DI, , , , , , DO,
PIN(12)→ ARDUINO.D1 6 , DI, , , , , , DO,
PIN(13)→ ARDUINO.D2 8 , DI, , , , , , DO, OC
PIN(14)→ ARDUINO.D3 10 , DI, , , , , , DO, OC
PIN(15)→ ARDUINO.D4 12 , DI, , , , , , DO, OC
PIN(16)→ ARDUINO.D5 14 , DI, , , , , , DO, OC
PIN(17)→ ARDUINO.D6 16 , DI, , , , , , DO, OC
PIN(18)→ ARDUINO.D7 18 , DI, , , , , , DO, OC
PIN(19)→ ARDUINO.D8 20 AI, DI, , , , , , DO,
PIN(20)→ ARDUINO.D9 22 AI, DI, , , , , , DO,
GND→ GND (x3) 1,2,25,26
+5V→ +5v (1) 23
+3.3V → +3.3v (1) 24
NOTE!!
The PIN(7), PIN(8), PIN(9), PIN(10) are marked with blue as they are multiplexed with SPI which is
used for UEXT and SD-card, this means that if UEXT or SD-card is accessed these lines will change
their states. Please do not use or use with care if you use also UEXT and SD-card operations in your
code.
PIN(19), PIN(20) are marked with blue as they are multiplexed with VGA.VSYNC and VGA.VIDEO-
DETECT. Please do not use or use with care if you use also VGA monitor.

3.8. PS-2 KEYBOARD
PS2 keyboard CLOCK is connected to RD6 and DATA is connected to RD7.
Note that the Keyboard requires 5V to work correctly, so the keyboard will not work when the
DuinoMite-Mega is powered by 3.7V LiPo battery.
Table of contents
Other OLIMEX Computer Hardware manuals

OLIMEX
OLIMEX ARM-JTAG-EW User manual

OLIMEX
OLIMEX IMX233-OLinuXino-MAXI User manual

OLIMEX
OLIMEX ES32-POE User manual

OLIMEX
OLIMEX AgonLight2 User manual

OLIMEX
OLIMEX ESP32-C6-EVB User manual

OLIMEX
OLIMEX AgonLight2 User manual

OLIMEX
OLIMEX AgonLight2 User manual

OLIMEX
OLIMEX ESP32-C3-DevKit-Lipo User manual

OLIMEX
OLIMEX SAM3-P256 User manual

OLIMEX
OLIMEX TMS320-XDS100-V3 User manual