Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
gen7_board-arm_2.0 [2015/11/19 21:35] – How to test USB and serial. Traumflug | gen7_board-arm_2.0 [2023/10/30 23:53] (current) – external edit (unknown user) | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ======Gen7 Board-ARM v2.0====== | + | ====== Gen7 Board-ARM v2.0 ====== |
- | {{ : | + | {{ : |
- | {{ : | + | {{ : |
[[Generation 7 Electronics]] Board-ARM v2.0 is the first Gen7 based on an ARM, an LPC1114FN28. Like all earlier Gen7s it's still easily DIY-able, because this FN28 comes with through-hole pins spaced at 0.1" (2.54\_mm). | [[Generation 7 Electronics]] Board-ARM v2.0 is the first Gen7 based on an ARM, an LPC1114FN28. Like all earlier Gen7s it's still easily DIY-able, because this FN28 comes with through-hole pins spaced at 0.1" (2.54\_mm). | ||
Line 8: | Line 8: | ||
Compared to earlier Gen7s it's considerably faster. It has been demonstrated to deliver as many as 130' | Compared to earlier Gen7s it's considerably faster. It has been demonstrated to deliver as many as 130' | ||
- | Status: | + | Status: |
- | ======Features===== | + | ===== Features ===== |
+ | {{ : | ||
+ | |||
+ | * LPC1114FN28 MCU, a 32-bit ARM CortexM0+. | ||
+ | * Onboard USB-serial adapter, implemented with an MCP2200. | ||
* Support for up to 4 stepper drivers in the " | * Support for up to 4 stepper drivers in the " | ||
* Support for extruder and heated bed. | * Support for extruder and heated bed. | ||
* Support for two SPI devices (e.g. SD card and display). | * Support for two SPI devices (e.g. SD card and display). | ||
- | * No power supply wiring neccessary, just plug and be ready. | + | |
+ | | ||
* Software power on/off. | * Software power on/off. | ||
* Oversized high current tracks and MOSFETs for reliable, cool operations. | * Oversized high current tracks and MOSFETs for reliable, cool operations. | ||
* Board size 110\_x 90\_mm. | * Board size 110\_x 90\_mm. | ||
+ | |||
+ | ===== How to Get It ===== | ||
+ | |||
+ | {{ :Gen7:Gen7 2.0 Layout.png? | ||
+ | {{ :Gen7:Gen7 2.0 PCB.jpeg? | ||
+ | |||
+ | ==== Buying ==== | ||
+ | |||
+ | PCBs, Components and Connector kits are currently sold on the [[start|front page]] of this wiki. | ||
+ | |||
+ | ==== Making a PCB yourself ==== | ||
+ | |||
+ | As Gen7 is designed to be manufactured on a RepRap, you can make PCBs yourself instead of [[start|buying]]. How to do this on a RepRap or a general milling machine is described at [[PCB Manufacturing]]. Gerbers, PDFs and such are in [[https:// | ||
+ | |||
+ | Yet another way is to purchase from one of the many houses specialized in manufacturing prototype PCBs. Gen7 is single sided, so this won't cost a fortune. If you want to sell excess copies, ask [[mah@jump-ing.de|Traumflug]] for a commercial license. | ||
+ | |||
+ | ==== Components ==== | ||
+ | |||
+ | If you want to assemble the collection yourself, see the [[#Parts Lists|Parts Lists]] section. | ||
+ | |||
+ | ===== Parts Lists ===== | ||
+ | |||
+ | To assemble or verify these lists, open the layout with gEDA/PCB and export a " | ||
+ | |||
+ | Special considerations: | ||
+ | |||
+ | * The Pololu Stepper Drivers come with their male headers, so there' | ||
+ | * Resistors with 0.25\_watts are on the safe side, even if the footprint name reads " | ||
+ | * The Pololus can be operated with up to 35\_volts, some compatible stepper drivers even with up to 45\_V, so you may want like-rated electrolytic capacitors. | ||
+ | * Most Pololus require heatsinks, so make sure you get them with the Pololus or get separate ones. | ||
+ | |||
+ | ==== Electronic Components ==== | ||
+ | |||
+ | This list is ordered to match the order of assembly. | ||
+ | |||
+ | ^Name ^Count | ||
+ | |MCP2200 | ||
+ | |Wire 0.56\_mm | ||
+ | |Resistor 10\_Ohms | ||
+ | |Resistor 560\_Ohms | ||
+ | |Resistor 1\_kOhms | ||
+ | |Resistor 4.7\_kOhms | 1|RT2 | | | ||
+ | |Resistor 10\_kOhms | ||
+ | |Resistor 1\_MOhms | ||
+ | |Diode 1N4004 | ||
+ | |Coil 10\_uH | ||
+ | |Crystal 12\_MHz | ||
+ | |Ceramic Capacitor 0.1\_uF | 10|C8 C9 C10 C11 C12 C13 C14 C16 C17 C19 | | | ||
+ | |Ceramic Capacitor 22\_pF | 2|C3 C4 | | | ||
+ | |LED 3\_mm Green | ||
+ | |LED 3\_mm Yellow | ||
+ | |Reset Switch | ||
+ | |Electrolytic Capacitor 10\_uF | 4|C2 C5 CT1 CT2 | | | ||
+ | |Electrolytic Capacitor 100\_uF | 3|C1 C6 C7 | | | ||
+ | |Jumper 1\_Pair | ||
+ | |Jumper 2\_Pairs | ||
+ | |Jumper 3\_Pairs | ||
+ | |Pololu Headers | ||
+ | |LP2950L-33-T92 | ||
+ | |MOSFET 2N7000 | ||
+ | |Socket 28\_Pins | ||
+ | |LPC1114FN28 | ||
+ | |MOSFET IRLB\_8743 | ||
+ | |||
+ | ==== Connectors ==== | ||
+ | |||
+ | This list is ordered to match the order of assembly. | ||
+ | |||
+ | ^Name | ||
+ | |Molex KK254 2 Pin Header | ||
+ | |Cable Connector for the above | 6| | ||
+ | |Crimp Contact for the above | 12| | ||
+ | |Molex KK254 4 Pin Header | ||
+ | |Cable Connector for the above | 4| | ||
+ | |Crimp Contact for the above | 16| | ||
+ | |Molex KK254 6 Pin Header | ||
+ | |USB-B Connector | ||
+ | |Header Molex 26-48-1045 (2\_Pin) | | ||
+ | |Cable Connector for the above | 1| | ||
+ | |Crimp Contact for the above | 2| | ||
+ | |Screw Terminal 2\_Pin | ||
+ | |Disk Power Header | ||
+ | |ATX12V Header 8\_Pin | ||
+ | |ATX24 Header | ||
+ | |||
+ | ==== Miscellaneous ==== | ||
+ | |||
+ | To connect your Gen7 with a PC, you need a generic USB device cable. | ||
+ | |||
+ | Last not least, you need stepper drivers. Since Pololu offered their [[https:// | ||
+ | |||
+ | A few commonly seen drivers: | ||
+ | |||
+ | ^Name/ | ||
+ | |[[https:// | ||
+ | |[[http:// | ||
+ | |[[https:// | ||
+ | |[[http:// | ||
+ | |||
+ | |||
+ | ===== Assembly ===== | ||
+ | |||
+ | As this is done only once in a Gen7's lifetime and comes with lots of pictures, assembly instructions have been moved over to the [[Gen7 Board-ARM 2.0 Assembly]] page. | ||
- | ======Commissioning====== | + | ===== Commissioning ===== |
Soldering completed? Fine. All obvious flaws, if any, fixed? Excellent. | Soldering completed? Fine. All obvious flaws, if any, fixed? Excellent. | ||
- | I'ts good manufacturing practice to do some measurements on the board before inserting the central chip, the MCU. Not only because the MCU is the most expensive part on the board, also because this parts connects many other parts together, so a fault in one section harms other sections, too. | + | ==== Voltage Measurements ==== |
+ | |||
+ | I'ts good manufacturing practice to do some measurements on the board before inserting the central chip, the MCU. Not only because the MCU is the most expensive part on the board, also because this parts connects many other parts together, so a fault in one section harms then other sections, too. | ||
For all these measurements a cheapo voltage meter is entirely sufficient. | For all these measurements a cheapo voltage meter is entirely sufficient. | ||
- | ====Measure Standby Voltages==== | + | === Measure Standby Voltages === |
* Plug the ATX24 connector of your ATX power supply (PSU) into the board. PSUs with only 20 pins on this connector work, too. | * Plug the ATX24 connector of your ATX power supply (PSU) into the board. PSUs with only 20 pins on this connector work, too. | ||
Line 40: | Line 150: | ||
To make this step complete, measure the voltages shown in the picture. Deviations of half a volt are OK, but substantially different voltages, especially ones above 6\_volts, are not. GND of the meter can be connected to one of the black wires of the ATX24 connector. All other pins of the LPC1114 socket should read (close to) zero volts. | To make this step complete, measure the voltages shown in the picture. Deviations of half a volt are OK, but substantially different voltages, especially ones above 6\_volts, are not. GND of the meter can be connected to one of the black wires of the ATX24 connector. All other pins of the LPC1114 socket should read (close to) zero volts. | ||
+ | |||
+ | //Note//: the pin marked // | ||
With these steps done you can be reasonably sure to not burn your LPC1114 when inserting. | With these steps done you can be reasonably sure to not burn your LPC1114 when inserting. | ||
- | ====Measure Full Voltages==== | + | === Measure Full Voltages === |
Next step is to measure voltages with the power supply turned on. | Next step is to measure voltages with the power supply turned on. | ||
Line 51: | Line 163: | ||
* While still plugged in, short the green wire of the (big) ATX24 connector to one of the black wires. A bent wire or paperclip is handy for this. | * While still plugged in, short the green wire of the (big) ATX24 connector to one of the black wires. A bent wire or paperclip is handy for this. | ||
- | At this point the PSU should turn on, which can be recognized by its fan turning on as well. The green LED near the yellow LED should light up. | + | At this point the PSU should turn on, which can be recognized by its fan turning on as well. The green LED near the yellow LED should light up as well. |
- | {{ : | + | {{ : |
As before, measure all voltages shown in the picture. The 12\_V and the two 3.3\_V measurements repeat on each stepper driver socket. Also measure all the Standby voltages again, including the zero volts pins on the LPC1114 socket. | As before, measure all voltages shown in the picture. The 12\_V and the two 3.3\_V measurements repeat on each stepper driver socket. Also measure all the Standby voltages again, including the zero volts pins on the LPC1114 socket. | ||
Line 61: | Line 173: | ||
Having this done you can remove the paperclip from the ATX24 connector. The controller will turn on and off the PSU on it's own before too long. | Having this done you can remove the paperclip from the ATX24 connector. The controller will turn on and off the PSU on it's own before too long. | ||
- | + | ==== Verifying | |
- | ====USB | + | |
That's right, the USB adapter can be tested before inserting the LPC1114. | That's right, the USB adapter can be tested before inserting the LPC1114. | ||
+ | |||
+ | === USB Adapter Checks === | ||
* Connect the power supply, the yellow LED should light up. | * Connect the power supply, the yellow LED should light up. | ||
Line 73: | Line 186: | ||
That's it already, if the device appears, it works. | That's it already, if the device appears, it works. | ||
- | ====Testing | + | === USB and Serial |
- | If there is a doubt that serial works, one can do a serial loopback test. | + | * [[gen7_troubleshooting# |
- | * Connect | + | ==== Inserting |
- | * Connect the USB outlet to your PC. | + | |
- | * Open a serial terminal, e.g. GtkTerm on Linux, PuTTY or HyperTerminal on Windows, CoolTerm on OS\_X. An application which allows to connect to a serial device. | + | |
- | * Let the serial terminal connect to the serial device at 115200 baud, one stop bit, no parity. How to do this depends on the application. | + | |
- | There should | + | Finally the central part, the LPC1114 can be inserted into its socket. These chips have a groove at one end. This groove should point to the ATX24 connector. |
- | The following behaviour depends on wether the serial terminal application has //local echo// turned on or not. To find out, simply type a few characters into the terminal' | + | Sometimes it' |
- | {{ : | + | Then press the chip carefully in and ... hardware is completed. Yikes! |
- | Now connect RxD and TxD, the two leftmost pins on the LPC1114 socket in the lower row, like shown in the picture to the right. A short, bent wire is just fine for this. You can do this with the PSU still on. | ||
- | With this bridge, typing characters in the serial terminal window should cause another character to be written. If each keystroke caused one character before, you should see now two. If a keystroke caused nothing before, you should see each character now. | + | ===== Firmware ===== |
- | How this works? Well, the character is sent out over USB, converted to serial, sent on the serial transmit line, fed into the serial receive line by this wire bridge | + | Gen7-ARM runs [[Teacup Firmware]]. Not yet fully integrated into Configtool, yet, so configuring |
+ | ==== Prerequisites ==== | ||
- | ======Firmware upload====== | + | You need a compiler, of course. While it's likely possible to get away with Arduino IDE somehow, please prefer [[Compiler for ARM#GNU ARM Embedded Toolchain|GNU ARM Embedded Toolchain]], |
- | Gen7-ARM runs [[Teacup Firmware]]. Not yet featured with Configtool, so it has to be compiled using the Makefile on the command line. | + | Having this toolchain available you're ready to go. |
- | Details on this TBD. | + | ==== Configuring Firmware ==== |
- | Other firmwares are possible, of course. Be aware that most won't fit into program memory (32\_kB) and are expected to be slower. | + | For this part we can use the convenient Configtool. |
- | For details on uploading firmware in general see [[LPC1114 Bootloader]]. | + | * Start Configtool. |
+ | * //Menu -> File -> Load board// and select // | ||
+ | * //Menu -> File -> Load printer// and select the one which is closest to your actual printer. | ||
- | ======TODO====== | + | At this point you can adjust everything on the Printer tab. __Do not change settings on the Board tab__. When done, save the configuration with //Menu -> File -> Save config.h// |
+ | |||
+ | In the unlikely case you have to adjust something on the board, e.g. the pinout, you have to do this with a text editor directly in // | ||
+ | |||
+ | ==== Compiling Firmware | ||
+ | |||
+ | // | ||
+ | |||
+ | Then open // | ||
+ | |||
+ | Now you can compile the firmware from the command line: | ||
+ | |||
+ | make | ||
+ | |||
+ | It should build flawlessly, taking only a few seconds. | ||
+ | |||
+ | ==== Uploading Firmware ==== | ||
+ | |||
+ | The LPC1114 comes with a bootloader already installed, so unlike with AVRs, no bootloader upload neccessary. If you didn't already, find and install a tool named // | ||
+ | |||
+ | To activate this bootloader, you have to place the programming jumper. It's the single jumper just top of the reset button. After doing so, press and release the reset button. | ||
+ | |||
+ | Then you can send the firmware: | ||
+ | |||
+ | make program | ||
+ | |||
+ | This should upload the firmware. If there are just waiting dots, check the programming jumper and press reset again. Actually it doesn' | ||
+ | |||
+ | After the upload is done, remove the programming jumper. If there are errors, please read and try to solve them. | ||
+ | |||
+ | For details on uploading firmware in general see [[LPC1114 Bootloader]]. Technical detail: setting the programming jumper pulls PIO0_1 low; PIO0_1 is also used for the Step signal of the Z axis. | ||
+ | |||
+ | ===== TODO ===== | ||
Board-ARM v2.0 is the latest development, | Board-ARM v2.0 is the latest development, | ||
- | ===Make auto-reset work=== | + | === Make auto-reset work === |
For an idea using the serial control lines see http:// | For an idea using the serial control lines see http:// | ||
- | ======History====== | + | ===== History ===== |
- | ====December 2012==== | + | ==== December 2012 ==== |
{{ gen7: | {{ gen7: | ||
Line 122: | Line 266: | ||
The first ARM based Generation 7 Electronics was created. It was mostly a Gen7 v1.4.1 with the ATmega replaced by an NXP LPC1114FN28. It worked on the spot. | The first ARM based Generation 7 Electronics was created. It was mostly a Gen7 v1.4.1 with the ATmega replaced by an NXP LPC1114FN28. It worked on the spot. | ||
- | ====February 2013==== | + | ==== February 2013 ==== |
- | {{ youtube> | + | {{ youtube> |
RepRap user Bobc was the first to run a printer with a Gen7-ARM. | RepRap user Bobc was the first to run a printer with a Gen7-ARM. | ||
See also his [[http:// | See also his [[http:// | ||
+ | |||
+ | ==== Mid 2015 ==== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Instead of slowly fading away from DIYers memories due to the lack of new versions/ | ||
gen7_board-arm_2.0.1447965348.txt.gz · Last modified: 2018/05/27 16:10 (external edit)