# OctoFarm Version 2.0 Datadump
The following is an attempt to dump all the information out of my head of the plans I have gathered for OctoFarm over it’s life. I have made and updated these plans in my head currently as I was the sole developer and it’s been my preferred method of keeping track of things. Plans are usually set in stone for a specific feature/section of OctoFarm but I will usually amend and tweak them slightly when I get users issues/programming road blocks/system specific issues and other items related to the functioning and use of the current combination of OctoFarm and OctoPrint. This has currently coded me into a bit of a pickled mess and this is much required to get a formalised plan in place. I also took the standpoint of a basic feature is better than no feature and I would like to move away from that going forward.
I will first detail my plans and specific features for each section of OctoFarm and what it deals with. I have tried to segregated each section so that it would not create feature creep and hopefully not overwhelm the users and developers.
OctoFarm is growing, and whilst it grows there are always pains with that. Each pain though is a lesson, each lesson is a chance to gain knowledge, knowledge breeds awareness which eventually leads to implementation and action, action with knowledge is a powerful thing. Nothing here is a sacred cow of mine though, all is up for debate and discussion and there are area’s where my knowledge is lacking and experienced input is certainly needed.
Names are not specifically set in stone either, I have tried to be explicit with their naming but there could certainly be more fitting words for them.
## Open Source
TODO
## Printer Manager
**Brief:** The printer manager will be the area where you will add your printers to the OctoFarm system ready for tracking. It will allow you to use any 3D Printer web system that is currently available so farms with multiple systems / other systems other than OctoPrint can utilize the full power of OctoFarm as well. Bulk actions will be a main focus of Printer Manager allowing a user to bring online multiple printers online at once for example.
### Core Features:
1. CRUD operations on all printer devices on the farm.
2. Advanced Groupings for printers, and automated creation of groups at the users request. These should be based on any attribute of a printer to accommodate the various farm sizes, layouts and systems in play.
3. Floor Plan Creation as an additional group. This will be an optional feature allowing a user to locate their printers on a map. These would also bolster the previous advanced grouping feature, and also allow a finished print to notify it’s location when ready for print retrieval.
4. Bulk actions with the ability to quickly select a batch of printers to receive the specified action. Actions will be of a base set relating to Power/Printer Connection/Controls and then the user will be able to define custom actions they can utilise on the farm. Ideas I had we’re turn on a non-printer device like lighting, heaters or what other things people have with API/MQTT access.
5. Connection management of your device.
### Devices
OctoFarm is currently focused on OctoPrint web interface mangement system for 3D printers. This is seemingly a bit of a limitation in the farm management space and there is a wide open market to hit other web interface systems. There's also other devices that are used by farms but some of these may be considered niche and less of a focus. I will detail them though because they should be utilised inside of OctoFarm. These have mainly been collected through requets from my current user base and my own personal research into the market. Below is just my thoughts and a brief decriptoin on each system. I recommend checking the added links to learn more about each.
#### Duet3D - https://www.duet3d.com/
Duet3D is an all in one system that compramises of a MCU system with an included web interace. It is a combination of marlin + octoprint all rolled into one. This is more aimed at the higher end of the user space as they are quite expensive.
#### Repetier - https://www.repetier.com/
Repetier has been around for ages and from what I'm aware of it, it's currently the only all in one farm management solution that exists. It has their own firmware / control software and also links to a management system.
#### Klipper - https://www.klipper3d.org/
Klipper is a new firmware to hit the market and is aimed more towards th developer or tinkerer in my opinion. It takes all of the microcontrollers processing off the firmware on the MCU and pushes it to a much beefier system like a PiZero+. Those commands are crunched and pushed to the MCU in a queue allowing much less overhead for the MCU. There are speed improvemens for a print, and the only real limitation I've seen is the hardware of your printer. Recent developments have added a native API to it without the need for a web interface at all even though they are availale they would be mute for our use case.
#### Mariner - https://github.com/luizribeiro/mariner
Mariner is relatively new but it aims to solve the issue of there been no web interface management system for SLA printers. It's currently focused on Elegoo Mars range although there are plans to support more types going forward. There are no temps to monitor with SLA so this would be more progress and tracking the current job. Joggin controls may also be needed
#### CNC.js - https://cnc.js.org/
CNC.js is a nodejs web interface for CNC devices and supports a wide array of CNC firmwares. These would be rather easier to support as theres no temperatures as with SLA and it would be job tracking / progress and jogging controlls.
#### Global Camera's
A global camera would be just that, a camera that overlooks your farm. These would be relatively simple to support as they are just a camera stream. I'll detail this in another section more but it would add the requirement of ffmpeg more than likely so we can support and convert more stream types.
#### Environmental Sensors
#### Alarms
#### Power Trackers
## Stock Manager
## History
## Statistics
## Monitoring
## Maintenance
## User Permission and User Manager
## Alerts
## System
## OctoFarm’s Future After V2.0
### Android and iOS Clients
### OctoFarm-Relay
### OctoFarm-Online
## To Infinity and Beyond
### OctoFarm OS