Introduction: Insanely Small AVR/Arduino Microcontroller Development Board: T402 Atto
You can buy some absolutely tiny Arduino development boards eg the Beetle (20x22x3.8mm) and the 32-bit Seeeduino XIAO (20x17.5x3.5mm) but I wanted to see how far I could push it without a custom PCB. I recently bought some 1.27mm (0.05") matrix board and was getting into SMD construction.
This involved some big compromises: an 8-pin IC with only 4KB Flash, a non-standard programming header and no USB socket. But it does have a programming header, an LED and I/O headers you can push components or leads into. I could have used an ATTINY25/44/85 but that would have made it 1.27mm wider (at least for the ones I have).
The board is so cramped with its 1.27mm headers that's it's almost useless without making special leads to connect it to anything. You can push leaded resistors etc into it and the magnetometer demo does just that.
The first picture shows the board resting on an ancient Z80 for scale. The Z80 is so old the legs have rusted.
• size 6x6x8mm, or 6x13x8mm including the programming header
• microcontroller: Atmel ATTINY402 0-series AVR (or ATTINY412 1-series) with 4KB flash, 256B RAM and 128B EEPROM
• Arduino compatible with megaTinyCore board manager
• 6 I/O pins plus UPDI programming pin which can be used as an input *
• 1.27mm female headers for all pins
• UPDI programming header with ground and Vdd
• 1.8V to 5.5V supply
• Up to 20MHz clock plus 32kHz ultra-low power mode
• Plenty of interfaces: ADC, UART, I2C, SPI, TWI
* If you have an HV UPDI programmer (I only have a simple non-HV one I made) you can set the chip's UPDI pin to be normal I/O. Without one it can still with care be used a a digital input or analog (provided the voltage does not go between 25% of Vdd to 75% of Vdd - any signal that can be misinterpreted as a programming sequence may tip the chip into programming mode). You will need to make an adapter or wire a special cable for the non-standard programming header on the T402 atto. I made one using some of the 1.27mm female header you need to make the board. Plug up pin 3 of the female header so that the polarisation will help prevent plugging in wrong and damaging the T402 atto.
The links to suppliers are examples, not recommendations. There's always Digikey and ebay.
• Atmel ATTINY402 or 412 SOP-8 package. A 412 adds extra features including a DAC.
• 1.27mm matrix prototyping board, through hole
• 1.27mm male 90 deg single-row header
• 1.27mm female straight single-row header
• 2.2kΩ 0805 or smaller SMD resistor
• red LED 0805 or smaller SMD LED
• 0805 or smaller SMD 100nF capacitor (not shown)
• fine solder for SMD work
• fine 0.15mm (34 gauge) enamelled wire eg Verowire
Note that the difficulty of soldering and wiring components smaller than 0805 onto a matrix board goes up from very fiddly to insane.
Apart from the usual cutters etc:
• fine point temperature-controlled soldering iron set to 320C
• fine tweezers preferably for SMD work
• strong magnifier or microscope
• UPDI programmer for AVR 0 and 1-series otherwise you can't do anything with the board. You can make one
Step 1: Prepare the Components
• Cut a 4x5 piece of matrix board
• Bend the IC so that the leads are pointing slightly inwards. See pic.
• Cut two 4-hole lengths of female header
• Cut a 4 pin length of male 90 deg header
• Print the labels from the file T402 atto pin labels.pdf
The image lacks the capacitor.
Step 2: Enter the Matrix Board: Assembly
This will not be be 10 minute job. Follow the schematic and pictures.
• Solder the male header (J1) to the narrow end of the board and cut a pin off as shown. The pin on its own is pin 4 and will be next to U1 pin 8. J1 pin 1 will be next to U1 pin 1. Mark the edge of the board here for reference.
• Solder the resistor and LED down the middle of the board. Each component end rests on two of the holes in the matrix board. The LED's cathode (test for this) connects directly to J1 pin 2. I soldered the resistor here but the LED is more visible if next to J1. Solder the resistor to the LED anode and J2 pin 2 hole - just feed a wire though the hole for now.
• Apply 3.3-5V to the wire pushed through J2 pin 2 to check the LED lights. It will be hard to fix a problem later.
• Solder J2 and J3.
• Wire J3 pin 4 to J1 pin 2. Wire J2 pin 1 to J1 pin 1.
• Solder C1 onto J1, leaving room for J2. If you can't find it in most of the pictures, that's because I forgot to add it until I had done the pictures!
• Check the wiring and LED.
• Solder U1. Pin 1 has a tiny dot next to it. The header pinout is of course upside down compared to the chip.
• Glue on the labels.
Step 3: Test
Add megaTinyCore to your Arduino IDE. Load the Blink_ATTINY402 sketch. Select chip ATTINY402 or ATTINY412 depending on the one you have used. Select the UPDI programmer you have installed. Attach the programmer. Click Upload.
If the upload works the LED should blink. If it doesn't you may have a lot of fault finding ahead, either on on the board or the UPDI programmer (if you haven't used it before).
Step 4: Magnetometer Demo
Plug a through-hole analog Hall effect sensor (eg AH3505) into the T402 atto:
• GND and Vcc plug into GND and VDD on the board
• The output plugs into PA3 (4)
Open the Simple_magnetometer_Hall_effect_plus_LED sketch and upload. The LED should flash fast three times then slowly - about once every 2 seconds.
Bring a magnet near the sensor. The flat faces are the sensitive sides. The flash rate should increase as the field increases.
The AH3505 sensor needs 5V but my sample worked fine at 3.3V.
Step 5: Other Attempts at the Design
The image shows a couple of other ways I tried to make a tiny dev board. I particularly like the chip-on-its side approach for weirdness if nothing else. That one hasn't had a programming header added.
Participated in the
First Time Author Contest