How much memory do you really need? We suppose it’s not really our place to judge how you
misuse use memory in your projects. But we do appreciate the clean and orderly technique that [Eric Rogers] uses to add multiple SPI SRAM chips to an Arduino.
The heavy lifting is done with a CPLD shield called the Amani 64. It intercepts the SPI calls from the Arduino to an SRAM chip, and translates the address information to find the appropriate data on a collection of 23K256 devices. These chips are inexpensive, and using several of them provides a savings over choosing a single SPI addressable chip with a larger memory size.
The best part is that the flexibility of the CPLD allowed [Eric] to devise an addressing system that takes advantage of unused bits in the Arduino’s SPI data transfer functions. When using a single 23K256 chip, there are four write functions that waste a total of six bits. He devised a method to inject addressing data into these unused bits, allowing him to address up to 64 different memory chips for a potential of 2 MB of storage. The CPLD pulls out this injected address and subsequently writes or reads the bank of SRAM chips.
Looking for other SRAM upgrade options? Here’s another one that uses multiplexing to decrease the address lines necessary to add memory.
[Andy] stuffed some more RAM onto an Arduino Mega and his three-part walk through on the design, construction, and software is a great read and one of the more ‘hard core’ Arduino builds we’ve seen.
The build is centered around a 512K × 8 SRAM module [PDF warning]. Because the RAM is divided up into about 512,000 chunks of 8 bits, the Arduino has to access the RAM through 16 ‘address lines’, then send the data through 8 ‘data lines’. [Andy] didn’t want to use up 24 pins on his Arduino, so he used a latch to multiplex the lowest 8 address lines and the data lines together. With the 512KB RAM expansion installed, the Mega is able to address a whopping 520 Kilobytes.
We’ve seen a few builds that have been limited by the amount of RAM available in the Arduino, like capturing video and some robot hacks, and adding some more RAM to those builds would be great. Multiplexing data and address lines using a latch can be expanded even further, but 520KB ought to be enough for anybody.
If you’ve ever wanted to dive in and take a look at how memory hardware is implemented here is a good example of how to implement some latching circuits with ether BJT or CMOS transistors. BJTs require biasing resistors which increases the complexity and power consumption when compared to CMOS. If power consumption isn’t an issue you could certainly make some really fast logic.
Most modern on chip RAM is made using SRAM because it only takes six transistors to implement(vs eight) and is pretty fast. When it comes to density DRAM can get one bit of storage by using a single transistor and capacitor(putting the capacitor underneath he transistor can save even more space). All that said, latches and flip flops are still a very useful (and common) tool when working with digital circuits.
We’d bet you never had a Dreamcast Visual Memory Unit, but if you can find one now it can be turned into an iPod (translated). The VMU was originally a memory card for the not-so-popular gaming console that put an LCD screen right in your controller. When you weren’t at home you could take it with you and play mini-games. This version lacks its original guts, which have been replaced with a 6th generation iPod nano. The screen is just a bit small for the opening so a frame of white tape was applied as a bezel. The sleep button has been extended through the cover for the VMU connector. It seems there’s a gaping hole in the back of the case, but after seeing the ultrasonic knife used to cut away the plastic we don’t care. We’ve embedded video of that tool after the break.
Continue reading “Dreamcast VMU, meet iPod”
[StaticChanger] built a scoreboard to display his kill statistics from Halo for the PC. Yes, we’ve seen kill counters before, but we like the way that he gathers the data. This project is reading the score directly from an address in memory.
Using a program called Cheat Engine, the memory used by a program can be sniffed. After a few passes, the program will help you find a static memory address for your desired data. Once you have that it’s just a matter of using a pointer to that address in your desired programming language. In this case, a C# program polls the value and instructs an Arduino to display the value on a couple of 7-segment displays. Voila, the number appears next to your screen as you see in the image above.
You can now download the exploit package for the PlayStation 3. [Geohot] just posted the code you need to pull off the exploit we told you about on Sunday, making it available on a “silver platter” with just a bit of explanation on how it works. He’s located a critical portion of the memory to attack. By allocating it, pointing a whole bunch of code at those addresses, then deallocating it he causes many calls to invalid addresses. At the same time as those invalid calls he “glitches” the memory bus using a button on his FPGA board to hold it low for 40ns. This trips up the hypervisor security and somehow allows read/write access to that section of memory. Gentleman and Ladies, start your hacking. We wish you the best of luck!
Check out this visual hardware guide from deviantART member [Sonic840]. It has everything from memory modules, to bus sockets, to power connectors, to an entire array of CPU sockets that have been used over the years. You’re bound to see something in there you didn’t know existed.