First entry.
The goal of this project is to create a small (ish) tablet-style computer for the remote control of cinema camera systems on set. All modern cinema cameras include a web interface of some sort, the main reason we don't rely on these on set is because WiFi systems are not reliable enough. There is just too much interference in the 2.4ghz (and even 5ghz) spectrum on set to get a reliable connection more than a few feet away from the camera. Many attempts have been made to rectify this - stronger antennas, external routers, etc., but none of them have worked any better for me.
But then I discovered the BitBox, which operates in the 900mhz spectrum instead. While I couldn't afford to pick up one of those lovely systems, it sent me down a rabbit hole of research about 900mhz networking, ultimately landing on the WiFi HaLow protocol. This is a standardized protocol for bridging internet connections over a 900mhz bridge, making them pretty much impervious to interference and increasing range by a ton. The one drawback is lower bandwidth, but camera control is practically nothing, data-wise. It should be perfect.
I found another camera person making DIY camera control boxes, and from there found the Loocam Bridge kit. This is a $60 plug and play kit for bridging Ethernet connections over 900mhz. It works completely seamlessly, without any setup needed. Kind of mind-blowing.
My first test was with a SmallHD monitor with a camera control license, and it worked so much better than over wifi that I almost just stopped there - but I really wanted a dedicated device for camera control, rather than running it through my monitor, so I set to work building this little guy. I got it up and running in time for my most recent job, albeit just barely. Work absolutely continued while on set, but it was functioning! The DP called to flip the camera sensor for low-mode, and I was able to do it from my box without needing to reattach the viewfinder.
Some photos of the current state of things:
I was reluctant to permanently modify the 900mhz board (a Netbridge 2.1 board from Loocam) until I was sure this would work, so at the moment I've just soldered the power and ground lines onto the sides of the barrel jack. It should be able to pop back into its original housing without issue, though now that it *is* working here, I doubt I will ever do that. Perhaps I will remove the barrel jack entirely now for space savings.
Challenges that I had to overcome to get to this point:
- Designing the case. I didn't want to use the adhesive backing on the LCD, in case I needed to redesign the case later on down the road. I also wanted to essentially overmold the edges of the LCD to protect it from bumps. I landed on a 3-layer design, which is probably over complicated, but oh well. The LCD is screwed into the middle "frame" part, then covered with the front panel. The pi and 900mhz board go into the rear case, then the ribbon connects the two halves. I added some fins and slots on all four sides to help align the parts, and there's an M3x40 screw in each corner to bind the whole thing shut...but at the moment it's just gaff taped closed so I can easily access the insides for further tinkering.
- Getting the touchscreen working. I selected a Waveshare LCD module (5in DSI LCD B), but first attempted this with a BTT Pi TFT which I just could not get working. The Waveshare worked fine once I figured out that I needed "dtoverlay=vc4-kms-dsi-7inch" in my config.txt. Now it's working very smoothly.
- Fitting the 900mhz board in, particularly with its Ethernet cable. I ended up making a custom Ethernet cable with some spare silicone wire and two RJ45s that I hacked down to be lower-profile. Pardon the wire coloring, I only had a few colors available. I twisted the pairs up to be on the safe side, but I kinda doubt it matters for such a short run.
- Spinning up the heatsink fan. The Seeed CM4 carrier board I'm using provides a fan port, but offers very little by way of support for actually using said port. I probed it with my voltmeter to figure out which pin is which (1 = PWM/GPIO 12, 3 = 5V, 5 = Gnd), and then just soldered my fan leads directly to the connector. Too impatient to wait for the mating connector to ship! I blobbed some hot glue on top to keep it secure. Fan speed is now controlled by the pi based on cpu temp.
- Camera communication. This one was basic networking, though - the camera and the pi need to be on the same subnet, basically. By setting the pi to a static ip for eth0 (I use 192.168.0.2), all I have to do is set whatever camera I'm using to another address in the same net (ex 192.168.0.100), and it connects nicely.
- Keyboard input. I elected to use the OnBoard virtual keyboard for text input, but it took some finagling to get working. Ended up having to switch to the X window server instead of Wayland for full support. I don't think I was doing anything that relied on Wayland, but who knows?
All in all, I am very happy with where the device currently is. Some items still to do, however, include:
- Battery power. I want this to be fully portable, currently it is tethered to my monitor by its Lemo cable. I have ordered a TinyUPS and a LiPo pack, which I intend to sandwich with the 900mhz board in order to provide at least a little bit of battery power.
- Lock switch. I need a physical switch to disable the touchscreen when I'm not actively doing something with it. I believe I can use the "xinput disable" command to stop any touch events from passing through to X, which should do the trick.
- External WiFi Antenna. This is just as much for aesthetics as anything else - I felt it odd to have only one antenna on top of the box, so I included another for WiFi. Turns out my u.fl cable was too short to actually reach the Pi, so it's still using the internal antenna for now. Given that really the WiFi is only for emergency SSH when something goes wrong, it doesn't really need stellar range, but as long as there's an antenna it should actually do something, right? I have a longer u.fl cable arriving next week. I should also point out that the WiFi connector is RP-SMA, and the 900mhz connector is SMA, so that I don't confuse the identical-looking antennas.
- Size. I would like, if possible, to get the device slimmed down a bit. Right now the limiting factor is that heatsink on the Pi. I have a slimmer heatsink, but I need to drill a few holes in it to mount it on the carrier board. I am a bit concerned about heat, however, especially once there's a LiPo in there, so I may just keep the larger sink and live with the size of the thing.
- Slickness. Ideally, the device would boot seamlessly into kiosk mode, with the camera control page automatically loading up. Right now it boots into the desktop environment, and then launches Chromium from there. I may also need a different browser, it looked like Flow is a bit better with animations etc, so maybe that...
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.