Close

Goodbye, FTDI

A project log for X1Plus Expansion Board

Add lights, sensors, cameras, and more to your Bambu Lab X1 Carbon printer

joshua-wiseJoshua Wise 09/20/2024 at 07:260 Comments

Well, that was a fun adventure.  Over the last week or so, Dan and I were putting together some changes to prepare for the next rev of the board, and one of the things I had on my list to check out was to replace the FT2232 on my board with a FT4232, and make sure that everything was OK.  The problem that I was trying to solve was that we had two of these lovely FTDI high-speed I/O engines on the '2232, but the other two ports on the top shared USB interfaces, and couldn't really be commanded independently -- and I really wanted four homogeneous ports on the thing.

I depopped the '2232 on a test board that I had, and soldered down a '4232.  Clearly I had done a poor job of soldering it, but while I was flipping through the datasheet for indications as to why the '4232 wouldn't work in the '2232's place, I came across the following distressing table:

Hey, what gives?  The FT4232, despite having a 4 in the name, doesn't have four homogeneous channels either!

Well, I'm glad we figured that out now, rather than after having manufactured a bunch of these.  That would be really annoying software to write.  But truth be told, I had been getting pretty frustrated with the FTDI's limitations already -- most notably, the fact that it drives some of its I/Os push-pull on startup until initialized.  So, after plenty of trying to avoid it, I did what I probably should have done from the beginning: I kicked out the accursed FTDI, and designed in an RP2040 ("only moderately less buggy, but, hey, at least it's cheap!").

I am only vaguely looking forward to writing some firmware for that thing to implement a cheesy pair of USB endpoints that can permute some GPIOs -- and do some high-speed serial things -- on demand... and very much not looking forward to rewriting all the FTDI code that lives in x1plusd is going to be even more annoying.  But it's going to be easier than making the FTDI work long term.

A cut-down version of X1P-002-C01 with the RP2040 and some higher efficiency switchers, and better overcurrent protection, is out to fab... I guess we'll see whether I got it right in a week or two!  If so, this should be pretty close to the last rev before I'm ready to go to production.  Fingers crossed.

Discussions