[Tim’s] new version of Micronucleus, Micronucleus 2.0, improves upon V-USB by removing the need for interrupts. The original Micronucleus was a very small implementation of V-USB that took up only 2KB. Removing the need for interrupts is a big leap forward for V-USB.
For those of you that do not know, “V-USB is a software-only implementation of a low-speed USB device for Atmel’s AVR® microcontrollers, making it possible to build USB hardware with almost any AVR® microcontroller, not requiring any additional chip.” One tricky aspect of using V-USB is that the bootloader requires interrupts, which can lead to messy problems within the user program. By removing the need for interrupts, Micronucleus 2.0 reduces the complexity of the bootloader by removing the need to patch the interrupt vector for the user program.
With the added benefit of speeding up the V-USB data transmission, Micronucleus 2.0 is very exciting for those minimal embedded platforms based on V-USB. Go ahead and try out Micronucleus 2.0! Leave a comment and let us know what you think.
[Aditya] had a project that called for spoken output. He admits that he could have built a PC-based solution, but he found that adding speech by using a microcontroller was not only a cheap and portable alternative, it was also a fun and easy build.
His design uses an ATMega128. Many microcontrollers would work, but his major requirements were PWM generation and plenty of memory to store the file(s). The output is cleaned up in a simple low pass filter before going to the 8Ω speaker.
[Aditya] lays his tracks in WAV format and then compresses it to 8-bit/8kHz. He found a C++ function that converts the track data into a huge arrays and then digitizes it. He uses two timers, one to generate the waveform and second one to time the square wave. [Aditya] has a zip of samples available on his site that will speak the digits 0-9.
[Karl] was in need of a hardware random number generator, but is needs had a few caveats: it needed to be cheap, and sufficiently random. Random number generation can get quite crazy with Geiger tubes, lava lamps, and radioactive decay, but a much smaller solution was found in an 8 pin AVR microcontroller.
The solution uses AVRentropy, a library that uses the watchdog timer’s jitter in AVR microcontrollers to provide cryptographically secure random numbers. Setting up the circuit was easy – an ATtiny45 microcontroller was connected to a cheap chinese USB to serial converter. Three wires, and the circuit is complete. The code was simple as well; it’s just a call to initialize the entropy and write the bits to the serial port.
There are a few drawbacks to this build. Because the entropy library must wait until enough entropy is gathered, it can only produce about two 32-bit numbers per second. That’s all [Karl] needed for his application, though, and with an enclosure made from a wine cork and marble, he has the prettiest and smallest random number generator around.
Do you want to use your time more productively but are tomato-averse? [Robin]’s LED Pomodoro timer could be the perfect hack for you.
The Pomodoro Technique is a time management solution developed in the late 1980s. The basic idea is to spend a very focused 25 minutes performing some activity such as working or studying and then take a 5-minute break. Many of its proponents use a tomato-shaped kitchen timer to alert them to switch between the two states, but [Robin] wanted to make his own and learn along the way.
First, he wanted to use an ATtiny85 and learn about its features. Specifically, he used its timers, PWM, and low-power sleep mode. [Robin] used Charlieplexing to drive a total of six LEDs. When the timer starts, five yellow LEDs are driven high to indicate each 5-minute slice of work time. A red LED is lit during the 5-minute break.
[Robin] also explored compact PCB design and fabrication. All components are SMD and his board is 4cm square. [Robin] is using this SMD buzzer for discrete feedback. He included a footprint for a six-pin ISP header and programmed it with pogo pins. The timer is completely interrupt-driven: one click of the tactile button starts the work counter, and the buzzer sounds when time is up. A second click starts the break counter.
[Robin] has made everything available in his GitHub repo and encourages you to use it. Time’s a-wastin’!
[Bogdan] knows that it’s hard to model the cooling needs of any given project. It’s important to know how much heat a system can dissipate given the housing material, airflow opportunity, and the proximity of neighboring components. Inspired by an aluminium-walled enclosure that allows for mounted transistors, he devised and built a heatsink tester.
He’s using an ATXMEGA32A4U, a temperature sensor, and a IRF540 MOSFET. A specific power is dissipated across the transistor, and the temperature sensor measures the heatsink as close as possible to the transistor. Through the serial connection, he gets back the supply voltage, current, calculated power, DAC set, temperature, and calculated thermal resistance in the terminal.
[Bogdan]’s tester assumes that it is reading the ambient temperature, so the circuit needs to warm up first. He found that an hour is generally long enough to reach this point. He also found that the system exhibits high thermal inertia, so it regulates the DAC output based on the dissipated power.
The automotive industry is rolling more and more tech into their offerings. This is great for us because replacement or salvaged parts are great for projects. Here’s one component to look for. [MikesElectricStuff] tears apart the thermal imaging camera form an Audi. [via Hacked Gadgets]
Give your valentine an analog love note on the big day. [Tom’s] LED heart chaser design does it without any coding. It’s a 555 timer with CD4017 decade counter. The nice thing about the setup is a trimpot adjusts the chaser speed.
[Jan] is overclocking his Arduino to 32 MHz. For us that’s kind of an “eh” sort of thing. But his statement that you need to use a clock generator because the chip won’t work with an oscillator at that frequency raised an eyebrow. We saw an AVR chip running from a 32MHz crystal oscillator in the RetroWiz project from yesterday. So do we have it wrong or does [Jan]? Share your opinion in the comments.
Download a copy of the Apple II DOS source code… legally. Yay for releasing old code into the wild! The Computer History Museum has the DOS source code and a bunch of interesting history about it. [via Dangerous Prototypes]
While we were prowling around DP for the last link we came across [Ian’s] post on a new version of Bus Pirate cables. We’ve got the old rainbow cables which are pretty convenient. But if you’ve used them you’ll agree, hunting for the correct color for each connection isn’t anywhere near a fool-proof method. The new cable uses shrink tube printed with probe labels. They sound like a huge pain to manufacture. But this makes connections a lot easier. In our experience, when it doesn’t work its always a hardware problem! Hopefully this will mean fewer botched connections.
Make your tiny LiPo cells last longer. Not capacity wise, but physically. The delicate connections to the monitor PCB break easily, and the plug is really hard to connect and disconnect. [Sean] shows how he uses electrical tape for strain relief, and a bit of filing to loosen up the connector.
KerbalEdu: Kerbal Space Program for education. That’s right, you can play Kerbal as part of school now. Some may shake their heads at this, but school should be fun. And done right, we think gaming is a perfect way to educate. These initiatives must be the precursor to A Young Lady’s Illustrated Primer method of education. Right?
Developed in the very late 60s and through the 70s, the PDP-11 series of minicomputers was quite possibly the single most important computer ever created. The first widely distributed versions of Unix and C were developed on the PDP-11, and it’s hardware influence can be found in everything from the Motorola 68000 to the MSP430.
When [Dave Cheney] saw the recent 8086 simulator written in 4kB of C code, he realized simulating entire computer systems doesn’t actually require a whole lot of resources outside a big chunk of memory. Armed with an Arduino Mega clone, he set out on one of the coolest projects we’ve seen in a while: simulating a PDP-11 on an AVR.
[Dave] used an ATMega2560-powered Arduino Mega clone with an Ethernet module for the hardware of this build. Attached to it is a shield filled up with a pair of RAM chips that expand relatively limited amount of RAM on the ‘Mega.
So far, [Dave] has his simulated system booting Unix V6 off an SD card. For PDP-11 storage, he’s also simulating an RK05 disk drive, a massive 14 inch platter containing 2.5 Megabytes of data. Compared to the original PDP-11/40, [Dave] estimates his machine is about 10 times slower. Still, an original 11/40 system fills multiple server racks, and the most common installations consume several kilowatts of power. The Arduino Mega can fit in a pocket and can be powered over USB.
Future developments for this system include improving the accuracy of the simulator, running more advanced operating systems and the DEC diagnostic programs, and possibly speeding up the simulation. We’d suggest adding some switches and blinkenlights on an additional shield, but that’s just us.
All the code can be found on [Dave]’s git, with a description of his SPI RAM shield coming shortly.