hominoids / SBC_Model_Framework

A framework for the generation of SBC and micro-controller models
GNU General Public License v3.0
97 stars 20 forks source link

Add vertical HDMI port? #4

Closed gnattu closed 1 year ago

gnattu commented 1 year ago

I'm trying to add Radxa Rock5 to this framework, but I found that the vertical HDMI this board is using is missing and cannot produce a reasonable IO. How to make a vertical HDMI port?

hominoids commented 1 year ago

I will create one today and post it ASAP.

hominoids commented 1 year ago

I created component hdmi_a_vertical in the main branch but I don’t know the height of the opening above the pcb. It is set at 2.4 mm based on a couple of mfg components I checked at Digikey. Let me know what it actually is on the rockpi5b. I still need to create a matching mask for the opening in sbc case builder which I’ll do next while you finish. I did throw together a quick entry (rockpi5b) for my testing in sbc.cfg using rockpi5b pcb version 1.42. If it helps at all please use it otherwise replace it at your discretion. FYI, the PCB hole order matters for interference checking. The order is hole #1 is lower left, #2 upper left, #3 lower right, #4 upper right, the order of the rest don’t matter. Let me know if you run into any other issues or when your ready to try it in sbc case builder. rockpi5b_hdmi_a_vertical

hominoids commented 1 year ago

I added the mask and other changes to accommodate the rockpi5b in SBC Case Builder, it's in the main branch. For the SBC Model Framework entries, other than adding and/or checking components in sbc_models.cfg for the rockpi5b, the pcb thickness and the maximum component height for the top and bottom need to be set, I just put my best guess in for now. I also went ahead and created all the base cases in SBC Case Builder.

Even though the M2 and emmc components are not critical to creating cases, having those components on the SBC model allows for openings to be created for them. Please try to include them and any other secondary components you feel are important, if possible. When you think you have all the rockpi5b components correct to do a verification print, the rockpi5b_shell case would be the best to use to check alignment. If you see something isn't aligned, adjust the component location in sbc_models.cfg. Once everything is correct issue a PR for SBC_Model Framework or provide me a copy of the changes to update the main branch please. If you have any question don't hesitate to ask, Thanks rockpi5b_shell

gnattu commented 1 year ago

I don't have very accurate measurement tools but your "guess" about the HDMI height is very close to my measurement(~2mm). I plan to 3d print a prototype this week and see if they accurately aligns. I don't own a printer myself so it may take some time before the prototype is delivered to me.

hominoids commented 1 year ago

Thanks for the update. All of the SBC started from mechanical drawings, including the ones I own. So I know from experience that this method can be accurate and usually no more then one or two small tweaks are needed to bring things to were they should be. I'm talking about sub-millimeter adjustments, so regardless, the prototype might be usable once adjusted with a file or emery board, if even needed. I'll standby to hear how things went.

FYI, another approach might be to ask if someone at the Radax Forum with a 3D printer is willing to print a test case. I'm sure there are others interested in a case for the ROCKPI5B, especially if multiple cases are then available.

gnattu commented 1 year ago

I received my prototype today and found some issues, and some of them I'm confused if it should be fixed in SBC_Model_Framework or the SBC_Case_Builder.

A summary:

The HDMI port opening been too high obviously need to be fixed by changing the vertical HDMI port height and make it shorter. But the 3.5mm opening been too small is confusing me, should this be fixed in the SBC_Case_Builder to make a larger opening, or replace the component of the 3.5mm that requires a larger opening?

About the mounting stand been too thick, this looks like a shell design specific issue, if I add a fan header to the PCB, will SBC_Case_Builder calculate the space need for it and use a thinner mounting stand?

The TF card opening been too low, is it because the PCB been set too thick or the TF card slot have different specs? I'm totally lost here.

The switch openings are measurement issues and I can correct them.

hominoids commented 1 year ago

Ok, Let's see what needs to be done to fix these issues: I will increase the diameter of the mask opening for the 3.5mm jack by 1mm in sbc_case_builder_library.scad, mask(), I believe it is tight.

I will lower the HDMI ports and masks by 2mm, also in sbc_case_builder_library.scad, video() and mask().

The standoff diameter is adjustable from SBC Case Builder, I will change it by 1-2mm for all of the rockpi5b cases in sbc_case_builder.json. I don't know were the fan header is so which standoff needs to change?...Lower left?

The TF card opening being lower could be a component difference. The easiest way to handle this, I will change the opening to one similar to the c4_shell case(type = sdcard_i), which is the only way the cards are usually accessible anyway. I see there is a bug though that I need to fix first.

