This page lists all of the projects the community is working on, and those that are planned.
This includes improvements on the existing, new features, refactors, new hardware and documentation efforts.
If you are looking to help the project, but do not know where to start, this is the place to get an idea what is going on within the project right now.
{:/nomarkdown}
The Smoothieware firmware that runs on the Smoothieboard v1 ( Smoothieware v1 ) has a lot of features, and has received a lot of love over the years.
But there are many things we want to improve, and new features we want to implement or experiment with:
Most active development has shifted to Smoothieware v2. See the v2 section below for current focus areas.
This is expected to result in a much saner codebase, smoothness/performance improvements, and to make it easier to implement some new features, like S-curve acceleration, 6-axis support and some extruder features.
This is going to require, amongst other things, a massive rewrite of the Extrude and Laser modules.
This is also possibly going to solve the problem Simplify3D and Smoothie have with each other.
Update : This was merged into edge beginning of July 2016, and is now being tested by the community in the wild.
This improvement has been fully implemented in Smoothieware v2, with a maximum step rate of 200 kHz (vs 100 kHz in v1), supporting up to 1/256 microstepping with interpolation, and configurable pulse width. The v2 firmware enables advanced features like true S-curve acceleration planning and parallel motor support.
</sl-alert> {:/nomarkdown}
See Jerk-Controlled Motion Explained for an explanation of what this is.
See also this proposed implementation: S-curve-Planner Also, there has been some discussions of implementing a PNP-specific planner, that would loose axis sync ( not required on Pick and Place machines ), but thanks to this simplifying it a lot, would then be much easier to implement S-curve for.
S-curve acceleration is planned for Smoothieware v2 but has not yet been implemented. The v2 motion planner currently uses junction deviation-based planning with configurable xy and z junction deviation values. Future work is expected to build on the improved step generation foundation in v2 to implement true S-curve motion control.
</sl-alert> {:/nomarkdown}
{::nomarkdown}{:/nomarkdown}
This is currently done by using the Extruder module, which has some limitations, doing it properly would be a good improvement.
This issue keeps track of that feature : 6-axis support This is now in current edge.
Smoothieware v2 maintains support for multiple kinematics (Cartesian, Linear Delta, Rotary Delta, CoreXY, CoreXZ, SCARA) with configurable axis control. Full 6-axis XYZABC support is supported through the Extruder module configuration, leveraging the improved step generation in v2. However, dedicated ABC axis support as distinct motion types (vs extruder-based) is still a potential enhancement for future versions.
</sl-alert> {:/nomarkdown}
{::nomarkdown}{:/nomarkdown}
Smoothieware v2 is the firmware for the Smoothieboard v2 hardware.
Basic functions such as serial communication, configuration, planning and step generation, have been ported, but many others like temperature control, USB, Ethernet, SD card support, etc, are still missing.
Core features are now fully implemented including serial communication, configuration, motion planning, step generation, temperature control, USB, Ethernet, and SD card support. The firmware is actively maintained and improved with new features like lathe threading (G33), StealthChop2 silent steppers, OTA updates, dual motor support, and enhanced display drivers.
We need your help moving the project forward.
Many have already offered to help, and at this point, several are at the point where they have hardware to work on, and are starting to get familiar with the codebase. But this is a huge project, and here more is better! So come join the effort :) You can find a list of the things to do for this project in the ReadMe: [Smoothie2 README](https://github.com/smoothieware/smoothie2/blob/master/readme.md) Below are a few of the ones that need the most work. Because these are difficult to implement, it's hard finding people to work on them. If you think you are capable of doing any of those, please please please [contact us](mailto:wolf.arthur@gmail.com), we really need help on these.On the v1 board, that port exposes a composite device (Serial + Mass storage) to the host computer. However, Mass Storage just plain sucks. The computer can mess things up anytime without the board being able to prevent it, the board can’t safely write to it’s own SD card, corruption of the card is a common thing, etc.
The v2 board implements USB with dual ports: USB Device (for serial CDC/ACM and mass storage MSC with improved safety via pushbutton/command mode selection) and USB Host via a dedicated USB-A connector (J2, not yet firmware-implemented). MTP (Media Transfer Protocol) support is planned as a future enhancement for safer SD card access and virtual file presentation, but is not yet implemented.
Besides simply implementing basic Serial/USB (CDC) functionality, we’d like the firmware to support MTP: Media Transfer Protocol. That’d be a much safer way for the computer to access the card. </sl-alert> {:/nomarkdown}
We need Ethernet, TCP/IP, a web and telnet server, to be implemented in the v2 firmware, the same way it was on the v1. I (Arthur) have no idea how much work it’d be. There is a few implementations of web servers for LPC4337 available on the net, so it may simply be a matter of mashing that together with the v1 implementation. The v1 Ethernet implementation has some limitations and problems, it’s possible with the better v2 hardware, a better implementation could be done.
Ethernet has been fully implemented in Smoothieware v2 with significant improvements over v1. The v2 firmware includes FreeRTOS+TCP stack (vs v1’s uIP), HTTP web interface (hosted on SD), Telnet access for remote G-code sending, SFTP file transfer, NTP time synchronization, auto-update capability over the network, and mDNS hostname resolution (smoothieboard.local). The 10/100 Mbps interface provides fast network control and file management.
If you have know-how related to this, please help! :) </sl-alert> {:/nomarkdown}
SD card support in v1 uses SPI interface with typical speeds of 400-500 KB/s, which has been a common user complaint about slow file loading.
SD card support in v2 is fully implemented with SDIO interface, providing 10-25 MB/s typical speeds (20-50× faster than v1). The v2 firmware supports standard microSD cards up to 32 GB (FAT32 formatted) and includes a pre-loaded SD card with firmware and configuration. Cards can hold G-code files, web interface files, documentation, and logs, with operations including boot configuration, runtime G-code playback, direct computer access via MSD mode, and network access via HTTP/SFTP. Adam Green did initial work on this: SDCard
</sl-alert> {:/nomarkdown}
## Smoothie2 hardware [Mark Cooper](https://github.com/logxen) is designing the Smoothieboard v2, v2-pro, and v2-mini boards, in Kicad, so that is pretty much covered for now. The boards are now in alpha, once the alpha board has been tested, a beta board will be designed, and the files for it will be published. At that time we'll need help reviewing the design. If you are interested, [contact us](mailto:wolf.arthur@gmail.com). Other projects related to the v2 hardware: {::nomarkdown}
We plan to have a very varied set of extension boards that’d plug easily into those connectors, for a very large variety of sensors, actuators, and peripherals.
You can find more information on this project at this link: Extension boards
We are looking for help with this, if you know PCB design, you are very welcome to contribute, most extension boards are quite easy to design.
The Smoothieware website contains all documentation for Smoothie firmware and Smoothieboard hardware.
Improvements to documentation are always welcome, and you can help by editing pages to make them clearer, adding new content, or fixing errors.
See Editing the Wiki for information on how to contribute to the documentation.