De Wiki LOGre
Aller à : navigation, rechercher
Language: Français  • English



CAUTION ! This is a work in progress. It has never been built nor tested. It is subject to further modifications. Use at your own risks !!!


The TenFifteen Board is a 3D printer (RepRap) electronic controller designed to be robust, do-it-yourselfable and easy to repair

  • Single sided 10x15cm PCB
  • Hand solderable
  • Most of the parts are through-hole

The TenFifteen is fitted with an Atmel Atmega1284P, which is 25% faster than the Atmega2560-based boards (RAMPS,RUMBA,AZTEEG, etc..) and has twice more RAM. The board is inspired from the well-known GEN7-AVR board, with a few improvements and differences:

Why make your own board ?

  • Making a board from scratch provides you a better understanding of the hardware
  • As there are mostly through-hole components, when something goes wrong, it's much easier to diagnose


  • Ready to drive 3 axis and 2 extruders
  • Cheap an reliable FASTON blades connectors for heaters
  • Down to 1/32 microstepping
  • Onboard Micro-SD push-push socket
  • Onboard Beeper
  • Fan Control (5V/12V)
  • Servo Control
  • I2C (Grove) connector for LCD and more
  • 5V / 1.5A regulator



Preview of the TenFifteen Board. Click to magnify

The TenFifteen board has been designed with KiCad, the excellent Cross Platform and Open Source Electronics Design Automation Suite


Schematics of the TenFifteen Board. Click to magnify

The TenFifteen uses an Atmega1284P as MCU, an MCP2200 as USB to serial converter. The MCP2200 has 6 free GPIOs that can be set or unset through the appropriate /dev/hiddev device under Linux. There is a 5V/1.5A regulator and a 3.3V regulator for the SD card. There are 5 sockets for Motors Drivers such as A4988 or DRV8825 Stepsticks. One of the motors connectors has been doubled to power 2 motors (ie, for the Z axis of the Prusa i3 like printers) . The variable fan can be powered from the regulated 5V or the 12V, the choice is made with a jumper.


PCB of the TenFifteen Board. Click to magnify
PCB, Copper Side, before etching.. Click to magnify
PCB, Copper Side, after etching.. Click to magnify
PCB: Wires on Top. Click to magnify

The PCB size is 10x15cm. It can be made out of positive presensitized FR4 single-sided board or with plain single-sided copper board and negative film. I don't give any advice on etching the board, there are plenty of tutorials on the Internet. Just remember to use the good stencil, either positive or negative and in the good position, you must be able to read the "TenFifteen" text on the copper side. You'll have to wire 22 links on top of the board with rigid isolated wire. It's mandatory to use isolated wire because some wires are under resistors (R2 to R5) or very near of the ground shield of connectors.


Components on Top. Click to magnify
SMD Components on Bottom. Click to magnify

This Bill Of Materials has been roughly estimated with the cheapest prices from ebay, aliexpress, mouser, farnell, etc..

