Close
0%
0%

X1Plus Expansion Board

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

Similar projects worth following
The X1Plus Expansion Board is a hardware companion to the X1Plus open-source custom firmware distribution for Bambu Lab’s X1 3D printers. It adds printer expandability with an Ethernet port, two USB ports, a STEMMA-QT / Qwiic-compatible I2C connector, and four interchangeable GPIO headers for pluggable add-in adapters. The hardware is open source, too, and I'm gearing up to sell it on Crowd Supply!

This project log is definitely going to come in media res -- as of the time I start writing this, we're on the second rev of most boards involved.  But the gist of it is that Nixiebunny and I fabbed out a prototype of an expansion board that adds a handful of features to the Bambu Lab X1 Carbon (Ethernet, two USB ports, I2C, and a bunch of other GPIO).  The impetus is that the built-in WiFi on the printer is really bad, and it would be nice to have some expandability.  Once we had a basic prototype up and running, I posted about it on the Bambu Lab forums, to see if anybody else would want one, and the good news was that lots of people wanted one! The bad news, also, was that lots of people wanted one, because then it meant that I was going to have to figure out how to manufacture this thing.  Here's the video I posted on the Bambu forums, before we had any plugins for it:


I've partnered with Crowd Supply to bring it to life, and over here, I'll write about the development process of this thing. This project log will talk about some of the milestones of bringing up the software and hardware, progress on new board revs, and, of course, how much Finding Out I do when it comes to manufacturing.  I think a pretty good success criterion would be to sell this thing to a hundred or so people and break even on the manufacturing, and learn from it -- if it works out, I have other hardware projects I want to design that other people might like... If I end up doing more volume, and manage to recoup the prototype costs, I'll be over the moon thrilled.

  • We are live!

    Joshua Wise11/04/2024 at 03:19 0 comments

    Whoah!  I'm on the plane on the way home from Supercon, and man, I am exhausted.  This weekend, I talked about X1Plus as a whole at the conference, and more interestingly to you, I (and my amazing Crowd Supply project manager!) got X1Plus Expander launched, and you can give me money now!  (Also, we changed the name from "X1Plus Expansion Board" to "X1Plus Expander").

    So, ok, first thing first: you should definitely give me money and buy this thing!  Here's the Crowd Supply page, if you forgot.  It's $125 for Expander, $25 for a nice pre-printed SLS case, and a few bucks more for varying add-in modules.  I'll write more about the economics of it... much later, but I promise that I will.

    But also you might be interested in watching the video that I alluded to.  I'm really proud of how it came out!  Here's 9 hours of filming and editing for a 90 second product video:

    All this socialization really makes me more ready than I have ever been before to sit down and write a UI for the Expander configuration.  Which I guess is a good thing, because we need one of those soon...

    I've got a checklist of other things to take care of in the near future, basically, in categories of "before crowdfunding completes", and "before units arrive on my desk".  I'll write that up soon!  But for now I'm going to go home and sleep, and hope that my half-ass job of masking saved me at least a little bit from the nearly-certain con crud.

  • Come see X1Plus at Supercon!

    Joshua Wise11/02/2024 at 03:48 0 comments

    Are you at Supercon this weekend?

    If so, come say hi.  Below, an X1Plus Andon Board hacked up as a SAO for the Supercon 8 badge:

  • Air monitoring with the Expander

    Joshua Wise10/21/2024 at 20:18 0 comments

    So we've been sending some Expanders out to folks who have been involved with X1Plus since the very beginning.  It's validating to hear that they're exciting enough for someone else to bother to write a plugin for an I2C module they have lying around!  WolfwithSword, who was responsible for a lot of the MQTT Home Assistant integration work for Bambu printers in general, just submitted this patch to support the PMSA003I air quality sensor.  The data WwS has gotten out of it is very cool so far, showing very reasonable levels when printing with PETG:https://joshuawise.com/resources/x1plus/pm25-petg.png

    And some truly unpleasant results with ASA:

    https://joshuawise.com/resources/x1plus/pm25-asa.pngVery cool.  What other sensors do you think are worth adding support for?  How would you render these data on screen?

  • Hey, what's taking so long?

    Joshua Wise10/16/2024 at 06:55 0 comments

    One of the things I had promised [1] to talk about is not just the fun technical bits of this whole project, but also the boring logistical bits.  This is a good opportunity to talk about where this is, and what's between here and launching the campaign and taking your money!  A user, as far as I can tell, joined the Bambu Lab forums explicitly to say they wanted my thing, and then posted nowhere else other than to complain that it's taking too long, which definitely feels like quite a compliment to me, and some solid market validation.  I gave a short overview there, but here's the longer answer.

    Read more »

  • X1P-002-C01 looks like it works

    Joshua Wise10/05/2024 at 05:38 0 comments

    The march to having something we're ready to productize continue.  X1P-002-C01 (that's the third revision of the mainboard, which I talked about in the previous update), with the new buck converters and the RP2040, came back on my desk last week, and it seems to basically have worked on the first go.  It looks like there will be a few changes to passives -- it turns out that these Silergy regulators are really finicky -- but everything seems to work fine other than that.  Below, a "half-build" of an X1P-002-C01 (no LAN9514, yes all the new power supplies, yes RP2040) happily blinks an Andon Board:

    One of my tricks of the trade for making sure that I actually make it through all the things that I needed to check out on a board is that I do a checkout spreadsheet, with all the tests I care about.  That way, when I think of more tests, there's an obvious place to write them down so I don't forget, and I can also take notes on a debug if things aren't going the way I wanted.  Here's the final tally for the X1P-002-C01 checkout:

    There's been kind of exciting software work recently too, but that's food for another post.  Maybe later this weekend...

  • Goodbye, FTDI

    Joshua Wise09/20/2024 at 07:26 0 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.

  • The shutter release module is alive!

    Joshua Wise09/10/2024 at 07:49 0 comments

    One of the goals of this project has been to support plugins to the rectangular GPIO headers on the top.  Early prototypes of the X1Plus Expansion Board have FT2232H, but sooner or later I'll be changing to FT4232H to make all four ports homogeneous.  We have three plugin boards that we're working on right now:

    • X1P-004: a WS2812B-style LED strip level shifter board
    • X1P-005: a compact light stack, beeper, and button board
    • X1P-006: a camera shutter release trigger board

    X1P-006-A01 (the first rev) came back a few weeks ago, and we identified some changes needed: new 2.5mm connectors that had *all* the pins connected (d'oh!), pinout changes for safe initialization state on the FTDI, etcetera.  To validate the changes before we fab out X1P-006-B01, I hacked up an X1P-006-A01 to match the new specification, and bit the bullet and upgraded my ancient Sony NEX-C3 to a fancy new-to-me used a6600.  Of course, the first thing I did with an $800 camera was to connect it to a piece of experimental electronics dangling off of a 3D printer!

    (Peanut is the official First Layer Inspector of the X1Plus project.)

    I spent a long while writing some software to glue G-code actions to GPIO outputs on the FTDI -- like, a week -- and took two time lapses: one with the printer's built-in chamber monitoring camera, and one with my a6600, using the X1Plus Expansion Board.  You can compare them for yourself, if you like:

    I'm pretty excited about how this came out so far.  This is the sort of validating experiment that tells me that this might be worth doing!


    Here's the bit where I'm supposed to tell you that if you think you might want one of these, you need to click the subscribe button on Crowd Supply.  The launch of this project depends on enough of you showing that you actually would buy one!

View all 7 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates