ArmModMid - ARM 32bit processor Module

*** Preliminary ***


What Is It ?

For hobbyist and educational electronics the usage of small 8bit micro-processors in simple and relatively large, dual in-line packages, have been the norm. The Microchip PIC series and Atmel AVR series are very popular and PCB's can be easily produced and assembled with them. More recently there has been a big push in low cost and low power 32bit ARM based microprocessors. These are a lot more powerful than 8bit ones, and due to their 32bit architecture are easier to program. Unfortunately they only tend to come in small packages with fine pin spacing that make it difficult to use for the hobbyist and student when making their own electronics PCB designs.

The idea of the ArmModMid unit is to provide a simple and small ARM processor based module that can be installed onto hobbyist and student designed and built electronics PCB's allowing them to easily make use of this technology. It connects to the users PCB through two 20way 2mm pitch connectors or soldered pinholes. The module is relatively small at 59mm x 29mm.

As well as a 32bit ARM STM32M4 processor, it has a USB interface, 14 ADC channels, a MicroSD card holder and a battery backed up real-time clock amongst other features making it especially useful as a data logger, robot control and general control module.


The ArmModMid is designed with data logging usage in mind. It has the following core features:
The ARM STM32F405 on the ArmModMid provides the following core features:

32bit ARM core running at up to 168MHz
1 Mbyte
192 kbytes
4 kbytes of battery backed up RAM for non-volatile memory store
USB 2.0 high-speed/full-speed interface
14 channels into 3 x 12bit ADC's at up to 2.4 mega samples per second
2 channels from 2 x 12bit DAC's
14 timers (16 and 32bit)
Up to 16 PWM channels
2 x I2C interfaces
2 x SPI interfaces
4 x serial port UARTS
2 x CAN bus
Battery backed up real time clock for date and time
31 lines of general digital IO lines shared with peripherals


The 32bit ARM core provides a lot of power to create sophisticated systems. To help with harnessing this power in an easy to use way we provide the ArmSys software system. This provides a simple to use integrated development environment with GNU C++/C compiller tool set and the ArmSys C++ class library to make programing the systems relatively easy along with examples.
Features of the ArmSys environment are:
ArmSys IDE


The ArmModMid user manual
STM32 overal description
STM32M405 electrical manual
STM32M405 reference manual doc/STM32F405xx-reference.pdf
STM32M405 programming manual doc/STM32F405xx-programming.pdf