A New Gaming Shell For A Mouse

For some gamers, having a light fast polling mouse is key. [Ali] of [Optimum Tech] loved his 23-gram mouse but disliked the cord. Not seeing any options for a comparable wireless mouse, he decided to make one himself.

Trying to shortcut the process, he started with an existing wireless mouse from Razer weighing in at a hefty 58 grams. The PCB on its own weighed in at 11 grams and after swapping to a smaller battery, [Ali] had a budget of 10 to 15 grams for the shell. Here is where the meat of this project lives. The everyday objects in your life like the poles that hold up traffic signals or the device you’re reading this article on are looked at and used without much thought into why they are what they are. The design of everyday things is a surprisingly deep field and designing a curvy mouse is no exception. With a 3d version of the PCB, he went through several iterations of how to lay out the mouse triggers. The scroll wheel was removed as he didn’t need it for the game he was playing.

The shell was printed in resin and came out great. [Ali] found himself with an ultralight 4000hz wireless mouse that was thoroughly enjoyable. It’s a great example of someone diving in and designing something for their personal use. Whether it’s a mouse or a chair, we love anyone taking on a design challenge. Video after the break.

Continue reading “A New Gaming Shell For A Mouse”

A Survey Of Long-Term Waterproofing Options

When it comes to placing a project underwater, the easy way out is to just stick it in some sort of waterproof container, cover it with hot glue, and call it a day. But when you need to keep water out for several years, things get significantly harder. Luckily, [Patricia Beddows] and [Edward Mallon] from the Cave Pearl Project have written up their years of experience waterproofing data loggers for long-term deployment, making the process easier for the rest of us.

Cleaning cheap eBay boards in alcohol.

It starts with the actual board itself. Many SMD boards have at least some flux left over from the assembly process, which the duo notes has a tendency to pull water in under components. So the first step is to clean them thoroughly with an ultrasonic cleaner or toothbrush, though some parts such as RTCs, MEMs, or pressure sensors need to be handled with significant care.

Actual waterproofing starts with a coating like 422-B or nail polish which each have pros and cons. [Patricia] and [Edward] often apply coatings to PCBs even if they plan to otherwise seal it as it offers a final line of defense. The cut edges of PCBs need to be protected so that water can’t seep between layers, though care needs to be made for connectors like SD cards.

Encapsulation with a variety of materials such as hot glue, heat shrink tubing, superglue and baking soda, silicone rubber, liquid epoxy, paste epoxy (like J-B Weld), or even wax are all commented on. The biggest problem is that a material can be waterproof but not water vapor proof. This means that condensation can build up inside a housing. Temperature swings also can play havoc with sealings, causing gaps to appear as it expands or contracts.

Overall, it’s an incredible guide with helpful tips and tricks for anyone logging data underwater for science or even just trying to waterproof their favorite watch.

Continue reading “A Survey Of Long-Term Waterproofing Options”

Bus Stop Bloom Filter

Imagine you’re sitting on a nice bench, the sun shines warmly, and a bus pulls up. You’re headed to Stendal from Osnabrück, how can you tell if you should get on that bus? [Julian Vanecek] is trying to turn that from an O(n) problem to an O(1) one with a Bloom filter right at the bus stop.

In [Julian’s] sample code, each stop is a 3-bit number that can be encoded into a 192-bit array. Your ticket is just that 3-bit number encoded, so you can look at the graphic on the side of the incoming bus, match it against your ticket, and hop on. Gone are the days of waiting for the little LED screen to cycle through all the stops, waiting for yours to come up. Your ticket should have just a few boxes filled in so it is relatively quick to search against the bus’s graphic.

Of course, there is a potential for a false positive rate. [Julian] points out that this can be tuned to prevent errors and has achieved a < 0.5% false positive rate using the Deutsche Bahn bus system. The code is written in Python and available on GitHub. Perhaps buses could have a large flip-dop display on the side, to adjust to show which stops they’re headed to next. Additionally, it doesn’t encode which stops are next, just which stops the bus will eventually go to.

In the video after the break, [Julian] explains how the system works. Whether it would be ultimately adopted is somewhat beside the point. We love the seeing people re-imagining ideas and trying to apply new techniques to improve the things around them.

Continue reading “Bus Stop Bloom Filter”

Why LLaMa Is A Big Deal

You might have heard about LLaMa or maybe you haven’t. Either way, what’s the big deal? It’s just some AI thing. In a nutshell, LLaMa is important because it allows you to run large language models (LLM) like GPT-3 on commodity hardware. In many ways, this is a bit like Stable Diffusion, which similarly allowed normal folks to run image generation models on their own hardware with access to the underlying source code. We’ve discussed why Stable Diffusion matters and even talked about how it works.

