Final project - FabDeck
group page // repo source files // objectives
Contents
- hero
- project
- questions
- process
- spiral 2.0 thru 2.4
- meta
- body
- meta
- body
- meta
- body
- meta
- body
- spiral 1
- cad
- supplychain
- storage
- integration
- rails
- lighting
- inspo
- fastener
hero >
project >
questions >
What does it do? >
the FabDeck is a portable soldering station for on-the-go hacking. Every year, I go to hackaday and bring my tools and projects in ziplock bags. No more! this year, I went with spiral 0 of my FabDeck, which received a lot of great feedback and vibes from the community.
Who’s done what beforehand? >
the term FabDeck is derived from digital fabrication and cyberdecks; digital fabrication deck.
- This class teaches digital fabrication, and digital fabrication is a large driving force behind the hardware hacking community.
- Hackaday 2022 Cyberdeck contest launch article
`When William Gibson first described the “cyberspace deck” used by the protagonists in Burning Chrome and Neuromancer, he offered only a few concrete details: they allow the user to explore cyberspace, are generally portable, and more adept owners often modify them to fit their particular needs. Anything else was left to the individual’s imagination, due in no small part to the fact that he author himself didn’t exactly know what the things would look like at the time. Still, not bad for a guy who was hammering it all out on a typewriter at the time.
- from the Hackaday 2022 Cyberdeck contest launch article `
from the 2022 and 2023 cyberdeck competitions, cyberdeck projects have absolutely exploded! I want to join in on the fun. here’s a sampling from the web (mostly hackaday):
and some sources:
- https://hackaday.com/2019/12/24/advancing-the-state-of-cyberdeck-technology/
- https://hackaday.com/2023/09/07/2023-cyberdeck-challenge-the-best-decks-on-the-net/
- https://hackaday.com/2023/08/28/this-crt-luggable-makes-sense/
- https://hackaday.com/2023/08/26/2023-cyberdeck-challenge-koat0-portable-terminal/
- https://hackaday.com/2023/08/22/2023-cyberdeck-challenge-modular-cyberdeck-creation-kit/
- https://hackaday.com/2023/08/17/2023-cyberdeck-contest-cyberdeck-red-is-ready-for-action/
What materials and components were used? Where did they come from? How much did they cost? (BoM) >
- fdm
- pla for most things, tpu for handle, feet, washers
- sla
- keycap adapter
- stainless steel
- bottom panels
- acrylic
- top panels, some bottom panels
- fr1
- circuit boards
What did you design? What parts and systems were made? >
my FabDeck is a modular system that leverages ots instrumentation, like portable oscilloscopes and psus, but has a lot of digital fabrication built in. with the exception of the instruentation and tools, I built the following:
- laser-cut acrylic panels for top
- laser-cut keycaps, w/ fdm and sla adapter
- laser-cut stainless steel for bottom
- fdm dovetail rails, w/ m3 heatset inserts + screws and 3x2mm magnets
- fdm dovetail walls, feet, handle
- (spiral 1) waterjet baseplate
- hotglue (and some nitto tape) to secure some features in place when mechanical features didn’t work
each module has the following:
- workbench module - high-density component storage - larger wentai component storage - steel build surface
- HMI module - 2x4 keeb - ssd1306 oled - xiao rp2040
- tool module - secure tool storage
- instrumentation panel module - oscilloscope - psu - logic analyzer
What processes were used? >
- fdm printing
- sla printing
- co2 laser cutting
- fiber laser cutting
- waterjet
- soldering
What questions were answered? How was it evaluated? What worked? What didn’t? >
- can I make a system that goes neatly into my backpack? (weight, size, convenience, secure box, robust)
- the answer is generally yes, with some exceptions. I learned how much sharp corners
- does the system aid my project carrying?
- yes, project carrying works if my projects are small enough (they mostly are); it has made me think more about the size of my projects
- does the system aid my making? soldering?
- there’s a functional reason (not aesthetics alone) I chose acrylic for the top for the workbench; it enables me to take quick stock of my what I have in my inventory
- however, it prevents me from using the surface for rough things, like running an xacto knife (sharp) or soldering something (hot)
- spiral 1 didn’t have a steel plate, spiral 2 does. this has solved that problem
- however, spiral 1 had a baseplate for toolends; they worked in place of the steel plate. spiral 2 does not yet have toolend adapters.
- is this system easy to add to?
- partially true; the entire system uses a 15mm pitch for all holes and 22mm ht for modules, which makes it easy to create things from scratch that adaptA
- however, the design is very bottom up, and not all changes were propagated to all components in the assembly; a generator script would be ideal and definitely improve adding to the system
- since this is a “system” instead of a one-off thing, I found that making sure the system worked as well as the individual modules took additional spirals (the system overhead)
- I also learned that trying to use fab processes within their expected tolerances and intentionally making geometry looser, then compensating with other mechanisms (like magnets) was more fruitful than trying to get just the right tuning on printers; eg tolerance is part of the process and its easier to lean into it instead of fighting it
- I did begin finding limitations with the fdm rails
- after adding enough modules (4-5), I noticed considerable sag on the rails, and at some point did manage to delaminate some of them
- changing the fab process/material could eliminate some of these issues, as well as improve base tolerances
What are the implications? >
this proof-of-concept works well, and means I should invest in optimizing the models driving the design to be more parametric and less bug-free; eg move to cadquery for parts in the future. I plan to build on this system and weave it into my daily use more, and intend to augment it with actuation next semester in machine building class.
some future plans:
- built-in power and data hub
- mux control over power/data hub
- hinges to create foldability; faster pack-up
- connectorized rails; rails themselves become connectors
- fabrication modules (the fab in FabDeck)
- building in the z-direction
- tool-end adapters for better work holding
- better lighting
process >
spiral 2.0 thru 2.4 >
meta >
final project final week day 1
body >
- plan out time tonight
- ideate about v2.0
- draw
- cad from scratch
- start w rails, build around
- [/] frame
- laptop hinge
- drawer system and size offset clearance
- tool storage box
- control box
- additional drawer layers flata stock
- electronics packaging
- fab
- prints of frame and rail
- fabricate metal
- laser cut mourier
- fabricate cam rail
whiteboard >
mourier >
- PXL_20231218_063831597.cmp
- PXL_20231218_063847103.cmp
- PXL_20231218_065316957.cmp
- PXL_20231218_071804341.PORTRAIT.cmp
meta >
day3 final
body >
- mcad
- over past few days
- reimplemented rails system in a more parametric way
- ironed out a lot of bugs
- printed a few prototypes and arrived at a workable prototype w drawer
- need a stabilizer to really prove functionality of drawer
- over past few days
wb >
- PXL_20231214_194707166.cmp
- PXL_20231214_194718716.cmp
- PXL_20231215_041824755.cmp
- PXL_20231215_042059392.cmp
- PXL_20231215_042259612.cmp
- PXL_20231215_042750188.cmp
- PXL_20231215_043017733.cmp
- ecad
- opting to use kicad instead of altium this time around
- mostly for the xiao footprints
- began playing w kicad plugins in kicad 7.0 to expedite doing things and see how far features have come
- weird issue earlier where plugins were installed but wouldn’t load; downloaded newest version and that seemed to fix
- autorouter (freeroute) works pretty well actually, esp for single layer boards
- haven’t yet figured out how to get it to reliably import rules from source project (maybe I entered drc rules in the wrong place)
- ah, need to update net class rules instead of global constraints (makes sense)
- some weird things where if you close and don’t let it finish, kicad screams at you that you’ve corrupted board
- seems fine if you just close out and come back in
- used the footprint arranger someone made, works great for led array
- haven’t yet figured out how to get it to reliably import rules from source project (maybe I entered drc rules in the wrong place)
- will need to do the actual core of the project in a bit (xiao, display, buttons), but not yet
- considering adding a pi w the touch screen disp
- will likely offload all of the instruments from panel to an addon to simplify the laptop clamshell operation
- will avoid worrying about the thing being too large for the time being; though need to consider how I might reinforce all of it (rails won’t be strong enough as is)
- kicad (place footprints, freeroute) -> quentin’s gerber to png -> lunyee/fablight?
- opting to use kicad instead of altium this time around
sideleds >
- efab
- briefly experimented w autorouting 90 deg vs 45 deg traces
- 90 deg might match isolinear chip aesthetic more, but appears to always miss a single connection
- opting for 45 deg
- will req 0.01” (0.25mm) tapered endmill; for some reason 0.015” (0.38mm) will lead to shorted art in mods, no time to debug
- will do initial pass w larger (more offsets), single offset pass smaller
- display
- attempt1: eink
- attempt2: ssd1306 0.96” oled, configured for SPI
- attempt3: ssd1306 oled, configured for i2c
- easy af, had to scan for the i2c address (not the same as the one in the example code), but took about 2+ hours getting to this point
screenshots >
- Screenshot_2023-12-13_023813.cmp
- Screenshot_2023-12-13_023837.cmp
- Screenshot_2023-12-13_152022.cmp
- Screenshot_2023-12-13_172314.cmp
- Screenshot_2023-12-13_172430.cmp
- Screenshot_2023-12-13_195500.cmp
- Screenshot_2023-12-13_195504.cmp
- Screenshot_2023-12-14_023130.cmp
- Screenshot_2023-12-14_031215.cmp
- Screenshot_2023-12-14_152013.cmp
- Screenshot_2023-12-14_152023.cmp
- Screenshot_2023-12-14_152034.cmp
- Screenshot_2023-12-14_152050.cmp
- Screenshot_2023-12-14_152527.cmp
- Screenshot_2023-12-15_022807.cmp
- Screenshot_2023-12-15_022844.cmp
- Screenshot_2023-12-15_022847.cmp
- Screenshot_2023-12-15_022850.cmp
- Screenshot_2023-12-15_022855.cmp
- Screenshot_2023-12-15_023657.cmp
- Screenshot_2023-12-15_023701.cmp
- Screenshot_2023-12-15_023704.cmp
- Screenshot_2023-12-15_194330.cmp
- Screenshot_2023-12-17_015542.cmp
- Screenshot_2023-12-17_163656.cmp
- Screenshot_2023-12-17_163704.cmp
- Screenshot_2023-12-17_163709.cmp
- Screenshot_2023-12-18_182222.cmp
- Screenshot_2023-12-19_033829.cmp
meta >
fab final 4 and 5
body >
- efab
- prepped files for keeb
- identified that the assumed diode fp was wrong
- used the digikey ruler to assess correct fp (finally figured out what those are good for, could use smaller versions of thoses in my wb)
- found out keeb fp is backwards
- also a weird problem w size of holes being too large
meta >
final 5-7?
body >
- efab
- all boards (wb and keebpadd) fabbed, a few iterations getting stuff working
- wired up
- not yet programmed, though keeb is the only extension of it though neeed to figure out graphics for screen
- mcad
- sys int hell
- making a box fit was nnoying
- took a couple of iterations, enjoy the standoffs I made by the pcb for keeb is too large, so annoying fit issues
- oh yeah, display model off grabcad was wrong by 1mm in x and y, so had to fix that
- watched some cool VFD video on youtube, may put fluoresentc pink on top
- fitment
- screw in keyboard completely before applying keycaps
- keycaps
- cool idea, but literally the most annoying spiral ever
- fluorescent acrylic keycaps, w sla switch adapters hotglued (because I couldn’t think of a better way to do it in short time)
- plus hotglue is basically theromplastic, which is arbitrarily better than tehrmoset in my head (reversibel?)
- but rotation! I made a neat jig and had to do 3 iter total for adapter, eventually switching back to fdm (fdm is pretty nice even for small things if printer is tuned)
- on that note, also made M2 thick washers (been doing fdm thick washers for a bit now), and the M2 worked really well!
- gives me confidence in the multi-core printer Idea I havve
- rotation was imipossible to control for in my process; probably couldve refined or maybe used superglue, but wouldve made demolding diffiult
- maybe that was the other issue, should’ve used tpu for mold/jig
- anyways it also hurt my fingers because hot glue
- point of the story is making multi-step keycaps hard, registration big deal
- glad thats over with, on w the show
- programming
- highly unlikely ill integrate more electornics at this point, running out of time
- thought the muxing power contorl idae neil had was cool, but probalby out of scope for final
- need to keep display simple; wanted to do leds and might still do that
- display can show mode
- keys can switch
- highly unlikely ill integrate more electornics at this point, running out of time
- rail conn
- not sure if I can get to rail conn tonight
- tool addons
- not sure if i can get to taht, could print some threads as a rail addon, easy i guess (thick 1/4” fittings anyways)
- tomorrow I need to focus on presentaiton as much as possible; I’m the SECOND person going in the WHOLE line up, need to not mess this up
- poster depicting project (exploded model, use poster board salvage from trash)
- wnat a exploded view; if white on black, probably need vinyl (could even do yellow, yeeee)
- if balck on white (boring); then can use large format printer (which we have (?))
- poster depicting project (exploded model, use poster board salvage from trash)
- need to make video
- will likely be dramatic editting; no time to film a bunch (surprise)
- allso, we tore apart the camrails because chance needed steppers
- will likely be dramatic editting; no time to film a bunch (surprise)
- efab
- discovered a short w my wb board
- milled another one just in case
- started a ct scan to figure out what was wrong
- ct scan showed a short directly between 5v and gnd
- the newly milled one didnt take too long and soldered, but then ended up w a short on different pins due to excessive solder paste
- learned a neat trick; deposit solder through the castellated pin; can see if filled if solder overflows underneath
- unfortuantey also creates a ton of shorts
- learned that the xiao fp I was using actually has a flipped 5v and gnd (wtf); happened to figure this out after installing fab libs for kicad
- proceeding w redesign to use th soldering; have to do a dumb thing where I keep the xiao arbitrarily far from board to solder same side th
- forogt that th needs to be arbitrarily increased such that square header pins can fit
- apparently bare minimum width of 1/32 is not enough
- 0.64mm wall to wall on conn
- but ~0.77mm diagonal
- and 1/32 = 0.79mm
- makes sense, need to increase
- paint.net skillz (gaussian blur, fill)
- also convinced mods that the endmill was smlaler, so it makes bigger circle
- ok, fits great now
- discovered a short w my wb board
rails >
- PXL_20231213_171444083.cmp
- PXL_20231214_045512504.cmp
- PXL_20231214_191249211.cmp
- PXL_20231214_191332252.cmp
- PXL_20231214_194159810.cmp
- PXL_20231214_194542034.cmp
- PXL_20231214_194548744.cmp
- PXL_20231214_231231867.cmp
- PXL_20231217_063451932.cmp
- PXL_20231218_000844327.cmp
fiber >
- PXL_20231215_220409854.cmp
- PXL_20231215_221823077.cmp
- PXL_20231215_223322907.cmp
- PXL_20231215_223532567.cmp
- PXL_20231218_000852217.cmp
- PXL_20231218_232429586.cmp
- PXL_20231218_235719519.cmp
- PXL_20231218_235724947.cmp
- PXL_20231218_235728565.cmp
- PXL_20231218_235733471.cmp
efab >
error >
keeb >
- PXL_20231215_071509096.cmp
- PXL_20231216_053634510.cmp
- PXL_20231216_054316441.cmp
- PXL_20231216_055717286.cmp
- PXL_20231216_063635584.cmp
- PXL_20231216_063637255.cmp
- PXL_20231217_061739434.cmp
- PXL_20231217_061744497.cmp
- PXL_20231217_203931806.cmp
- PXL_20231217_211822733.cmp
- PXL_20231217_213205605.cmp
- PXL_20231217_214927412.cmp
- PXL_20231217_215254714.cmp
- PXL_20231217_215320181.cmp
- PXL_20231217_215331395.cmp
- PXL_20231217_215347154.cmp
- PXL_20231217_231234640.cmp
- PXL_20231217_231251439.cmp
- PXL_20231217_231314846.cmp
- PXL_20231217_231913360.cmp
- PXL_20231217_231938951.cmp
- PXL_20231217_231940699.cmp
- PXL_20231217_231948374.cmp
- PXL_20231218_010454940.cmp
- PXL_20231218_010459707.cmp
- PXL_20231218_012657006.cmp
- PXL_20231218_012701405.cmp
- PXL_20231218_012746858.cmp
- PXL_20231218_012821589.cmp
- PXL_20231218_013050223.cmp
- PXL_20231218_014834295.cmp
- PXL_20231218_025951553.cmp
- PXL_20231218_034850305.cmp
emergency_ta_hologram >
- PXL_20231217_064104450.cmp
- PXL_20231217_064113863.cmp
- PXL_20231217_064843130.cmp
- PXL_20231217_065220804.cmp
- PXL_20231217_065343710.cmp
- PXL_20231217_065350521.cmp
display >
hmi >
- PXL_20231217_201424760.cmp
- PXL_20231217_234609060.cmp
- PXL_20231217_234628026.cmp
- PXL_20231217_235203269.cmp
- PXL_20231217_235218727.cmp
- PXL_20231217_235400328.cmp
- PXL_20231217_235440713.cmp
- PXL_20231217_235520475.cmp
- PXL_20231217_235800177.cmp
- PXL_20231218_000050047.cmp
- PXL_20231218_000051085.cmp
- PXL_20231218_000052572.cmp
- PXL_20231218_000822073.cmp
- PXL_20231218_015123462.cmp
- PXL_20231218_081934545.cmp
system integration >
- PXL_20231215_070710705.cmp
- PXL_20231215_085839649.cmp
- PXL_20231215_203441097.cmp
- PXL_20231216_220216583.cmp
- PXL_20231216_220319236.cmp
- PXL_20231216_224926936.cmp
- PXL_20231216_235923923.cmp
- PXL_20231217_042759662.cmp
- PXL_20231217_061718899.cmp
- PXL_20231217_062120177.cmp
- PXL_20231218_083054516.cmp
- PXL_20231218_084406845.cmp
- PXL_20231218_092741079.cmp
- PXL_20231219_001335366.cmp
final >
- PXL_20231219_075041271.cmp
- PXL_20231219_075046776.cmp
- PXL_20231219_075056610.cmp
- PXL_20231219_075150091.cmp
- PXL_20231219_075256493.cmp
spiral 1 >
cad >
supplychain >
storage >
- PXL_20231028_202903803.cmp
- PXL_20231028_202939773.cmp
- PXL_20231028_203131827.cmp
- PXL_20231028_203327979.cmp
- PXL_20231030_033138817.cmp
- PXL_20231030_035748774.cmp
- PXL_20231030_035750693.cmp
- PXL_20231030_035755553.cmp
- PXL_20231030_035807474.cmp
integration >
rails >
lighting >
inspo >
- DPS5005 power supply case, 6” Rackmount
- Customisable Module Socket for ESP8266 HC-05 etc
- https://hackaday.io/project/187584-modular-ots-cyberdeck-creation-kit
- https://www.digikey.com/en/products/detail/digilent-inc/410-415/19235661
- https://www.crowdsupply.com/sutajio-kosagi/fomu#products
- https://hackaday.io/project/193354-smd-organizer-cartridge-magnetic-wall-mounted
- https://hackaday.com/2023/08/25/hackaday-prize-2023-jumperless-the-jumperless-jumperboard/