Where The Work Is Really Done – Casual Profiling

Once a program has been debugged and works properly, it might be time to start optimizing it. A common way of doing this is a method called profiling – watching a program execute and counting the amount of computing time each step in the program takes. This is all well and good for most programs, but gets complicated when processes execute on more than one core. A profiler may count time spent waiting in a program for a process in another core to finish, giving meaningless results. To solve this problem, a method called casual profiling was developed.

In casual profiling, markers are placed in the code and the profiler can measure how fast the program gets to these markers. Since multiple cores are involved, and the profiler can’t speed up the rest of the program, it actually slows everything else down and measures the markers in order to simulate an increase in speed. [Daniel Morsig] took this idea and implemented it in Go, with an example used to demonstrate its effectiveness speeding up a single process by 95%, resulting in a 22% increase in the entire program. Using a regular profiler only counted a 3% increase, which was not as informative as the casual profiler’s 22% measurement.

We got this tip from [Greg Kennedy] who notes that he hasn’t seen much use of casual profiling outside of the academic world, but we agree that there is likely some usefulness to this method of keeping track of a multi-threaded program’s efficiency. If you know of any other ways of solving this problem, or have seen causal profiling in use in the wild, let us know in the comments below.

Header image: Alan Lorenzo [CC BY-SA 3.0].

A Simple Way To Analyze Guitar Pickups

To the uninitiated an electric guitar seems fairly simple: you pluck a string and the electronics send the corresponding audio signal on the 6.3 mm jack output, all ready for for the amplifier to work its magic. Much of what makes a guitar like that sound good depends on the pickups, however. These are the devices which are placed between the guitar body and the strings. Depending on the guitar there can be one, two, or more of them, of varying types and configurations.

As a Gibson fan who upon getting introduced to a Fender Telecaster just had to replace its pickups with humbucking types, [Ken Willmott] found himself thrown into the wonderful world of pickup design and characterization. After two years of working through a number of designs and approaches, he eventually settled on a preamplifier design featuring a JFET opamp (LT1058) on a custom PCB which amplifies the pickup response from a test signal, acting as a front end signal conditioner.

Continue reading “A Simple Way To Analyze Guitar Pickups”

Punch The World With A Raspberry Pi

Robots have certainly made the world a better place. Virtually everything from automobile assembly to food production uses a robot at some point in the process, not to mention those robots that can clean your house or make your morning coffee. But not every robot needs such a productive purpose. This one allows you to punch the world, which while not producing as much physical value as a welding robot in an assembly line might, certainly seems to have some therapeutic effects at least.

The IoT Planet Puncher comes to us from [8BitsAndAByte] who build lots of different things of equally dubious function. This one allows us to release our frustration on the world by punching it (or rather, a small model of it). A small painted sphere sits in front of a 3D-printed boxing glove mounted on a linear actuator. The linear actuator is driven by a Raspberry Pi. The Pi’s job doesn’t end there, though, as the project also uses a Pi camera to take video of the globe and serve it on a webpage through which anyone can control the punching glove.

While not immediately useful, we certainly had fun punching it a few times, and once a mysterious hand entered the shot to make adjustments to the system as well. Projects like this are good fun, and sometimes you just need to build something, even if it’s goofy, because the urge strikes you. Continue reading “Punch The World With A Raspberry Pi”

The Bluetooth LCD Sniffer You Didn’t Know You Needed

At one time or another, we’ve all suffered through working with a piece of equipment that didn’t feature a way to export its data to another device. Whether it was just too old to offer such niceties, or the manufacturer locked the capability behind some upgrade, the pain of staring at digits ticking over on a glowing LCD display and wishing there was a practical way to scrape what our eyes were seeing is well known to hackers.

That was precisely the inspiration for DoMSnif, the dot matrix LCD sniffer that [Blecky] has been working on. Originally the project started as a way to record the temperature of his BRTRO-420 reflow oven, but realizing that such a device could have widespread appeal to other hardware hackers, he’s rightfully decided to enter it into the 2019 Hackaday Prize. If perfected, it could be an excellent way to bolt data capture capabilities to your older devices.

The first phase of this project was figuring out how to capture and parse the signals going into the device’s KS0108 LCD. Getting the data was certainly easy enough, he just had to hook a logic analyzer up between the display and the main board of the device. Of course, figuring out what it all means is a different story.

