Project update 8 of 21
Here’s an interesting writeup for those UART-bridge-freaks among you. The μArt will go through a second prototype, as I’m replacing one of its key components, the CP2102N. This turns out to be advantageous for backers, but not so much for me. Anyway, here’s the full story.
Basically, during the many weeks of testing and using my μArt prototypes, I’ve found two bugs in the CP2102N, the IC that does the USB-UART protocol translation. That’s right, I’ve managed to test it enough to discover two new bugs that have been previously unknown to its vendor (Silicon Labs), even though the device has been on the market for more than two years now. I feel the need to handle these silicon-bugs seriously, as both result in a complete freeze and lockup of the device that can only be recovered from using a power-cycle. The whole point of the μArt is to make sure such things do not happen! I promised an adapter to you that does not suffer from instabilites like some other cheap boards do, and I fully intend to deliver on my promise.
One instance where the mentioned lockups can happen is when using software handshaking at moderate baudrates such as 115200. The other lockup can happen when the IC is receiving a byte in the moment of closing the USB connection on the host. I’ve reported both cases to SiLabs and we’ve been communicating using their issue tracker for some time. They managed to reproduce both issues on their own devices, and have promised a hardware fix for - wait for it - Q1 of 2019 at earliest, and only for one of the issues. Also, no driver workaround in sight. This timeline obviously doesn’t work for me, so I decided to scrap this IC and use an alternate one. Unless something pops up again, it is going to be the FT231X from FTDI.
The replacement part, the FT231X, has the same UART pins, the same max speed, GPIOs, alternate functions, bla-bla, and the price for you also stays the same. In other words, you’ll get the same device with the same features and capabilities you were promised during the campaign.
This only hurts me not just because the added cost of a second prototyping run, but also because the new IC is quite a bit more expensive, by about 0.80 USD (that’s a considerable part of my price buffer), and I won’t be increasing the campaign prices. I’ll just swallow this whole and try not to think about it too much.
Actually, you are affected mostly positively. The FTDI chip has a perfect UART driver in older Linux kernels already, which means you won’t have to use the new 4.19 kernel to get full and flexible baudrate support as discussed here. Also, the GPIO capabilities of the FTX231X are a lot cooler, because contrary to the buggy SiLabs part, you can use them to implement real-time protocols. That’s right, with the right software, you’ll be able to use the μArt not just as a USB-UART converter, but also as a USB-I2C bridge (or in fact as a converter for any other protocol too, as long as you have the required number of pins). And you’ll be able to use the UART pins as GPIO too, which means you’ll get more GPIOs! Furthermore the GPO pin in the new μArt’s header will have more reconfigurable functions, such as a USB charger detector - only remote wakeup won’t be part of the list. So this IC clearly beats the CP2102N in many aspects.
The only "negative" way in which it affects you is that I had to write a kernel driver for the new chip’s GPIO too (which now makes it two drivers I’ve committed to Linux), and it obviously won’t make it into 4.19 in time, but it is already being reviewed and should be part of 4.20 two months later. Note that if you don’t want to wait for 4.20, there is the libftdi project, a well-known, maintained, cross-platform, and mature user-space library that you can use to control the GPIO pins of FTDI devices today.
You might have worries about how well the new device checks out. First of all, this is why I’m doing a separate prototype run with the FTDI part, to make sure everything is perfect before shipping. Secondly, I own a couple of boards based on both the FT230X and FT231X that I have been using in the past years, and I cannot remember having stability problems with those. Third, I’ve done my fair share of research. This device has been on the market not for 2 years like the buggy CP2102N, but ever since 2012. That’s three times longer, and an internet search has revealed no problems or issues by others either, except for one that was been corrected by the vendor in the first year after the device’s original introduction in 2012.
I have already ordered the new prototypes, and I should be getting them in about 2 weeks from now. This means if all goes well, this doesn’t influence the originally intended shipping date of the μArt. I’ll be doing certification testing once I’ve received the new prototypes, as there is no point in doing them on non-final hardware.
I’ve managed to discover two serious, previously unknown hardware bugs in CP2102N devices. If nothing else, at least the amount of testing I gave this chip should wake some confidence in you, given that nobody else has managed to discover these issues in the past two years. I take the reliability of the μArt very seriously, and since Silicon Labs is unable to provide a timely fix even though they confirmed the issues after I reported them, I’ll be replacing this part in the μArt with the FT231X from FTDI. The μArt will still have the same capabilities as originally advertised in the campaign, so you have no reason for concern, and prices for backers during the crowdfunding period also stay the same. New prototypes are under way, they’ll be tested too, and you’ll only receive a product without any known issues. Oh, and by the way, I’ve contributed yet again to an open-source Linux driver, to add full support for the new chip in the μArt.