The purpose of this project is to support the #YASEP and other Free Hardware Designs with the help of a device that is :
- Cheap: no significant investment so even beginners can do it
- Compact and autonomous : can operate with a battery pack for easy handling on site (yes I have used mine outdoors in winter with no access to mains...)
- Easy to make yourself : simple, easy to find components, no hard-to-solder parts...
- Based only on Free Software (Affero GPLv3+ is chosen for everything)
- Exempt of any proprietary technologies (directly or indirectly), such as USB: no driver or configuration to do for the user (you can use any OS or browser)
- Plug&Play : connect it to your computer or the local hub, point your browser to the IP and start playing.
- Perennial : store it for years on a shelf without fear of obsolescence.
- Powerful through integration with other modules from the YASEP framework
A Flash SPI programmer is an essential engineering tool that has been done over and over. I built my first LPT-based SPI programming dongle around 2004, using instructions found on the Web. It was cheap and smart, stealing the power supply off the pull-up resistors, but you know what happened to the parallel printer port... Do you even have one left somewhere ?
Today most interfacing duties are performed over USB but this creates a whole lot of problems that will make me digress and rant.
Fortunately Ethernet is one of the last communication ports that still remains in today's cost-conscious consumer (autistic) "PC"s. It requires no driver or explicit configuration (nowadays DHCP is the norm) and TCP/IP is a venerable, well understood protocol that reaches wayyyy beyond the boundaries of your desk. You can use the programer on a desk across the room, in another room, in another building or...
The Raspberry Pi also bridges the gap between sophisticated OS and IO bitbang, along with affordability and availability. Its success strengthens the world of the Linux nanoPCs, where the competition benefits everybody and reintroduces directly-accessible IO pins !
Deciding to host the YGWM framework on a Pi was a natural choice, despite Pi's shortcomings (let the competition do its work :-D). For a Free Hardware Design project to succeed, it is essential that the entry barrier remains as low as possible and now most hackers have a nanoPC or two to tinker with. Turning a Pi into a SPI master interface requires little additional hardware so the differentiation comes from the software and its integration.
The OS is derived from Raspbian, my version is #Raspbian Squeezed that can work without monitor and can be abruptly powered off without any risk.
The flashing program tries to do one thing and do it well. It is a single C program working as a CGI with the standard Apache HTTP server. It handles a custom file format called .HYX that is easy to understand, parse or generate. The trick is that it can support other file formats through the use of filters, like oldfashioned UNIX programs. UNIX filters are already provided to export/import in JSON and raw binary formats. Better yet: through its integration with the #YGWM tools, you can import data from other sources and create your own filters in JavaScript, which keeps the C file short and clean.
Logs:
1. Adding a new part: the Winbond 25Q32
2. Software updates
3. A little speed comparison
4. Todo...
5. Updates
20170501:
The rebuilding work has started, with the now working #C GPIO library for Raspberry Pi a (which now supports Pi2 and Pi3) #C SPI library for Raspberry Pi. It will take a while to get the whole stack working nicely again but this is on my roadmap...
Just to let you know : I am amazed by the interest this project generates :-)
Thanks everybody for the "follows", I'm doing a lot of other things but I'm still working on this particular project. Right now I have to solve OS image issues.
And your feedback is always welcome !