SBC Case Builder Support for VisionFive2

Having received my VisionFive2 recently and being the developer of SBC Model Framework and SBC Case Builder I have added support for the VisionFive2 SBC in both applications for those interested in standard and custom cases. SBC Model Framework currently supports 57 different SBC from 10 manufacturers and SBC Case Builder can autonomously make cases for all of them and has the following features:

• Autonomous Multi-SBC, Multi-Case Parametric Generation 
• Autonomous Case Standoffs with Variable Height 
• Extended Standoff SBC collision detection 
• Accessory Customization Framework 
• Accessory Multi-Associative Parametric Positioning 
  - Absolute Location 
  - Case Associations 
  - SBC Associations 
  - SBC_X,Y - Case_Z Association 
• SBC Model Framework Validation Tool

Here is one of the 9 base designs available for the VisionFive2.


Since there is an easy to use GUI using the OpenSCAD Customizer, no prior knowledge of OpenSCAD or any design software is needed to create custom cases.


Hello and welcome to this community :wave:
Thanks a lot for this work. :hugs:
I’ve been trying to implement a library for automatic box/1U/harness generator for SBCs, and your work is lightyears ahead of what I’ve done.

1 Like

Thank you, @hominoid. While i have a different construction (with two acrylic plates) in mind, your measurements of the geometry will help me.

1 Like

As soon as I get some attachment privileges I’ll post a DXF of the PCB Outline with holes as well as IO openings for those doing their own thing. FYI, the panel design in SBC Case Builder may be suitable for CNC cutters in acrylic and other materials.


I wonder about that recessed HDMI port; if the material is the typical 1/8" that might not allow some plugs to insert fully.

That is definitely worth paying attention to. The gap between the PCB and wall, as well as the wall thickness, is user defined so it can be adjusted some. Right now the gap is set to 1mm and the wall thickness to 2mm, and as it currently stands, the model is under representing the component overhang.

Here is the last test print I did for the shell case which has the same metrics and as you can see all the IO is thru the wall while the model is showing a small recess. So with some minor adjustments to the case parameters I think it will work. One can always enlarge the HDMI opening too or use 1/16" material. 1/8" seem like overkill for this design and size IMO

Your 3D print above does not appear to have recessed ports, whereas it looked like the DXF model did. Obviously without recessing the ports there is no problem.

I already printed a case, but I might cut one in wood for fun. 1/16" isn’t a standard material thickness for my Glowforge and I have literally piles of assort 1/8" thick material.

Correct, the SBC Model needs to be adjusted in SBC Model Framework and I hadn’t gotten to it yet. FYI, The panel design can handle any reasonable thickness but whatever thickness you do use make sure to set the ‘wallthick’ design parameter for the same thickness when you generate the pieces. The panel case design uses the thickness to dynamically change the locking mechanism design of the case. If this isn’t done then the pieces aren’t going to fit or stay together correctly. Probably need to add 2-3mm to the case top height to move the tabs away from any openings too.

After straightening out my power and running a couple of days it was clear active cooling isn’t needed, as others have indicated, so I switch to a XU4Q heatsink.

For anyone looking to use a passive case for the VF2, a new VF2 model was added to SBC Model Framework that uses the XU4Q heatsink. The VF2 rear I/O overhang has been corrected and I also addressed some side screw interference in the Tray case, so it should be ready to use now


The heatsink opening has been implemented as an accessory so it can be easily modified for use with different passive heatsinks that might need adjustment for a different size opening or location. Accessories are in the text file sbc_case_builder_accessories.cfg and contains accessories beyond what is autonomously generated based on the SBC characteristics. If we look at the entry for the above case, this is what it looks like.

"sub","rectangle",27,20,25,"top",[0,0,0],["sbc-case_z",true,true,true],43,43,6,0,0,"horizontal",[.25,.25,.25,.25],         // sub rectangle
"add1","round",11.25,-.5,9,"bottom",[0,0,0],["case",true,true,true],2,0,17,0,0,"",0,                                       // wall support
"add1","round",29.75,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0,                                       // wall support
"add1","round",50,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0,                                          // wall support
"add1","round",60.875,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0,                                      // wall support
"add1","round",81.125,-.5,9,"bottom",[0,0,0],["case",true,true,true],3,0,17,0,0,"",0,                                      // wall support
"add1","access_port",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0,                         // access port
"model","access_cover",10,0,-0.01,"bottom",[0,0,0],["sbc",true,true,false],80,75,2,0,0,"portrait",0,                       // model access port cover
"platter","access_cover",-110,30,0,"bottom",[0,0,0],["case",false,false,false],80,75,2,0,0,"portrait",0],                  // platter access port cover

The first entry is for the heatsink opening and breaks down to:

                                    r        a
                                    o        m
                                    t        e                         s  s  s d d d d
  c               l  l  l           a        t                         i  i  i a a a a
  l      t        o  o  o     f     t        r                         z  z  z t t t t
  a      y        c  c  c     a     i        i                         e  e  e a a a a
  s      p                    c     o        c
  s,     e,       x, y, z,    e,    n,       s,                        x, y, z,1,2,3,4


So if your heatsink is different simply change the size to what is needed and change the x and y location to recenter the opening. The accessory framework is also the how the bottom access port is added for each of the VF2 cases.

14 pre-defined active and passive cooled cases for the VF2 are available on the main branch of SBC Case Builder