REV10 NAND flash and analog mux update

REV10 is a last minute update. We had REV9 production PCBs done and ready to assemble, but we hit a snag.

On-board NAND flash

SD cards limit the max speed of the internal SPI bus to 1/2 or 1/4 full speed. This slows down the LCD refresh rate. I’ve also had reports that linux has timeouts reading and write from the Bus Pirate Mass Storage Device USB drive.

To combat this, I replaced the SD card with a NAND flash chip. The RP2040 now handles the wear leveling, bad block detection, garbage collection, etc. All the stuff that normally happens in the micro controller embedded in an SD card.

A 1Gbit NAND flash formats to about 90 megabytes once all the spare backup blocks are allocated. This isn’t a ton of space, but it’s enough for the configuration files, logs, firmware files, and tutorial/walk-through files. I’m also going to try out 4 and 8Gbit NANDs for more storage.

Op-amp buffered analog mux

This change fixes two separate issues:

  • The bug report of a glitch on IO pins when a voltage measurement is taken through the analog mux
  • An ongoing issue with back powering through IO pins connected when the Bus Pirate is unpowered. We’ve protected everything by using series resistors and let the clamping diodes do their thing, however this should eliminate it entirely

In a back powered situation the 100K resistors should limit the current to VUSB to 0.05mA max, 0.45mA for the whole board. A buffer was applied to every pin that interfaces with the outside world (VOUT_VREF/IO0…7).

Schedule

  • PCB out for production this week
  • Assembly on Monday
  • Board testing/check next week.
  • FCC testing by the 1st
  • Begin PCB production when FCC testing is started
  • Assembly on the 7th
  • Availability on the 8th

This optimal, and could get dragged by any number of things. We’re still waiting on the enclosure too.

3 Likes

Hi Ian

Regarding using NAND instead of microSD, it seems like a good idea.
First probably stupid question; In your opinion, is it possible to replace a NAND without using a soldering iron? Maybe through a housing?

Second probably stupid question; What type of chips are used inside USB sticks?
Do you think they could be longer lasting and larger?

All good questions. The NAND is U(P)DFN package. I bet there is a chip socket for that, they tend to be expensive. In terms of making a removable stick though, that could be very well covered by patents, but sure it would be a fun project :slight_smile: Maybe just a PCB with an edge card socket (like PCI)

The dies in SD cards (and those SD card ICs which seem like SD card dies bonded in a chip) consist of a bunch of NAND flash and a microcontroller. I’ve never seen one decapped, so I don’t know if there are multiple dies or it is all one piece of silicon.

image

This is from an SD card IC datasheet.

Will you be able to rework case, to remove MicroSD slot on case?

So, I imagine it’s possible, because they have to rebuild the insert nut cavity (though we warned them repeatedly about it). The factory we used is a bit hard to deal with. I’m gonna just roll with it for now.

The first thing I did when I realized we needed the change was to find silicone sd card “dust covers” and other similar plugs. Less than ideal, but at least it’ll be plugged.

image

The NAND flash worked great from the Bus Pirate terminal, but I had all kinds of issues getting it to work as a USB disk. isr hardfaults while acquiring spinlock (atomic, RP2040 style). I spent hours debugging the spinlocks and fiddling with it yesterday.

Well, it turned out the TinyUSB MSC was trying to grab 2048 byte block sizes (NAND flash) with a 512 byte (SD card style) buffer and overflowing. Nothing spinlock related at all. Now it’s working well. It’s MUCH faster than an SD card too, even doing our own wear leveling and such.

Happy dance :slight_smile:

3 Likes

I think rev10 is what I will buy to test out and support the project. Or is it advized to wait for the final version?

Hey @AreYouLoco !

REV10 is the “final” version, insofar as it’s in the case and all known (hardware) bugs are fixed. There could be tweaks and over the years, but I have no further updates to make at this time.

Cheers,

ian

What will be the final price? I dont care about fancy leds an enclosure.

Just board plus cables. I am no rich and I dont earn in dollars so I would like to know how much money I need to save.

I am happy user of BusPirate v3.6b :laughing:

I’m glad you like the old Bus Pirate :slight_smile:

So far the plan has been to increase the price of each batch, until we end up somewhere we can consider selling to distributors.

The preview batch was $27 - same as v3. I think the first batch of rev10 will probably be around $37, the same price as v4. I need to recalculate the cost though, because we had to upgrade some diodes to expensive name-brand parts and added 9 more op-amps.

Ok thanks for the info. From where do you ship? And how much would be shipping?

We ship from China. It depends on where it goes, we’re trying to add some new cheap airmail options. PostNL Airmail is somewhere from $7-10 these days.

Our shipper is adding the same logistics company that Aliexpress uses (Cai Niao). Hopefully that has fast and far reach at old-school prices ($3-$5). I think we have it for North American and Europe, but our shipper is slowly adding the rest of the world too.