Christmas and New Year brought a little slack time from work, and whilst I had a few hours between family and sleep, I managed to setup this website as well as start off a small electronics project for a new 3D Printer control board.
The design goals were simple – make it upgradeable using off the shelf components for things like the stepper motor drivers (and therefore easy to fix when you inevitably blow something up), but give me one more stepper output than Gen7 currently offers (a fine design that has worked for my FoldaRap for many years) so that I have the option to go for dual extruders in my next printer(s) (Mendel90). Adding an extruder means an extra heater, and extra temperature sensing.
An extra requirement is for filament empty sensor – taking the endstops from 3 to 5. Finally, PWM fan control would be nice, in addition to a couple of fixed 12V outputs for the ubiquitous E3D hot end(s).
Driving this with an ATMega (or similar) is not going to be a nice proposition (while very likely achievable, it would not be at speeds suitable for very high speed microstepping for a quiet operation). Moving to ARM is the most sensible move here, and after spending some time with a few libraries, I got the most familiar with STM32 range, and selected the STM32F412 component with 1MB of flash memory – something that would be give scope for expansion in the future. As this comes with a native USB PHY (Physical layer) it would be possible to eliminate the need for a USB/Serial converter and instead communicate directly with the MCU. The question now is wether it is possible to retain this interface as well as a U(S)ART interface to a Pi….
Today marked the first major milestone – completion of the initial design and I have now uploaded this to GitHub to make it truly open source (under the CERN Open Hardware License V2 [Permissive])