Backchannel UART without the UART

Anyone who has worked with a microcontroller is familiar with using printf as a makeshift debugger. This method is called tracing and it comes with the limitation that it uses up a UART peripheral. Believe it or not, there are 8051 variants out there that come with only one serial block and you are out of luck if your application needs it to communicate with another device.

[Jay Carlson] has a method by which he can piggyback these trace messages over an on-chip debugger. Though the newer ARM Cortex-M software debugger already has this facility but [Jay Carlson]’s hack is designed to work with the SiLabs EFM8 controllers. The idea is to write these debug messages to a predefined location in the RAM which the debugger can access anyway. His application polls a certain area of the memory and when it finds valid information, it reads the data and spits it out into a dedicated window. It’s using the debugger as a makeshift printf!

[Jay Carlson] used slab8051.dll interface and put together a C# program and GUI that works alongside the SiLab’s IDE. The code is available on GitHub for you to check out if you are working the EFM8 and need a helping hand. The idea is quite simple and can be ported to other controllers in a multitude of ways like the MSP430 perhaps. For those of you who like the Teensy, you might want to take a look at adding debugger support to the Teensy 3.5/3.6.

Monitor Your City’s Air Quality

[Radu Motisan]’s entry in the 2017 Hackaday Prize is a series of IoT Air Quality monitors, the City Air Quality project. According to [Radu], air pollution is the single largest environmental cause of premature death in urban Europe and transport is the main source. [Radu] has created a unit that can be deployed throughout a city and has sensors on it to report on the air quality.

The hardware has a laser light scattering sensor for particulate matter and 4 electromechanical sensors for carbon monoxide, nitrogen dioxide, sulfur dioxide and ozone (these sense the six parameters that are recognized as having significant health impact by multiple countries.) These sensors have2-yearear lifespan, so they are installed in sockets for easy replacement, and if needed, you can swap to different sensors to detect different things. The PCBs for the hardware are separated into a WiFi version and a LoRaWAN version and the software runs on an ATMega328 – the PCB has the standard six-pin ISP connection for programming.

The data collected is sent to a server where it is adjusted based on the unit’s calibration parameters and stored in a database per sensor. This makes servicing the sensors at the end of their life easier as all that’s required is replacing the sensors in the unit and changing the calibration parameters stored for that unit, the software changes are required. The server offers the data via a RESTful API so that building dashboards with the stats and charts become easy.

[Radu] used an off the shelf module as the first prototype and attached it to a car while driving around. He used this to test out the plan and work on the server. He then proceeded to designing the PCB hardware and the enclosure for the final unit. This work is an extension of [Radu]’s previous work, spotlit here in the 2015 Hackaday Prize, but also check out this project to put air quality sensors in the classroom.

Continue reading “Monitor Your City’s Air Quality”

STM32CubeMX Makes Makefiles

When hardware manufacturers make GUI code-generation tools, the resulting files often look like a canned-spaghetti truck overturned on the highway — there’s metaphorical overcooked noodles and red sauce all over the place. Sometimes we think they’re doing this willfully to tie you into their IDE. Not so the newest version of ST’s graphical STM32CubeMX, which guides you through a pleasant pin-allocation procedure and then dumps out, as of the latest version, a clean Makefile.

Yes, that’s right. This is a manufacturer software suite that outputs something you can actually use with whatever editor, GUI, compiler, or environment that you wish — even the command line. Before this release, you had to go through a hacky but functional script to get a Makefile out of the CubeMX. Now there’s official support for real hackers. Thanks, ST!

If you’re compiling on your own, you’ll need to update the BINPATH variable to point to your compiler. (We use the excellent GNU ARM Embedded Toolchain ourselves, which is super-easy to install on almost any Linux.) If you want to use STM32CubeMX with the Eclipse IDE, [kali prasad yadav] sent us PDF instructions — it’s not hard.

If you doubt that the availability of a free, open, and non-constraining toolchain can matter for a silicon vendor, we’d point to AVR and the Arduino platform that spun off of their support of GCC. Sure, Atmel still pushes their all-in-one wonder, Atmel Studio, which is better than the Arduino IDE by most any metric. But Studio is closed, and Arduino is open. We’d love to see the number of Studio users compared with Arduino users.