After running the oven for a bit with the analyzer recording, [Blecky] had more than enough data to get started on decoding it. Luckily, the layout of this fairly common 128×64 pixel display is well documented and easy enough to understand. With a little work, he was able to create a tool that would import the captured data and display it on a virtual LCD.

Unfortunately, the Bluetooth part is where things get tricky. Ultimately, [Blecky] wants to ditch the logic analyzer and use a Adafruit Feather nRF52 Bluefruit to capture the signals going to the LCD and pipe them to a waiting device over Bluetooth. But his testing has found that the nRF52’s radio is simply too slow. The display is receiving data every 14us, but it takes the radio at least 50us to send a packet.

[Blecky] is looking at ways around this problem, and we’re confident he’ll crack it. The solution could be in buffering and compressing the data before sending it out, though you’d lose the ability to monitor the display in real-time. Even if he has to abandon the Bluetooth aspect entirely and make the device wired, we still think there would be a market for an easy to use hardware and software solution for scraping LCD data.

Hands-On: AND!XOR DEF CON 27 Badge Ditches Bender, Adopts Light Pipes

The newest offering from the AND!XOR team is out and it delivered exactly what hardware badges were missing: light pipes. No joke, the DEF CON 27 edition AND!XOR badge will be most recognizable because of two arcs of light pipe material blinging RGB goodness in three dimensions. But if you can peel your eyes away from that oddity there’s a lot to love about the new design.

Continue reading “Hands-On: AND!XOR DEF CON 27 Badge Ditches Bender, Adopts Light Pipes”

Quick-Turn PCB Fab Hack Chat

Join us on Wednesday, July 31st at noon Pacific for the Quick-Turn PCB Fab Hack Chat with Mihir Shah!

We’ve all become used to designing a PCB and having it magically appear at our doorstep – after a fashion. Modern PCB fabs rely on economies of scale to deliver your design cheaply, at the expense of time – the time it takes to put enough orders onto a panel, and the time it takes to ship the finished boards from Far, Far Away.

Not everyone has that kind of time to burn, though. That’s where quick-turn fabs come in. These manufacturers specialize in getting boards to their customers as quickly as possible, helping them deal with sudden design changes or supporting specialty applications for customers.

It’s a niche industry, but an important one, and Royal Circuits is at the forefront. Mihir Shah is Director of Special Projects there, and he’s deep into the business of getting PCBs to customers as quickly as possible. He’ll drop by the Hack Chat to answer all your questions about how the quick-turn industry fits into the electronics manufacturing ecosystem, and to show off some of the tools of the future that they’re developing and investing in to streamline PCB design and analysis – from DebuggAR to PCBLayout.com, and more.

join-hack-chatOur Hack Chats are live community events in the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday July 31 at 12:00 PM Pacific time. If time zones have got you down, we have a handy time zone converter.

Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.

Micro-Sized Flex For Commercial Quality Bodging

We love watching the creativity unleashed by the democratization of once-exotic technologies. The casualness by which one can order a cheap, small run of PCBs has unlocked a flood of fine pitch components and projects which look commercial quality even with a total build volume of one. Now the once mythical flex PCB has been falling from it’s stratospheric pricing and with OSHPark’s offering it feels like we’re at the inflection point. [qwertymodo] leveraged this by creating a beautifully twisted flex to add link port support to the Super Game Boy

In the mid-90’s Nintendo released the Super Game Boy, a cartridge for the SNES which allowed you to play Game Boy games on the big screen. Each cartridge was in fact an entire Game Boy with the appropriate hardware to present it in a way the host console could interface with, but missing some of the hardware a standalone Game Boy would include like a link port to connect it to another system. This mod fixes this limitation by bridging the correct pins out from the CPU to a breakout board which includes the link port connector. For general background on what’s going on here, check out [Brian]’s article from April describing a different mod [qwertymodo] executed to the same system.

What’s fascinating is how elegant the mod is. Using a a flex here to create a completely custom, strangely shaped, one-of-a-kind adapter for this random IC, in low volume is an awesome example of the use of advanced manufacturing techniques to take our hacks to the next level. It reminds us a little of the method [Scotty] used to add the headphone jack to his iPhone 7 back in 2017. At the time that seemed like a technology only available to hackers who could speak a little Mandarin and lived in Shenzhen.

Detailed information on this hack is a little spread out. There is slightly more info in these tweets, and if you have a Super Game Boy crying out for a link port the adapter flexes are sometimes available here. Look beyond the break to see what the mod originally looked like sans-flex.

Continue reading “Micro-Sized Flex For Commercial Quality Bodging”