Components Description Qty €/$
IC1 ATMEGA1284P-PU 1 7.00
IC1' 40pins DIP IC socket 1 0.15
IC2 MCP2200-I/SO 1 2.50
U1 LD1117S33 1 0.60
U2 L7805CV 1 0.50
Q1,Q2,Q3,Q4 IRLB3034PbF 4 2.00
Q5 BC547C 1 0.05
D9 1N4007 or 1N4007W 1 0.02
D4,D5,D6 1N4007W 3 0.06
D1,D2,D3,D7,D8,D10,D11 LED 3mm 7 1.00
Y1 20MHz HC-49S 1 0.15
Y2 12MHz HC-49S 1 0.15
R10,R12,R14,R16 10 ohms 4 0.08
R30,R31 470 ohms 2 0.04
R26,R27,R32 1k ohms 3 0.06
R7,R8,R9,R20,R22,R24 1k8 ohms 6 0.12
R21,R23,R25 3k3 ohms 3 0.06
R17,R18,R19 4k7 ohms 3 0.06
R6,R28,R29 10k ohms 3 0.06
R1,R2,R3,R4,R5,R11,R13,R15 100k ohms 8 0.16
C14,C15,C17,C18 22pF pitch 2.54mm 4 0.08
C1,C2,C3,C4,C5,C6,C7,C8,C9,C10,C16,C19,C22,C24,C25,C27,C28 0.1µF/50V pitch 2.54mm 17 0.17
C21 0.1µF/50V pitch 5.08mm 1 0.01
C11,C13,C12 10µF/35V 3 0.30
C20,C26 47µF/35V 2 0.30
C23,C29,C30,C31,C32,C33 100µF/35V 6 1.20
L1 10µH 1 0.10
M3,M4,M5,M1,M2 1x8 pin header female 10 0.90
P32,P33,P36,P37 1x2 pin header male 4 0.04
P10,JP16,JP17 1x3 pin header male 3 0.03
(JP1,JP2,JP3),(JP4,JP5,JP6),(JP7,JP8,JP9),(JP10,JP11,JP12),(JP13,JP14,JP15),J1 2x3 pin header male 6 1.00
P11,P12,P13,P14,P15,P16,P29,P30,P31,P41,P42,P43 62409-1 or 62650-1 FASTON 12 1.80
P17,P18,P19,P20,P47 Molex KK 2.54 2pins 5 1.00
P7,P8,P9 Molex KK 2.54 3pins 3 0.60
P1,P2,P3,P4,P5,P6 Molex KK 2.54 4pins 6 1.50
P21 USB Socket Type B 1 0.15
P28 I2C-GROVE (SeeedStudio) 1 0.15
SW1 Push button 6mm 1 0.02
J2 MICROSD Push Push Socket 1 0.20
F1 5mmx20mm Fuse holder 1 0.25
BUZ1 BIOS Beeper 1 0.60
TOTAL 25.22


Begin with the 22 isolated wires on top of the board. Then it's easier to mount the low profile components first, diodes, resistors, etc.. and to end with the tallest, electrolytic capacitors, power transistors, etc.. There are a few SMD components to solder on the copper side too: IC2,U1,J2,D4,D5,D6. You can also mount D9 in SMD version.


The software installation steps:

  • Setup the MCP2200
  • Install a bootloader in the Atmega1284P
  • Build and install the G-code interpreter in the Atmega1284P

MCP2200 Setup

The MCP2200 will act as an USB to Serial bridge at 115200bps without any further configuration, but if you want to have the Rx/Tx LEDs enabled or if you want to change the Product and Manufacturer's strings, you'll have to tweak the MCP2200's configuration. This can be performed under Linux with mcpconfig or under Windows®™ with the manufacturer's tool.


Install mcpconfig
Clone this MCP2200 configuration utility for Linux:

git clone https://framagit.org/MarcusFecit/mcp2200

Then dive into the mcp2200 directory an build the utility:

cd mcp2200

Copy the mcpconfig binary somewhere in your $PATH so it can be run, or stay in the build directory and use ./mcpconfig instead

Find your HID device

sudo mcpconfig --list|grep hiddev|cut -f2 -d' '

The previous command line will return something like: /dev/usb/hiddev0 or /dev/usb/hiddev1, etc..
Just replace this /dev/usb/hiddev... string with the appropriate number in the following command lines

Dump the configuration

sudo mcpconfig -f /dev/usb/hiddev1 --dumpconfig

On a fresh chip the result looks like:

04 IO_Bmap             : 3F
05 Config_Alt_Pins     : 0C
        SSPND          : 0
        USBCFG         : 0
        RxLED          : 0
        TxLED          : 0
06 IO_Default_Val_bmap : FF
07 Config_Alt_Options  : 00
        RxTGL          : 0
        TxTGL          : 0
        LEDX           : 0
        INVERT         : 0
        HW_FLOW        : 0
08 Baud                : 0067
08 Baud                : 115384
0A IO_Port_Val_bmap    : C0

As you can see:

  • RxLED, TxLED are set to '0'. We need to change this to use our LEDs..
  • HW_FLOW is set to '0'. This is what we want, no change needed
  • The baud rate is '115384' instead of '115200'. Don't worry, this is normal.