LLaMa is a transformer language model from Facebook/Meta research, which is a collection of large models from 7 billion to 65 billion parameters trained on publicly available datasets. Their research paper showed that the 13B version outperformed GPT-3 in most benchmarks and LLama-65B is right up there with the best of them. LLaMa was unique as inference could be run on a single GPU due to some optimizations made to the transformer itself and the model being about 10x smaller. While Meta recommended that users have at least 10 GB of VRAM to run inference on the larger models, that’s a huge step from the 80 GB A100 cards that often run these models.

While this was an important step forward for the research community, it became a huge one for the hacker community when [Georgi Gerganov] rolled in. He released llama.cpp on GitHub, which runs the inference of a LLaMa model with 4-bit quantization. His code was focused on running LLaMa-7B on your Macbook, but we’ve seen versions running on smartphones and Raspberry Pis. There’s even a version written in Rust! A rough rule of thumb is anything with more than 4 GB of RAM can run LLaMa. Model weights are available through Meta with some rather strict terms, but they’ve been leaked online and can be found even in a pull request on the GitHub repo itself. Continue reading “Why LLaMa Is A Big Deal”

Haptick: The Strain Gauge Based 6DoF Controller

Six degrees of freedom (6DoF) controllers are used for manipulating an object in a CAD or 3d modeling program and are often called spacemice. You can twist it, push it, and even bop it. Most work with optical encoders, shining an LED through a slit to some form of photodetector on the other side. [Matthew Schubert] wanted to make his own spacemouse, but had some new ideas of how to go about it. His two-part project, dubbed haptic, focuses on measuring the forces, not the displacement.

He decided to try thick-film resistors as strain gauges and revisit load cells and proper strain gauges later. The actual structure quickly converged on the Stewart Platform, formed from three custom PCBs. A base to sit on, a knob for the top, and a middle board designed to take the strain with SMD resistors. A Teensy 3.2 talks to the ADS131M06 ADC and streams 4k samples per second to the host computer via serial. For prototyping, the calculations were done on the PC. Continue reading “Haptick: The Strain Gauge Based 6DoF Controller”

Creating GIFs For The Channels Between Channels

In the United States, analog TV broadcasting officially ended in 2009. While the transition wasn’t without hiccups, we did lose something along the way. For [Emily Velasco], she misses the channels between channels — where an analog TV isn’t quite tuned right and the image is smeared and distorted. A recent bug in one of her projects led to her trying to recreate the experience of the in-between on a CRT.

One of [Emily]’s other projects involved generating composite video signals from an ESP32 microcontroller. While experimenting with adding color to the output signal, the image came out incredibly scrambled. She had made an error in the stride, which smeared the image across the screen. This immediately brought back memories of old analog TV sets. A quick potentiometer allowed her to control the stride error and she wrote some code to break the GIF up into discrete bitmaps for display since the GFX library handles GIFs differently than static images. Next up was vertical hold, which was accomplished by shifting the Y coordinates. With some help from [Roger], there was now a handy GIF library that would draw GIFs line by line with the composite video effects.

She used a Goldbeam portable CRT, soldered the tuning potentiometer to the ESP32, and set up 10 different GIFs to act as “channels” with space in between. It’s a fun and quirky idea, which is exactly the sort of thing [Emily] has been encouraging people to do.

Continue reading “Creating GIFs For The Channels Between Channels”

Wooden ITX PC Case Smacks Of Sophistication

Computer cases have come a long way from the ugly beige boxes of the early 2000s. Still, if it was going to sit on his desk, [MXC Builds] wanted something with a little more class. His custom Ironbark ITX PC seems to fit the aesthetic nicely.

The case’s outer shell is ironbark wood cut at 45 degrees and joined for a beautiful waterfall edge (the wood grain seems to flow uninterrupted). The power supply was heavily modified to take a thinner but larger fan, and a new cover and intake grill were 3D printed. As there were no mounting holes on the bottom of the power supply, he printed a bracket with spring clips to hold the PSU securely. Next, he routed a PCI riser cable to the other side of the internal panel so the GPU could mount on the back. He cut custom cables to match up the lengths needed for every run. Finally, rather than placing the power button on the front or top, it was on the side in a custom bracket.

It’s an absolutely gorgeous build that packs some respectable hardware in a tiny space (7.9 L or ~482 in3). The use of 3D printed parts and careful planning results in an incredibly tidy computer that most would proudly display on their desk. It is an open-air case, and if you’re looking for something a little more enclosed, perhaps this mid-century PC might whet your appetite.

Continue reading “Wooden ITX PC Case Smacks Of Sophistication”