We were inspired by the Glowforge laser cutters ability to continuously autofocus it’s z axis. A camera mounted in the head of the laser detects a laser dot being shone onto the surface of the material and from there it can determine how far the lens needs to be adjusted to set the focal height for the correct cutting distance.
The Nintendo Wii Remote has an optical camera in it that is used to detect up to four points of infrared light. The hardware automatically identifies these points and feeds back XY positions through a bluetooth connection. The cutting laser on a laser cutter is an infrared beam, as it cuts through the surface of the material there is a moment where it is reflected off the material and the Wiimote is able to detect the location of the cut. The location data is fed back to a laptop and by comparing this point against the initial ‘in focus’ point we’re able to detect if the Z axis needs to move up or down and by how much. The laptop sends data to an arduino that is connected between the laser cutters onboard Leetro controller and the Z axis stepper motor driver. The Arduino controller is the same as we have used on previous projects to control the Z axis. The result is a laser cutter that has the ability to remain in focus throughout the duration of a cut.
One of our users from Italy, Guido, was tasked with upgrading an old in-house WRC system to allow the team of Sport’s Journalists to access the rack of satellite receivers relaying the various sports events around the building. The challenge is that all of the STB (Set Top Boxes) are located in a dedicated room away from the Journalist’s desks and it is impractical for them to manually change the stations when working to tight deadlines. Previously there was a system in place to remotely switch feeds, but Guido needed to upgrade the system to handle the ever growing number of devices and Infrared protocols. Luckily, he found AnalysIR during his research to implement ‘a hack for Hacks using AnalysIR‘.
Davide Gironi writes, “The XinSound Fuzz FD-20 is a Big Muff V2 Ram’s Head guitar pedal clone. It’s schematic is next to the Electro Harmonix Big-Muff Pi 1975-15-10 original circuit. As usually, I would like to experiment on this pedal, doing some mods.”
We like cheap, well-made temperature controllers. Sure, we can make our own, but for a modest sum we can get a nice NEMA-rated package capable of reasonably complex logic with a communications interface. The Love 4C and 16C controllers can both be had for <$100 fit this description and make dependable control and higher-level monitoring possible.
The downside is that the interface is modbus over RS485, which requires a driver chip such as the Maxim RS485 which will translate to serial for control over a UART or other serial interface. This is not a killer, as you can get a nicely laid out RS485 chip from Sparkfun for $10, or make your own.
The reason for this piece is that all RS485 code I could find was designed for use with the hardware serial UART on microcontrollers such as Arduino or clones such as the Moteino. Because I typically use the UART for communication to a Pi or to a debug console, and the 328P I typically use has only one, this was not an option. To make it work over a few digital pins, it is actually quite easy to use the SoftwareSerial library to make this happen.
Some time ago I noticed that the Ublox Neo-7M GPS has a 10 MHz output which is locked to the GPS system’s accuracy. Most people kept saying how useless it was due to excessive jitter unless it was cleaned up with a phase locked loop of some sort. But at the same time I installed the reference input for my Elecraft K3 (K3EXREF). It enables the K3’s frequency to be locked to an external 10 MHz reference. What struck me was how its function was described:
The frequency of the internal oscillator of about 49.38 MHz is continuously measured and averaged, obtaining a value to the nearest 1 Hz.
The K3EXREF does not phase lock the K3’s reference oscillator and the external 10 MHz source has no impact on the K3’s phase noise performance.
This got me wondering if the Neo-7M would be just good enough as a reference and that all the averaging internally to the K3 would take care of the jitter.
Since we received our Photon several months ago it has been difficult to find a working example of Hardware PWM on the Photon (suiteable for IR signals). Initially, we ported our softPWM approach to the Photon, which is excellent. However, we figured it must be possible to use at least one of the spare UARTs on the Photon to achieve our goal. So first we started prototyping on the Arduino and quickly got a working example with some limitations – only 40 kHz and 33 kHz carrier frequencies were possible with the UART without delving into the registers a bit more. Then we moved the code over to the Photon, leveraging our previous softPWM examples, upgraded with the Arduino code – EUREKA! The Backdoor uPWM Hack on Photon for Infrared signals.