The Most Basic BASIC Computer

avr computer

AVR microcontrollers can do pretty much anything nowadays. Blinking LEDs, handling sensor inputs, engine control modules, and now, thanks to [Dan], a small single chip BASIC computer with only ten parts (and four of them are capacitors).

[Dan]’s homebrew computer has it all. The ATmega 1284P microcontroller outputs a composite video signal and handles inputs from a PS/2 keyboard. The microcontroller runs at 16 MHz, has 7 kB of memory for programs, and can use a separate EEPROM to store data. It also has an array of GPIO pins for interacting with the physical world.

For software, the microcontroller runs a version of BASIC called Tiny BASIC plus, which is a stripped-down language that can fit in 3 kB of memory. This is crucial if you’re in the 1970s or if you’re programming on an AVR microcontroller in the 21st century.

We’ve seen other Arduinos and AVR-type microcontrollers that can run BASIC, but this one has a great form factor and clean look. It’s also a great way to get familiar with homebrew computing and the BASIC programming language!

THP Entry: Tinusaur AVR Platform Teaches Noobs, Plays Game of Life

tinusaur[Neven Boyanov] says there’s nothing special about Tinusaur, the bite-sized platform for learning and teaching the joys of programming AVRs. But if you’re dying to gain a deeper understanding of your Arduino or are looking to teach someone else the basics, you may disagree with that assessment.

Tinusaur is easy to assemble and contains only the components necessary for ATTiny13/25/45/85 operation (the kit comes with an ’85). [Neven] saved space and memory by forgoing USB voltage regulator. An optional button cell mount and jumper are included in the kit.

[Neven] is selling boards and kits through the Tinusaur site, or you can get the board from a few 3rd party vendors. His site has some projects and useful guides for assembling and driving your Tinusaur. He recently programmed it to play Conway’s Game of Life on an 8×8 LED matrix. If you’re looking for the zero-entry side of the AVR swimming pool, you can program it from the Arduino IDE. Be warned, though; they aren’t fully compatible.

SpaceWrencherThe project featured in this post is an entry in The Hackaday Prize. Build something awesome and win a trip to space or hundreds of other prizes.

Fantastic Tach Is Strangely Called Tachtastic

tachtastic diy tachometer

We all have projects from yesteryear that we wish had been documented better. [EjaadTech] is fighting back by creating a project page about a tachometer he built 3 years ago while in college. He’s done a great write-up documenting all the steps from bread-boarding to testing to finished project. All of the code necessary for this tachometer is available too, just in case you’d like to make one yourself.

At the heart of the project is an AVR ATMega8 chip that performs the calculations and controls the LCD output screen that displays both the immediate RPM as well as the average. To hold everything together, [EjaadTech] etched his own custom PCB board that we must say looks pretty good. In addition to holding all the necessary components, there is also an ISP connector for programming and re-programming.

There are two attachment options for sensing the RPM. One is a beam-break style where the IR emitter is on one side of the object and the receiver is on the other. This type of sensor would work well with something like a fan, where the blades would break the IR beam as they passed by. Then other attachment has the IR emitter and receiver on one board mounted next to each other. The emitter continually sends out a signal and the receiver counts how often it sees a reflection. This works for rotating objects such as shafts where there would not be a regular break in the IR beam. For this reflective-based setup to work there would have to be a small piece of reflective tape on the shaft providing a once-per-revolution reflection point. Notice the use of female headers to block any stray IR beams from causing an inaccurate reading… simple and effective.


Overwriting a Protected AVR Bootloader

Logo for the FIgnition 8 bit computer project

A bootloader is typically used to update application code on a microcontroller. It receives the new program from a host, writes it to flash, verifies the program is valid, and resets the microcontroller. Perhaps the most ubiquitous example is the Arduino bootloader which allows you to load code without an AVR programmer.

The bootloader resides in a special part of memory, which is protected. On the AVR, it isn’t possible to write to the bootloader memory from the application code. This is to prevent you from accidentally breaking the bootloader and bricking the device.

However, it can be useful to write to the bootloader memory. The best example would be when you need to update the bootloader itself. To accomplish this, [Julz] found a workaround that defeats the AVR bootloader protection.

The challenge was to find a way to execute the Store Program Memory (spm) instruction, which can only be executed by the bootloader. [Julz] managed to make use of the spm instruction in the existing bootloader by counting cycles and modifying registers at the right time.

Using this technique, which [Julz] calls BootJacker, the Fignition 8 bit computer could have its bootloader updated. However, this technique would likely allow you to modify most bootloaders on AVR devices.

Stubby, The Adorable And Easy To Build Hexapod


A while back, we had a sci-fi contest on Inspired by the replicators in Stargate SG-1, [The Big One] and a few other folk decided a remote-controlled hexapod would be a great build. The contest is long over, but that doesn’t mean development stopped. Now Stubby, the replicator-inspired hexapod is complete and he looks awesome.

The first two versions suffered from underpowered servos and complex mechanics. Third time’s the charm, and version three is a lightweight robot with pretty simple mechanics able to translate and rotate along the XYZ axes. Stubby only weights about 600 grams, batteries included, so he’s surprisingly nimble as well.

The frame of the hexapod is designed to be cut with a scroll saw, much to the chagrin of anyone without a CNC machine. There are three 9g servos per leg, all controlled with a custom board featuring an ATMega1284p and an XBee interface to an old Playstation controller.

Video of Stubby below, and of course all the sources and files are available on the project site.

Continue reading “Stubby, The Adorable And Easy To Build Hexapod”

Running Minecraft On Two Routers


[CNLohr] is no stranger to running Minecraft on some weird hardware. Earlier, he built this Linux powered microscope slide… thing to toggle LEDs with redstone levers in Minecraft. Figuring if Minecraft could run on an AVR, he decided to try the same thing on a router, a TP-LINK TL-WR841N to be specific. Like the microscope slide running Linux, this proved to be an easy task. [CNLohr] had another router he could run Minecraft on, and this one could also punch wood. There really was only one thing for him to do.

Like the microscope slide and the wireless router, [CNLohr]’s CNC router is now running a Minecraft server. The phrase, “because it’s there” comes to mind. When connected to the CNC server, the player controls a snow golem (a snowman with a jack ‘o lantern head) with a carrot. Wherever the snow golem goes, the tool head follows, allowing him to carve objects in the world, and on a sheet of MDF secured in the CNC machine.

It’s certainly an odd build, but [CNLohr] was able to carve out a pixeley, blocky Hackaday logo with the snow golem controlled CNC machine. Code here, video below.

Continue reading “Running Minecraft On Two Routers”

ISPnub – A Stand-Alone AVR In-System-Programmer Module

[Thomas] tipped us about his latest project: a stand-alone AVR programmer module named ISPnub. As you can see in the picture above, it is a simple circuit board composed of a main microcontroller (ATmega1284p), one button and two LEDs. Programming a target is a simple as connecting the ISPnub and pressing the button. The flashing operation success status is then shown using the green/red LED.

ISPnub gets its power from the target circuit so no external power supply is needed. It works over a wide voltage range: 1.8V to 5.5V. The module also features a programming counter which can be used to limit the number of programming cycles. A multi-platform Java tool is in charge of embedding the target flash contents with the ISPnub main firmware. The complete project is open source so you may want to check out the official GitHub repository for the firmware and the project’s page for the schematics.