From 8e43247300cde6b0d861d4bd7726e8943f3b4ed8 Mon Sep 17 00:00:00 2001 From: Wouter R Date: Thu, 2 May 2013 14:54:38 +0200 Subject: [PATCH] Add list of printer firmwares with some characteristics (WIP); add list of software which can send G-code; add resources on packaging for openwrt; add notes on milestones in the issue tracker; minor edits. --- Firmwares.md | 25 +++++++++++++++++++++++++ GcodeSenders.md | 23 +++++++++++++++++++++++ Home.md | 11 +++++++---- Packaging.md | 17 +++++++++++++++++ SelfUpdater.md | 2 ++ UhttpdCrash.md | 3 +-- 6 files changed, 75 insertions(+), 6 deletions(-) create mode 100644 Firmwares.md create mode 100644 GcodeSenders.md create mode 100644 Packaging.md diff --git a/Firmwares.md b/Firmwares.md new file mode 100644 index 0000000..29aabcf --- /dev/null +++ b/Firmwares.md @@ -0,0 +1,25 @@ +# Firmware variants + +* Sprinter +* Marlin (forked from Sprinter) + g-code and m-code +* Jetty (forked from Marlin?) +* Sailfish / G3firmware + s3g + Uses s3g/x3g which requires substantial recoding of g-code. Several implementations: + - https://github.com/makerbot/ReplicatorG (java) + - https://github.com/makerbot/s3g (python) + - https://github.com/cbiffle/s3g-toolkit (C++, attempts to convert s3g files into s3g command streams) +* Repetier + Supports regular g-code as well as a binary encoded variant which can be translated directly. + + + + --- +http://www.reprap.org/wiki/List_of_Firmware +sprinter <- marlin <- jetty + marlin vs sprinter: https://github.com/ErikZalm/Marlin (extra gcodes) +sailfish (s3g?) +sprinter +repetier + binair+gcode (https://github.com/repetier/Repetier-Firmware/blob/master/Repetier/repetier%20communication%20protocol.txt) diff --git a/GcodeSenders.md b/GcodeSenders.md new file mode 100644 index 0000000..295691b --- /dev/null +++ b/GcodeSenders.md @@ -0,0 +1,23 @@ +# Web interfaces for viewing/sending Gcode + +## To be reviewed +... + +## Probably not +- R2C2_WebInterface + node.js +- WebRap + python no deps +- pronterweb + python no deps + +## Discarded (too large, unusable interface, unsupported) +node.js -> no mips big endian +python -> only 200 k left on device...almost no room for dependencies + +- BotQueue +- OctoPrint + python many deps (not all supported out of the box by openwrt) +- Printrun +- Repetier-Server +- printerface diff --git a/Home.md b/Home.md index ebe5730..354971e 100644 --- a/Home.md +++ b/Home.md @@ -15,8 +15,11 @@ A number of milestones have been created in the issue tracker. Bitbucket sorts t ## Pages on this wiki [Building OpenWRT](BuildOpenwrt) -[analyzing uhttpd crashes](UhttpdCrash) -[outline for self-update functionality](SelfUpdater) -[partial original wiki content](OriginalContent) -[Miscelanneous notes](MiscNotes) +[Analyzing uhttpd crashes](UhttpdCrash) +[Outline for self-update functionality](SelfUpdater) +[Partial original wiki content](OriginalContent) +[Miscellaneous notes](MiscNotes) [An outline of the project structure](ProjectOutline) +[Webinterfaces for sending/viewing gcode](GcodeSenders) +[Various firmware implementations](Firmwares) +[Notes on packaging the code](Packaging) diff --git a/Packaging.md b/Packaging.md new file mode 100644 index 0000000..debbaca --- /dev/null +++ b/Packaging.md @@ -0,0 +1,17 @@ +# Creating an OpenWrt package + +In order to include the wifibox code in an OpenWrt image and have it deployed automatically, it must be available as a package. This could also prove useful with regard to auto-updating the code since ipkg can handle downloading, checksumming and upgrading automatically. + +The basic requirements for this are the presence of a Makefile for the OpenWrt build system to read, a feed to discover the package and a publicly available download source for the package itself. + +## Resources +* [Overview of the build system](http://www.ccs.neu.edu/home/noubir/Courses/CS6710/S12/material/OpenWrt_Dev_Tutorial.pdf) +* [Creating feeds (OpenWrt website)](http://wiki.openwrt.org/doc/devel/feeds) +* [Creating packages (OpenWrt website)](http://wiki.openwrt.org/doc/devel/packages) +* [Plain cross-compilation (OpenWrt website)](http://wiki.openwrt.org/doc/devel/crosscompile) +* http://hype-free.blogspot.nl/2009/04/compiling-software-for-openwrt-and.html + * [Hello world tutorial](http://manoftoday.wordpress.com/2007/10/11/writing-and-compiling-a-simple-program-for-openwrt/) + * http://vivekian2.wordpress.com/2007/03/28/building-your-own-package-for-openwrt/ + * (site does not load) http://hanez.org/openwrt-building-software-packages.html + * https://forum.openwrt.org/viewtopic.php?id=10117 +* [Another example Makefile](https://forum.openwrt.org/viewtopic.php?id=9951) diff --git a/SelfUpdater.md b/SelfUpdater.md index 41ba3a7..698789e 100644 --- a/SelfUpdater.md +++ b/SelfUpdater.md @@ -2,6 +2,8 @@ __TODO__: make this document intelligable +_Idea_: could the ipkg tool play a major part here? just releasing a new ipkg at the feed url then would be enough. just need a way to rollback..but ipkg can probably take care of that too + - create a rigid versioning system - server-side script to report available versions (scans directory and reports back versions available in xml/json/plain) - reported versions translate to archives and checksums (e.g. ?.tar.gz and ?.md5sum) diff --git a/UhttpdCrash.md b/UhttpdCrash.md index 4e55b96..03981e9 100644 --- a/UhttpdCrash.md +++ b/UhttpdCrash.md @@ -10,8 +10,7 @@ __TODO__: describe when this happens (sometimes in portal mode and always when w - Run it yourself: `uhttpd -f -p 80 -h /www`. - Do something to make it crash and voila. - After copying the file over to the host computer, open it in gdb with this command: ` uhttpd `. - There must be a more logical place, but at least the gdb executable can be found under the `staging_dir/toolchain//bin` directory. - (More likely is `build_dir/target-/OpenWrt-Toolchain-/toolchain-/bin`...add it to the PATH for easier access) + The gdb executable can be found under the `staging_dir/toolchain//bin` directory. ## Some handy gdb commands From [here](http://stackoverflow.com/questions/5115613/core-dump-file-analysis).