-
Viable Pi 400 Laptop
10/29/2021 at 10:42 • 0 commentsI've made another important decision regarding the hardware for this project. I've been hesitant to buy a Pi 400 due to lack of a screen or even room to put one. I was living in a tiny camper with a girlfriend and there was no room. Sadly we split up a while ago. I have my own camper now with a flat screen and plenty of room. I really wanted a portable Pi 400 as I like to get out and work in public, but there haven't been many good options. Vilros has solved that problem for me recently when they released the Pidock 400. It's a docking station for the Pi 400 in the form factor of a laptop. It has a nice screen, a touch pad, and makes a very nice portable set up. It's expensive at $240, but I was going to spend $200 on just a USB portable monitor. If I have enough money after bills this pay, I'll order the Pi and the Pidock and get moving on this project. The screen died on my laptop, so it's time for a new one anyway. It's from 2013, so time for an upgrade anyway.
I'm working on plans to get a touring motorcycle and move out west soon to escape Ohio. Having a Pi 400 laptop would make it very easy to develop on the road. Given how much free time I'd have, I might actually get far more done on the road. I plan to get a custom PCB designed and made before I leave so I can take a stash of carts with me on the road for testing. If I fail to meet that goal, I'll hand make some prototype carts so I have something to work with. I have all the hardware I need to assemble a few of them, but I don't have a good soldering iron to tackle the tiny pins on the memory chips. My job as a tow truck driver pays well, which will help this project, but it's destroying my life and taking all the energy I've got, so I haven't been working on projects. As I write this, I've got to get ready to go to work. Another call coming in. I'm almost always awake though, so it hardly matters. I'll be lucky to sleep at all most nights. I find it not worth starting on most projects because of my on call schedule. I'll be quitting towing soon and will get back to everything. It seems life just won't give me a break to work on this project like I want to. Oh well. New hardware should be on the way soon. Been saying that for months, but this time I know exactly what I want to get. The decision has been made at last.
Don't become a tow truck driver. It's miserable.
-
A Better Solution Found...
07/24/2021 at 18:04 • 0 commentsMy original idea, one I still wish to pursue, was to boot a Raspberry Pi 400 from cartridges attached to the GPIO port. I've found simple ways to run code from that port, but no confirmed way of booting an operating system from it. I'm sure it would be possible, but would require digging deeper into the Pi firmware and boot code than I could even comprehend. This limits my project greatly and makes it difficult to realize my original dream. Recently, though, I came across something very simple that does exactly what I want. Something that gives the Pi 4 a robust and user friendly cartridge system. It lacks GPIO access, but would be perfect for simple games and software.
The Retroflag nespi 4 Case is simply a very well made Pi 4 Case that looks like a NES, and uses a carriage that houses an SSD. The Pi 4 can boot from USB 3.0, which is how the cartridge connects the SSD to the Pi. The Pi 4 can boot from a cartridge. Exactly what I was trying to do. It's almost perfect. The only thing I don't like about the system is the high cost of SSD cartridge cases and high cost of SSDs themselves. I could get around both of these by designing my own cartridges for this system that use PCB material as the case, which cheap memory chips soldered to the board. They could be made to whatever capacity and style the game developer wants, and would likely be far cheaper than the official Retroflag offerings. Since the case uses a simple USB to SATA adapter, I suspect I could easily make a board that has the SD flash chips on it which converts an SD card chip to SATA over USB. I'm not sure exactly what would be required to do that, both mechanically or electrically, but it may be cheaper than an SSD. The cheapest SSD a lazy Newegg search found was $17.99USD. At only 32GB, it's far larger than needed for simple games, and hardly cheap. The SD flash chips I found are far cheaper and the smaller capacities would force smaller games and hopefully more creativity. Artificial hardware limits aren't always fun, but keeping things reasonably priced just makes things far more viable in the long run. Who wants to pay $50+ for a game cartridge with a ton of wasted blank space? I suppose it could be used to save user files. In any case, the challenge of designing a cartridge for this case intrigues me and I'll add it to my list of things to work towards. I'll be ordering a few of those cases soon. At least two. One as a main console for me to use in my camper, and one for development. This case could immediately put a new, modern, open source game console into the hands of developers. I know my dreams with this project are massive, but it's something to keep me moving forward and learning. I don't like easy things. Turning a simple educational computer into a viable video game console seems to be a challenge worth my efforts these days.
This case would make for a very different console than the Pi 400, but in a very good way. While my PiCarts 400 project is complex, with almost endless hardware possibilities, the nespi 4 console is very simple and robust. The 400 gives access to all GPIO, while the nespi 4 denies it. I can imagine kids using the nespi as a game console, eventually learning to program, and moving onto the Pi 400 and developing their own games and software for both platforms. We don't really have many mainstream, open consoles out there, like the 8 bit era had. I think these two Pi based systems are a great place to start dreaming and building. Hopefully I won't be the only one who thinks so.
This all makes me wonder how many people actually read my log entries. I'd love to see more discussion here at some point. I feel completely alone on this project. It's a little boring at times.
-
New Case Idea: PCB
07/24/2021 at 17:37 • 0 commentsI've been struggling with cases for these carts. Injection molding is the standard, but I can't afford the molds and tooling for production runs. I've seen setup costs run into the hundreds of thousands of dollars. I don't have $100,000+ just laying around to finish this project. What I do have is access to PCB fab houses that don't care what they're making, and are reasonably priced. Price per unit of a PCB case will likely be higher than injection molded, but that's ok as it gets this project completed.
That article came to mind recently and makes the most sense for this project. Cheap, strong, mechanically and electrically useful, and can be made into works of art. The missing piece to this project is the case, and I do believe I've found that missing link. The possibilities of FR4 as a case material are nearly endless. It's this endless possibility that draws me to certain things, such as programming. This project is a way for me to explore the possibilities of some of my favorite things, and come out with something useful others can enjoy. Just picturing the closet cases made of FR4 gave me an idea for an entire game console made with the stuff. One complete with status lights, switches and dials, input and output ports, and even expansion and carriage ports with robust edge connectors, instead of the more fragile pin headers. This project is growing in scope in my mind, so I'll need to manage the old feature creep if I ever want to get this done. I've just put together a list of development Hardware for this project, so I'm just waiting on the pay from my new job I start I'm a few days.
Anyway, the case dilemma, which has haunted me from the start, has been resolved. The idea is solid, I just need to out in the work to bring it to life. Very satisfying.
-
More Resources Coming Soon
07/23/2021 at 15:36 • 0 commentsI've recently started as a tow truck driver and really enjoy it. It pays better than any other jobs I've had as well. I will soon have the time, energy, and money to finish this project, after all this time. I should have had the money and time already, but tension with the new job and the lady has cost me everything. We split up and I'm just diving back into my work and projects to deal with the extra stress.
There are a few critical pieces of equipment I need, such as a soldering station, helping hands, magnifying glass, and all the supporting equipment to assemble the test boards. I got a small tv which I can use for testing with a Pi. The Pi4 wasn't mine, so I have to get a new Pi. I'll pick up a 4 and 400 soon. I want to make sure the carts will be able to work on both, though the target system is the 400. I may stock up on basic components and development boards as well. I haven't been as interested in programming lately, as I've been very tired and stressed, with no quiet time to spare. I am excited to get this project done though. I never seem to get a chance to finish my projects, so it will be nice to knock this out. Been trying to finish a project for years now...
-
Possible GPIO Boot Method: SMI
06/22/2021 at 18:44 • 0 commentsI was recently scrolling through HaD and found an article on a Raspberry Pi Zero hat that contains an SDR module. I'm not into that stuff yet, but I did find out something very interesting: The Pis all have an SMI(Secondary Memory Interface). I know very little about it, but I am starting to suspect that it's possible to boot the Pi from that interface. It also seems that older Roku devices used to boot using SMI, which tells me that the Broadcom SOC is capable of doing what I dreamed of initially. All I wanted was to boot the Pi over GPIO. It still seems possible, but difficult, and with a catch: it seems the Pi 4 doesn't support that feature anymore. Considering I am developing this project for the Pi 400, that's no fun. It does occur to me to finish developing this project, then start developing boot carts for older Pi models. Maybe I'll make my own cartridge based computer system that boots to a Python prompt without a cartridge installed. Tons o options here, just exploring them and taking notes before I forget about the details. A little more reading reveals that the bcm2835, which is known to be able to boot from SMI, is the CPU used in the original series of the Pi, and the Pi Zero. While all versions have SMI, only the old ones are known to have an SOC that can boot SMI. I don't want to build things for such slow systems, so I'll keep researching and working on this as I go. I'm in way over my head here with SMI, but there's no reason I can't revisit the topic in the future.
There is very little useful information I could find on the SMI front, but I put links to what I did find below. Kind of a shame there isn't better documentation on this interface. It would have been perfect for this project. Oh well, onwards.
Sources:
https://hackaday.com/2021/06/20/raspberry-pi-hat-adds-sdr-with-high-speed-memory-access/
https://www.raspberrypi.org/forums/viewtopic.php?t=280242
https://hackaday.com/2020/10/12/running-way-more-led-strips-on-a-raspberry-pi-with-dma/
-
SD Flash Chips Have Arrived
06/19/2021 at 02:56 • 0 commentsI got an email alert last night saying I had a package waiting for me at the UPS store. I figured it was something else, as I hadn't even gotten a valid tracking number on the flash chip order. Happily, it was the 1GB and 8GB chips I'd ordered. They got here faster than I was expecting. They're very tiny. Like half of a pinky finger nail tiny. I might get around to wiring up the break out boards and the flash chips tomorrow evening. If so, I'll post another log and upload some photos. After that begins the software development process. I've struggled my whole life with finishing big projects, so it's exciting to be making such good progress with this one. I still don't have the programming skill to finish this just yet, but there's nothing stopping me from learning. The plan is to start by just getting the SD chip to show up as a removable drive on the Pi 4. After that, I'll start filling in the back end code for the simple interface I made. It needs to be able to mount and eject the cart, load software from the cart, and back up and restore the cart. I want to find a way to make the EEPROM code trigger a python script at start up that runs on the Pi and loads the PiCart program. I need to really dig into the OS Python module soon.
Another big milestone for my little project. Hope everyone is enjoying the updates. I know they've not been anything major. I'm just excited to be making any progress at all.
-
First Prototype Nearly Complete
06/17/2021 at 17:33 • 0 commentsI've finally gotten some of the hardware for this project. The two Pi HAT prototyping boards and the SMT breakout boards from Adafruit have arrived. I tried to record a video of the assembly and introduction of this project for my channel, but my phone failed 4 times in a row to record. Fifth time's a charm, it would seem. These Pi HATs have the EEPROM on them for identifying the board and setting up the GPIO boards. I actually didn't know that was a thing until I found the standards for a board to be a Pi HAT. I love this feature and plan to use it on every cart. I still don't have the SD flash chips, but I at least have the main board assembled. All that's left is to solder the flash chips on when they arrive and wire them to the GPIO pins. I haven't started working with the software yet. I'm pretty tired today, so I'll likely call it quits for now and get some chores and rest in. These are at least ready for me to start developing the EEPROM files and get them written and tested. I need a vendor name, and I think I'll just go with PiCarts. Next update should be regarding the EEPROMs or when the flash chips arrive. Very exciting day for me. I had a wonderful job interview yesterday that would pay decent and give me tons of hours. I'll be able to fund this project quite easily soon. I'll be placing the order for portable HDMI monitor and a few other goodies, as well as picking up the Pi 400 kit and the M5Stack Faces kit from Microcenter. Finally feel as though I'm making progress on this project.
-
Education Applications
06/16/2021 at 12:19 • 2 commentsMy first experience with computers came when I was very young. Unfortunately, my mother would dump my sister and I off at The Boys and Girls club every chance she got, so that's how I spent much of my early childhood. It always made me very uncomfortable around other people, and there were probably at least a hundred other kids there every day. Once I was old enough, maybe 5 or 6, they granted me access to the computer lab, with it's many iMacs. On these were installed many games. My favorite was always Age of Empires. I played for countless hours on those computers, and they got me very comfortable with computers of all kinds. This was a very important experience for me, as I had something to do that was oddly comforting. I spent much of my life so far being very uncomfortable, but my computers have kept me sane over the years. While scrolling around on the internet today, I found an article that really made me happy. An engineer donated his time and efforts to a local library to teach Python to kids. He used the Raspberry Pi 400. This is the exact context I imagine the Pi 400 is best suited for. I imagine an entire computer lab full of them, with all kinds of interesting programs, documentation, books, video tutorials, and education games. I believe that learning how to use computers is an essential skill these days, and I know there are many kids out there that don't get the chance, or don't get access to higher levels of knowledge. The computer labs of my past shaped me and gave me direction in life. I know my little project isn't likely to grow to the level that the Raspberry Pi Foundation has, but I admire their work and hope to enhance the experience. My PiCart project is being developed initially for games and software, but the ability to add hardware is what I think would really help people learn new skills faster. It's really not that hard to plug an Arduino into a USB port and open the IDE, unless you're a librarian, teacher, or parent who has no idea how to help. I remember my parents and teachers trying to help me with my computers...it rarely went well. I'd always wished I grew up in the 8 bit era of computing with its simple, rugged, and functional cartridges. They added extra software, and often extra hardware to work with, teaching new skills at times. Even if I have to find it myself someday, I'd love to see a library computer lab loaded with Pi 400s, tons of books and cheat sheets, and shelves of cartridges that could be borrowed and bought. There aren't many native games for Linux that will run on the Pi either, so I'd love to see that take off as well. Especially open source Python games that people could tinker with and make their own. I may be moving back to my he town for a few months for a new job, which gives me a chance to visit my childhood library. I may be able to donate some Pis and carts to them and set up a small programming area in the computer lab and teach some basic classes. I've taught a few things over the years and find it to be some of the most rewarding work I could find. At only $100 per kit plus monitor, I could afford to get a few stations set up. They may even offer to fund the project. Leaving something like that behind when I move to California would be very satisfying to me. I may eventually sell these carts if there is demand, and just use the income for more educational work. I've always wanted to give back, but wasn't sure how. I know this project is ambitious and may never take off, but I want to give it the greatest chance possible. If a single kid sits down at a Pi, plugs in a cartridge, and learns something, I'll be entirely happy.
https://opensource.com/article/21/6/teach-python-raspberry-pi
-
Real Time Clock: Initial Research​
06/12/2021 at 19:53 • 0 commentsFor a while now, I've been wanting to learn how to work with real time clock(RTC) chips. This project is a great way to get started on it. The reason I want to integrate an RTC into the carts is for running in game events after the system is turned off. I could just check the system time, but it's easy to mess with that, as well as having incorrect system time. I always loved the features of Pokemon Gold and Silver versions when they came out. Encountering different Pokemon during the day and night. I never stopped to think about how this worked when I was young. Now I understand how such features existed. With an RTC on the cart, I can duplicate in game events like that. Maybe certain enemies only come out at night, or only certain riddles can be solved with by the light of a certain moon.
I've started looking at different RTC chips and settled on the DS3231MZ/V+. The main problem I have with this chip is the per unit cost of $7.75. Even with bulk discounts, it's still an expensive chip. I wouldn't mind for my own use, but I want this to be an affordable board for the average hacker. I do plan to order a few of them for testing in the future and will decide if I want to integrate them or not. The chip shortage doesn't seem to be helping matters any either.
Interfacing with this chip should be fairly simple using I2C over GPIO on the Pi 400. I haven't made too may plans for other devices to use I2C, so the interface should remain free for this chip to use. I've not gotten much done on this part of the project, but wanted to record some thoughts for future reference. Looking forward to assembling the hardware and programming for it.
-
Hardware Setup: Pi 4 and USB to HDMI
06/12/2021 at 18:39 • 0 commentsI finally had some time to sit down and work on a few things this morning. I didn't get very far though before my allergies made it impossible to see what I was doing. I got the Raspberry Pi ready for some testing. Removed the back panel from the touchscreen terminal case, replaced it with one that can handle the GPIO extension cable, and camera cable. I had to remove the heatsink and fan, as well as comment out the overclock settings I was using in the config.txt file. I connected to my phone's hotspot and got the system fully updated. Before assembling it all, I hooked up the micro HDMI adapter and cable. That was about it for the Pi. It's ready for testing when the cart hardware arrives.
I had ordered a cheap HDMI to USB capture card so I could use my laptop as a monitopr for the Pi. That thing turned out to be garbage after a few hours of tweaking. I could not get a steady useable frame rate, or a useable image. I suspect the device was overheating, but I don't have the time or energy to deal with that. I took a chance on something cheap, and lost. Never again. I'll just save up and buy a portable monitor for the Pi 400 when I get it. So tired of cheap crap.
The prototype cart hardware should be waiting for me in the city, so I'll pick that up in a few days. I'll solder it all together and get started on programming for the SD flash chips. The goal is to just get them to auto mount and safely eject them through the test interface I made with tkinter. I bought some cheap USB flash drives for testing so I don't mess up my other drives or the flash chips. I'm having trouble mounting drives, as I don't understand how to create mount points and such in Linux. Still have a lot to learn these days. It's slowly coming together though.