How much and in what direction are the switch openings off. When you say they are too tall do you mean the opening is to large with extra space at the top? If you let me know what you changed with them I will push it to the main branch.

One of the issues with this board is that all the pictures on the wiki are from pre-production revisions and are wrong in significant ways. They don't have a production dxf file available so I don't know what is were for sure on the production SBC. I guessed at some things and used a v1.41 dxf and 1.42 step file to try and figure it out. What would help is if you would take a straight down picture of both sides of the board and attach them here. I'll get started on the rest.

gnattu commented 1 year ago

Here's the pictures of the PCB v1.42:

IMG_5046 IMG_5047

As you can see in the picture, the top left hole is very close to the fan header.

The switch hole is about 1mm off to the left, probably need to go 1mm down as well. IMG_5048

hominoids commented 1 year ago

Thanks for the pictures, they are a great help, I think we are getting much closer now with all the changes committed on the main branch SBC Case Builder.

The jack opening size was increased by 1mm and the HDMI was lowered by 2mm. I did not change the default size of the standoff because I believe the wall might be too thin and prone to break. They are currently at 6.75mm diameter. Clearance issues around standoffs are common, so much so that I use the smallest possible hex standoffs and rotate them 30 degrees for extra clearance by default. Instead, I added an accessory that trims a small portion for clearance from the top left standoff around the fan header. It can be selected for any of the case designs in SBC Case Builder under the Features and Accessories tab->accessory name->rockpi5b_adjustments. You can still change the size from within SBC Case Builder under the standoff tab if that makes sense.

rockpi5b_standoff_clearance

After looking at the photos, the problem with the SDcard is that it is a different component then others I have. So I created a new component model that should be more representative, please check the alignment. As shown above, I also created a accessory entry to remove part of the case for easier SDcard access. It can be commented out if not wanted.

button openings shifted 1mm - I did not lower them because they are used for another SBC so I need to check things and possibly create a new button.

I thought of a new way for you to check alignment without a 3d print. By using projections and sectioning the case, I created a DXF file of the openings which can be printed on paper at scale 1:1 and used as a template or in silhouette with a light source and your SBC behind the printed paper. You can use LibreCAD to view and print it to scale. stl_projection.dxf.zip

If you adjust things and need to create an updated section use this code in a new OpenSCAD session after creating a Rockpi5b Panel case in SBC Case Builder and exporting the "Platter" view as a STL.

projection(cut = true) import(file = "./rockpi5b.stl");

I also placed a few other components based on the pictures and other info. If you would, check the eMMC opening on the bottom and the position of the m2 connector. I'll wait to hear from you on how things look with these changes.

gnattu commented 1 year ago

I printed that dxf on a paper, and I did not notice big off on a paper including the emmc connector, but I cannot verify if the tf card slot is good enough on a paper, but the position is about right.

hominoids commented 1 year ago

If there are no big corrections needed I do little ones too. :) I try to shoot for plus or minus .125mm tolerance on all openings. Regarding the TF card, it might make more sense to use the accessory cutout anyway. Like I said earlier, most of the time you cannot get the TF cards out of the slot, regardless of the SBC. The large accessory cutout allows easier access and generally allows one to remove the card without disassembling the case. I noticed at least one manufacturer now creates a larger cutout for the TF card's in their cases as well. Let me know what else you need done.

hominoids commented 1 year ago

FYI, I found one other standoff that I believe needs to be trimmed. rockpi5b_standoff_clearance2 I also added a large one screw access panel to the bottom.
rockpi5b_bottom_access_port These accessories are under rockpi5b in sbc_case_builder_accessories.cfg and are active for all rockpi5b cases now. You can comment out anything you don't want or copy it and create a new accessory entry. If you do, run get_customizer_values.scad and follow the directions at the top to update the pick-boxes in SBC Case Builder. Let me know if you need anything else or how things go when you do a 3D print.

hominoids commented 1 year ago

I have received a ROCK5B v1.42 and have updated SBC Model Framework and SBC Case Builder. A few adjustments were made to trim around the left rear standoff due to component interference and the RJ45 and USB opening were made slightly larger due to the large component overhang. The SDcard slot aligns perfectly so a large open is not needed and the button holes were moved 1mm.
rock5b_shell I also created a passive rock5bq model and case for those who want a passive solution. The rock5bq_shell case changes the fasteners to top down mating with inserts in the case bottom. All case adjustments are handled in sbc_case_builder_accessories.cfg under the groups rock5b and rock5bq. In the future I'll setup other cases such as the panel, snap and fitted but it only requires associating the accessory entry to the new cases in order to have the necessary trim adjustments, so it's something anyone can do on their own too. Thanks for all your work and effort.