At the start of this project, I wanted the Pi to be able to boot from the cart over GPIO. I can't find a way to do this right now, so I'm changing the goals so the project doesn't stall out. The problem with booting from the cart is that the only viable interface I could identify is SDIO on the GPIO pins, but the firmware of the Pi 4 doesn't seem to support booting from it. Instead of trying to mess with the firmware and make users do the same, I decided to just start with a simple program that manages the SDIO connected flash device. Software and user data would be stored on the flash chip attached to the SDIO interface, and allow loading, ejecting, backing up, and even updating the carts. A read only partition would hold software, such as a word processor, or even a game. User data would be stored in another partition on the cart.
This would require the user to install a program on their Pi, but I'm ok with that. The program could even have install files on the read only partition so that no network connection or external sources would be needed to install. This isn't as clean as running an OS from the cart, but that's ok. I'm currently calling this software the PiCart Manager software. I'm also considering adding a hardware button to each cart to load or eject the cart. I've got to see if it will be worth a GPIO pin to implement. These carts are all about simplicity and convenience, and not having to click through menus to safely eject a cart may very well be worth the GPIO pin.
Another thought just occurred: how to load carts on a Pi without the PiCart Manager installed, and with no option to install? Perhaps a lab computer or a friend's Pi or something. I'll have to figure that out. I have to look into what all I can make the system do with the EEPROM data on the board. If it can set up the GPIO pins, mount the SDIO attached partition, and run a program, I could have it run the PiCart Manager in RAM without having to install. I've yet to get too deep into that part. If I can't make it work right away without installing anything, that's ok. I'll just keep moving forward with the new plan.
I've recently started organizing this project with paper. Actual physical paper. I actually really enjoy the process. I don't like having to get out my phone or laptop just to add something to a list. I'm using paper folders and paper so that I can recycle the entire project when everything has been digitized and get the clutter out of my life. Of all my projects, this PiCart project is my favorite and likely to be the first project completed and released. I've outlined the general functions of the software, as well as the procedures for various tasks, such as loading a cart, and backing up a cart. I'm stuck in the research phase for a while until I can buy the Pi 400, an HDMI to USB adapter, and the prototyping hardware for the first cart. After the first cart is built and tested, I can get the PiCart Manager software done, then start on other carts, such as an Arduino cart with built in flash storage. These carts are basically Pi HATs, but with on board mass storage and programs. Basically a way to keep everything for an entire project in one convenient place. I'd be far more likely to develop further projects with something like this, as I'd never have to worry about leaving files on a flash drive or forgetting the hardware.
Hope everyone has enjoyed the updates. I'm very anxious to really start developing this, but money is tight right now, as is time. I'm learning to program, learning to sail, learning massage, learning PCB development, working, and trying to complete the projects on the camper we live in. Extra busy these days, and this project is sadly one of the lowest priority items, even though it's the most exciting and promising. Any and all help welcome on this project if anyone wants to contribute and help me get it done faster. Otherwise, I'll keep chugging along. Cheers.
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.