Congratulations to ST for taking a big step in the right, open-toolchain, direction.

Digitool Helps Debugging

Logic analyzers used to be large boxes full of high-speed logic and a display monitor. Today, they are more likely to be a small box with a USB port that feeds data to a PC application. [Juan Antonio Rubia Mena] wanted something more self-contained, so he built Digitool. Built around a PIC18F2525, the device can measure frequency up to 10 MHz and inject square waves up to 1 MHz into the circuit under test. Oh yeah. It also has a simple four-channel logic analyzer that displays on a tiny LCD.

The 500,000 sample per second rate and the 1024 sample buffer isn’t going to put any logic analyzer vendors out of business, but it is still enough to help you figure out why that SPI or I2C logic is messed up. It looks like a fun project that could have some usefulness.

Continue reading “Digitool Helps Debugging”

COSMAC Elf Calculator Gets New Firmware

Everyone remembers their first. Their first CPU, that is. For many of us, it was the RCA 1802 thanks to the COSMAC Elf articles that ran in Popular Electronics. The later versions of the chip family were much better but were never as popular, but the 1805 did find its way into a printing calculator for dimensions from a company named Boyd. Some of these recently showed up on the surplus market and–of course–were subsequently hacked.

[Bill Rowe] is active in the groups that still work with the 1802. Because of some specialized uses you can still get the chips readily, some four decades after they were new. Other computers at the time were difficult to build and relatively expensive, while for $100 almost anyone could wire wrap a simple 1802-based computer together in a weekend or less.

Continue reading “COSMAC Elf Calculator Gets New Firmware”

Building a Better Baby Bottle Boiler

[Sebastian Foerster] hasn’t been at his blog in a while. He and his wife just had twins, so he’s been busy standing waiting for formula or milk to warm up. Being a technical kind of guy, he took a look at the tools currently on the market to do this, analyzed them, and decided instead to do it himself.

[Sebastian] looked to his Nespresso Aeroccino – a milk frother designed to give you hot or cold frothy milk for the top of whatever beverage you decide to put it on top of. It made the milk a bit too hot, 60°C, but once it got to the temperature, it would shut off, so if [Sebastian] could get it to shut off at a lower temperature, he had found the solution!

After taking the Aeroccino apart and going over the circuit, it seemed like a simple design relying on a resistor and NTC (negative temperature coefficient) thermistor connected to an ATTiny44 microcontroller. [Sebastian] didn’t want to have to reprogram the ATTiny, so he looked at the resistor and NTC. The resistor and thermistor create a voltage divider and that voltage is read in by the microcontroller through an analog pin. After looking up some info on the thermistor and replacing the resistor with a potentiometer, [Sebastian] could adjust the shut-off temperature while measuring with a thermometer. When he got the temperature he liked, he reads the value of the potentiometer and then replaces it with a couple of resistors in series.

Now [Sebastian] gets the babies’ bottles ready from fridge to temperature in about 25 seconds. He doesn’t have to worry about keeping an eye on the bottles as they heat up. We’re sure that getting two bottles ready in under a minute is much better on the nerves of new parents than waiting around for ten minutes. For more fun with thermistors, check out our article on resistors controlled by the environment or check out this bluetooth bbq thermometer!

6502 Retrocomputing Goes to the Cloud

In what may be the strangest retrocomputing project we’ve seen lately, you can now access a virtual 6502 via Amazon’s Lambda computing service. We don’t mean there’s a web page with a simulated CPU on it. That’s old hat. This is a web service that takes a block of memory, executes 6502 code that it finds in it, and then returns a block of memory after a BRK opcode or a time out.

You format your request as a JSON-formatted POST request, so anything that can do an HTTP post can probably access it. If you aren’t feeling like writing your own client, the main page has a form you can fill out with some sample values. Just be aware that the memory going in and out is base 64 encoded, so you aren’t going to see instantly gratifying results.

Continue reading “6502 Retrocomputing Goes to the Cloud”