Enable the LEDs

sudo mcpconfig -f /dev/usb/hiddev1 --txled 1 --rxled 1

Check the settings

sudo mcpconfig -f /dev/usb/hiddev1 --dumpconfig

The result now looks like:

04 IO_Bmap             : 3F
05 Config_Alt_Pins     : 0C
        SSPND          : 0
        USBCFG         : 0
        RxLED          : 1
        TxLED          : 1
06 IO_Default_Val_bmap : FF
07 Config_Alt_Options  : 00
        RxTGL          : 0
        TxTGL          : 0
        LEDX           : 0
        INVERT         : 0
        HW_FLOW        : 0
08 Baud                : 0067
08 Baud                : 115384
0A IO_Port_Val_bmap    : C0

The important values to check are the HW_FLOW (must be 0), RxLED and TxLED (must be 1) and the Baudrate (must be 115384).
Once this done, it's enough for the MCP2200 to be fully functional

If your MCP2200 has been tinkered for another purpose, or if you want to change the manufacturer's and the product's strings, you can use the following commands:

Disable the hardware flow control

sudo mcpconfig -f /dev/usb/hiddev1 --hwflow 0

Change the baudrate

sudo mcpconfig -f /dev/usb/hiddev1 --baud 115200

Change the strings
On a fresh MCP2200, the manufacturer's and the product's strings are:

  • Manufacturer: Microchip Technology Inc.
  • Product: MCP2200 USB Serial Port Emulator

Change the manufacturer's string (64 chars maximum)

sudo mcpconfig -f /dev/usb/hiddev1 --manuf "Me MYSELF"

Change the product's string (64 chars maximum)

sudo mcpconfig -f /dev/usb/hiddev1 --prod "TenFifteen 1.0"

Check the strings

sudo mcpconfig --list

The result:

Path: /dev/usb/hiddev1
Manufacturer: Marc BERLIOUX
Product: TenFifteen 1.0

You can also see these strings appear in the kernel's logs when you plug in the USB, with:

tail -f /var/log/kern.log

All this can be done using a single command-line, just replace the manufacturer's string and the product's string with your own:

sudo mcpconfig -f /dev/usb/hiddev1 --baud 115200 --hwflow 0 --txled 1 --rxled 1 --manuf "Me MYSELF" --prod "TenFifteen 1.0"


Use the MCP2200 Configuration Utility provided by Microchip and follow these instructions: http://reprap.org/wiki/Gen7_Board-AVR_1.5#Programming_the_MCP2200

Bootloader installation

Bootloader Installation. Click to magnify

A blank, factory fresh, Atmega1284P comes with no bootloader and thus has no mean to be programmed or reprogrammed directly through its serial port. To install the bootloader through the ISP connector, you'll need an USB ISP Programmer also dubbed "USBASP" available for a few bucks. If your programmer comes with a 10 pin connector, you'll need a "10 Pin to Standard 6 Pin" adapter. You'll find plenty of these programmers just by searching "usbasp 10pin 6pin" on ebay or aliexpress. To control this programmer, you'll need to use a software called avrdude.

  • Unzip the TenFifteen_Arduino_Hardware.zip archive in your Arduino IDE's sketchbook/hardware directory. It must look like:
├── hardware
│   └── TenFifteen
│       ├── bootloaders
│       │   └── TenFifteen
│       ├── cores
│       │   └── arduino
│       └── variants
│           └── TenFifteen
  • Dive into the sketchbook/hardware/TenFifteen/bootloaders/TenFifteen directory
  • Remove the µSD card and do not connect anything else on the board.
  • Plug in your programmer on the TenFifteen's ISP socket
  • Burn the fuses:
avrdude -c usbasp -p m1284p -B 5 -U lfuse:w:0xF7:m -U hfuse:w:0xDC:m -U efuse:w:0xFC:m
  • Burn the bootloader:
avrdude -c usbasp -p m1284p -B 1 -U flash:w:bootloader-1284P-20MHz.hex
  • Lock the bootloader:
avrdude -c usbasp -p m1284p -B 1 -U lock:w:0xCF:m