User Tools

Site Tools

This is an old revision of the document!


Gen7 Board-ARM v2.0

The second prototype with all the planned features on board.

The second prototype with all the planned features on board.

Back of the same board.

Back of the same board.

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).

Compared to earlier Gen7s it's considerably faster. It has been demonstrated to deliver as many as 130'000 steps/second to the stepper driver, so 1/32 microstepping is no longer a bottleneck. Even at 1/128 microstepping one can achieve reasonable performance.

Status: refined circuitry design & board done.

Features

  • Support for up to 4 stepper drivers in the “Pololu format”.
  • Support for extruder and heated bed.
  • 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.
  • Oversized high current tracks and MOSFETs for reliable, cool operations.
  • Board size 110 x 90 mm.

Commissioning

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.

For all these measurements a cheapo voltage meter is entirely sufficient.

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.
  • Connect the PSU to a mains (110/230 volts) outlet.
  • Turn the mains switch of the PSU, if present, on.

At this point the yellow LED on the board should light up. If it doesn't, find the cause and fix it.

Voltage measurements on standby power.

Voltage measurements on standby power.

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.

With these steps done you can be reasonably sure to not burn your LPC1114 when inserting.

Measure Full Voltages

Next step is to measure voltages with the power supply turned on.

  • Plug in the ATX12V connector in the lower left corner. Depending on your PSU this connector has 4, 6 or 8 pins. Each variant fits, more pins are better.
  • Plug in the disk power connector in the upper left corner. Your PSU likely has multiple ones, it doesn't matter which one you use.
  • 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.

Additional voltage measurements with turned on power supply. Standby measurements should be still valid.

Additional voltage measurements with turned on power supply. Standby measurements should be still valid.

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.

With everything being within range, especially no 12 volts on the LPC1114 socket, you can be reasonably sure that all your power supply circuitry is fine. Well done!

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.

USB Adapter Checks

That's right, the USB adapter can be tested before inserting the LPC1114.

  • Connect the power supply, the yellow LED should light up.
  • Connect the USB outlet to your PC.

At this point a new serial port should appear in your PC operating system. On Linux that's typically /dev/ACMx, on Windows a COM port in the device manager, on OS X /dev/ttyxxxxx, each time the 'x's replaced with a unique number or identifier.

That's it already, if the device appears, it works.

Testing Serial Communications

If there is a doubt that serial works, one can do a serial loopback test.

  • Connect the power supply, the yellow LED should light up.
  • 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 be no error message on connecting.

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's window. If the characters are written to the terminal's screen, local echo is turned on. If typing characters on the keyboard results in just nothing, it's turned off. Both is fine.

The green marker shows the pins to connect for a serial loop.

The green marker shows the pins to connect for a serial loop.

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.

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 and goes all the way back via serial and USB into your terminal window. If this works, serial communications works.

Firmware upload

Gen7-ARM runs Compilation Environments. Not yet featured with Configtool, so it has to be compiled using the Makefile on the command line.

Details on this TBD.

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 details on uploading firmware in general see LPC1114 Bootloader.

TODO

Board-ARM v2.0 is the latest development, so let's collect here experience and possible enhancements for the next version.

Make auto-reset work

For an idea using the serial control lines see http://www.mikrocontroller.net/topic/281717#2977141. Not sure wether this can really work for programming, though and for printing it's sometimes even counterproductive (like when continueing an aborted print).

History

December 2012

Board of the first ARM based Gen7 prototype.

Board of the first ARM based Gen7 prototype.

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

Bobc's proof of concept video

RepRap user Bobc was the first to run a printer with a Gen7-ARM.

See also his RepRap forum post. To get a working firmware he ported Teacup Firmware to ChibiOS. Later investigations showed that this choice didn't exactly result in the best possible performance, but this didn't matter at that time.

gen7_board-arm_2.0.1447965348.txt.gz · Last modified: 2018/05/27 16:10 (external edit)