(See Part 1 here : https://hobbytronics.home.blog/2025/04/07/pi400-in-a-case/ )
Below are some views of the models for the case. The upper two part frame, you can see the LCD Controller PCB Mounting plate as well. The LCD has the front bezel, so it sits above that plate with just a bit of clearance. To the left are the “feet” for the upper frame. The top feet are 2mm shorter than the bottom feet, the middle feet at the sides are 1mm shorter than the bottom feet. The right bottom foot is modified as the USB Hub is in the way of it a bit. I made the feet like that due to the clearances being so close with the antenna and lower panel when closed. There are some standoffs and washers below as well. There are the standoffs that the go between the LCD Bezel and top frame. There were washers I put on the LCD Bezel screws to spread the pressure a bit. There is also a ring that is behind the 3.5mm audio jack that stands it off the top frame a bit for more clearance behind the frame. The little plate to hold in the latching switch for the Headphone port discussed below is not shown. There are numerous feet and in the model when I have multiple of the same type I only have a single one in Tinkercad. I’ll have to export each of the files, and put them together with some instructions and properly named. Various parts have some minor changes to the ones printed so far to fix some minor things that I have had to work around or do modifications for.



You may notice the 4 round recesses and rectangle recesses below the Pi400. The 4 round recesses are for magnets. The rectangles are for thin metal plates. I didn’t want to rely on a press fit for the Pi400, so I had a thin metal plate with double sided adhesive on it.
The screen resolution has been adjusted, and the image now fits properly, although you can’t tell by the image on the screen below. The LCD is nice and clear. The audio from the speakers is very good, I mean I am comparing to laptop speakers. There is some hum in the speakers, I do wish I had found some shielded cable for the speakers, it isn’t bad though. I don’t hear it over the audio, it is only noticeable when there is no audio playing, you can tell something is coming from the speakers. If it bothers me, I can toggle on the audio to the headphone port, and the speakers go silent. I am happy overall how everything has turned out so far. The HDMI cable opening could certainly be smaller, but if it gets bumped it isn’t likely to bind, and has good freedom of movement. I printed a RJ45 cover in TPU to keep dirt and other things out of the network jack. I might modify the 3d model and print it so it better covers the keystone evenly. It is hard to take pictures of the system, the filament is a color change PETG filament and the surface is textured and rather shiny. The LEDs are plenty bright, but not nearly as bright as the camera indicates. The little .96″ LCD is very clear in person. The Voltmeters are easy to read as well and not washed out like the pictures. I did swap them, the upper one was originally the 5V meter, but as I am using a Green LED for the “Main power” Switch indicator, I wanted the Green meter for the 12V power reading. The 5V fluctuates a little, and the changes can be distracting, with it being the lower meter, it is less in view. I also swapped that lower meter with a Red one, the blue one was way to bright. The 5V Power LED indicator is also Red so that now matches too. The 12V Power switch indicator LED is actually a yellow or amber, but I didn’t have matching color volt meter. The LoRa Radio power indicator LED is a bit of an orange and not as piercing as the photo indicates.



Headphone Jack – The RCA and 3.5mm Audio jack just was not going to work like I wanted it to. The RCA is oddly tied to the “BNC” input mode instead of “AV1”. The 3.5mm Audio Input jack is connected only to the VGA Input. The Audio input won’t work without a video input signal.. The 3.5mm Headphone Jack, is one with the built in detect/disconnect switch. I thought a little about changing the wiring on the 3.5mm jack that I already installed to having 2 RCA connectors and keep the “BNC” AV Input option. Thinking about it though, adding a working Headphone Jack will likely be more useful. To add a working Headphone jack, I had to add a latching button to switch between the internal speakers and 3.5mm headphone jack. Below you can see the two small wires soldered to the “switch” pins. They go to a small latching push button switch 8.5mm/8.5mm. The hole is the same hole as the RCA jack was in, I made a frame to hold the latching button. The frame has 2 holes in it for heat set threaded inserts for the locking bar/plate. I had the tolerances tight, so I didn’t have to add the plate as the button is so tight. I just glued the frame into place. I also created a Black TPU button cap. The buttons actually came with some button caps, which are nearly the same size as the TPU one, but I wanted it in black to blend in. The pack of latching buttons I had ordered is no longer available and the ones I found now and linked below do not include the button caps. I then added the frame for the button to the 3d model for the upper panel. That does make it so the RCA jack would no longer work there, but prevents having to glue in a part (which takes careful alignment, and the glue may fail at some point). I was doing the AV Video input so that I would use the monitor for some other devices. It is annoying it couldn’t be used just for audio only, so that also made me more prefer to switch over to just having a headphone jack. I am thinking about adding a 3.5mm TRRS Jack, which is used on some modern knockoff game devices with Composite output. That could be wired into the internal RCA ports. It would take either a custom breakout cable or such though for anything I want to use with it. That would probably be 3 RCA ports to a 3.5mm TRRS. Doing a single RCA and a 3.5mm Stereo Audio jack would also often require a 3.5mm to 2 RCA jacks for the audio.. It is all compromises, 3 RCA ports would be the most basic and least likely setup to require having adapter cables on hand.




Adding a Realtime Clock Module was fairly easy. I removed the preinstalled header pins to slim down the board a bit, then I soldered on one of the 4pin “Grove” connectors that I picked up for the .96″ LCD. Then I backed it with some Kapton tape, and more of the strong Velcro to hold it into the bottom of the case. The Kapton tape again is to protect the RTC Module if I have to remove the Velcro, as the adhesive on it is so strong I am concerned it may damage the RTC, but the Kapton tape will not damage the RTC if I remove it. Beyond that enabling the Pi400 to use the module only required adding “dtoverlay=i2c-rtc,ds3231” to the config.txt on the pi.



Making and installing the Battery Module Mount. I made the battery holder to use 2 of the unused threaded inserts below the keyboard frame. It holds the battery a bit loosely, which I didn’t want it too tight, I may put some padding of some type to keep it from rattling around. There are 2 threaded inserts in the main body, then the lighter locking bar there screws in to keep the battery from falling out. Screw placement isn’t great, but I can easily work a 2mm Allen wrench in to install the required screws. The bar didn’t fit easily, so I have adjusted the tolerances on it to make it easier to install. It looks a like it might not be super strong, the battery is light for the size of it, and the top rail is boxed in at the front with the keyboard support rail. The battery holder is a little bit short. I didn’t want it putting pressure on lower panel, but with it in, I feel the Pi400 doesn’t fit as well, as it can’t flex as much? You can see the placeholder model of the battery pack in some of the pictures. The slightly revised battery holder and locking rail shown in the screenshots are stronger than the one seen in the photos below. Even so, the one I printed seems plenty strong, I just improved the holding rail and the back of the holding box is now slightly thicker. The rail is not actually in the photo, as I didn’t have the threaded inserts or battery in it yet.







This now feels like a much more complete project with the battery mounting finished and the battery installed. There are always more things to do, and things that can be improved. I would like to have made provisions to mount the RTC module, the Fuse Holder and INA219 discussed below as well. I would like the 5V converter to be attached to the panels, as it isn’t as easy to take it apart now. Some of the wires could be worked out to be a better length as I left everything a bit extra long. There is no cable management inside or ways to tie things in place. It is a bit difficult, in that there are a number of modules and such that were not initially going to be part of this project. The Pi400 did not fit quite right, I have revised the model and printed the revised model, it now fits much better. I also added a screw to hold the one “loose” leg to the connecting wall in the lower panel.
Adding a Fuse and Current/Voltage Sensor. Adding a battery level indicator.
The Battery is listed as rated for 3A, and the charger around that, and the INA219 current and voltage sensor being also rated just a bit over 3A. I figured I should add a fuse to the project. I have some of the bulkhead type holders, but space is a bit of a premium. They are fairly tall, and I could only place such a thing in the upper right corner of the lower panel, and then it would just barely fit. I looked around for some inline fuse holders, and came up with some for automotive blade type fuses, which are often 12V usage as well so that should be fine. They also can be purchased in a 3A rating. I found a good model on Thingiverse.




I also installed the INA219 module inline. It is wired up with a 4pin Grove connector to connect into the GPIO breakout board. I had found a widget meant to work with it. It hasn’t been updated in 2 years, and I can not get it to work at this time. Using the same interface they used I was able to verify that INA219 module is working and getting readings as expected. It seems I need to come up with a solution of my own. I can come up with something to display on the .96″ LCD. It won’t be as elegant as the widget.
I ended up using code from mklements’s OLED_Stats to run the .96″ status LCD. It worked great for the normal stats, there was a variant for a UPS, but that was a specific unit, and not based on the INA219 module. I have virtually never worked with Python and have limited experience with Linux. I spent a good part of the afternoon and a bit yesterday trying to sort out how that code worked. I do like some things that were done on it. I had to work out how to interface the INA219 with that code, eventually I settled on using the Adafruit INA219 sample code. Without being familiar, I modified the INA219 example code to output the information I needed in the format I required. It seems someone familiar with it, could do this in nearly no time at all. I worked it out to give me a Battery Icon based on the battery level, a relative % of charge, and the current draw. There is nothing fancy, and I am sure the relative charge is not very accurate. I verified the battery shuts down just below 9V. I the Monitor will run at 9V, the 5V regulator works at that level too. I will see how it goes and probably adjust the values. It runs for several hours on the battery, based on the battery capacity, and the current usage reading, it could be up to 5 hours with a SD Card, but it is a bit less with a USB 3 connected SSD Drive. The battery charges quite slowly. I rewired how the Charge jack is connected, and now the INA219 can read when it is charging the battery, which means I could rework the scripts a bit and change the battery icon to a charge icon.



I will see about cleaning up and posting the code up on Github.
Then just two spade crimp connectors and some wire to put it inline. I recommend testing your connectors are griping the fuse legs well, and that the wires are crimped solidly to the connectors. “Loose” wires or poor connections create resistance and generate heat, and can be a real risk. My crimps were very solid to the wires, but as the plastic bit is already removed, I did then solder the wires to the crimp connectors for added security. I had several types of these spade crimps, and some gripped to the fuse legs better than others. This model uses a single screw to hold it together. It is not secured in the case, with the small wire shown in the right photo, and the other wire attached to the ground lead, it doesn’t move around a lot. It is light even with the fuse in, the fuse is securely held in it. It would certainly be possible to make the screw hole a through hole and secure it into some form of mounting location somewhere if you wanted to.
It would be nice to rework the design to properly secure the INA219, the Fuse, the RTC module, the 5V Step down module and a SSD Drive. I believe to do that I would look at redesigning the “Legs”. The Legs have been designed to be minimal, they stand the panel off of the case bottom, but in the main cavity below the Pi400 they have a bit of height to them. They could be widened to mount smaller modules to the “wall/leg” and in some areas even have a mounting plate that extends from them with threaded inserts for larger items like the 5V Regulator and SSD Drive. That would make a plate there in the bottom to screw the various modules into. The plan is so that the whole panel could still be lifted out of the case as a single unit without having to detach any wires. With it fitting well with the legs that I have on it currently, and that it is resisting falling out, adding that weight may make it not be so secure so I might then glue certain legs placed around could into the case, then it would just require removing the “correct” screws to get it to release the panel and all the modules as a unit.
I am going to put the Meshtastic setup in it’s own post. It doesn’t seem there is a guide that covers the Adafruit radio, at least any I can find. I expect it will be easier for someone to stumble across if I make it a dedicated post, and I will cover as much of the wiring and installation as I can. I’m not very familiar with Meshtastic at this point, so I will cover what I can on the setup, but I am sure I won’t cover everything possible. It may be a bit until I post the Meshtastic setup post, as it is not working well, and I am not sure if I have something wrong, or have a bad antenna or radio. I am currently doing a fresh install on a SSD and will see if the new install leads to any changes, as well as setting up some additional Meshtastic radios locally at relatively short ranges to see if they are received properly. I only have one other radio right now setup, and being 20′ away from the Pi400 is not a good test. I am in the middle of nowhere for Meshtastic, and down in a low spot. I can’t get line of sight and out of the area right now.
With the additional items I covered here after the initial post, the project has all the expected features in place. The main thing is the Pi400 keeps wanting to pop out of the panel because it is too tight. I did make provisions for attaching two small metal plates to the Pi400 and 4 magnets in the 3d print to hold it, but it just won’t go into the opening properly, I don’t think the magnets will be able to help. I may go to the trouble to reprint the main panel in the hope that it will fit better after the changes I made. I have enough filament, but it is color change filament, and may not be at the right point in the spool to match the other panels well. It was not a good idea to use a color change filament for the project. Provided the Pi400 fits the revised panel properly, the 3d models files are complete, to the point that I plan to complete them. I have no other known issues remaining with the models. Granted again, mounting the 5V regulator, the little I2C modules securely would be nice, some wire management. The only feature I did not put in that I initially planed is the SSD drive (as of starting this second post). I am doubtful that anyone else would print and build this with compatible parts, but maybe if someone get the same case, they could use the models as a basis to make modifications to.
I would like to work out some GPIO accessibility. The question there is always, well what do you want to be able to access, and where is it going to be placed. “Maybe” it would be possible to do a 40Pin into the “wall”, keep it protected when not being used by using a cover, such as shipped with the Pi400 (well shipped with 2 of the 3 I purchased). I would be concerned about the very limited visibility to ensure that any wires are attached to the correct pins. Making choice of another connector which won’t have the full compliment of pins, requires keeping that pinout handy, and finding a place for that connector to be installed. Then whatever that connector is, to have a way to attach to it. Yes I have seen using of the round Military spec connectors, which are huge for their pin count. More normal Din connectors are still low count, and get large and expensive. They may be good if various modules are design to work with the system, but for prototyping and development I feel they aren’t very flexible.
Additional Primary Parts used/added in this post.
DS3231 I2C Realtime Clock module https://www.amazon.com/dp/B09LLY8KRC
INA219 I2C Current and Voltage Sensor module https://www.amazon.com/dp/B091DRHL79
3.5mm Audio Jack https://www.amazon.com/dp/B0D2XKGM5P/
Latching Button 8.5×8.5mm https://www.amazon.com/dp/B01MU8ST7D/?th=1
















