When Worlds Collide: 68008 Bootstrapped by an Arduino Uno


[Peter Bjornx] brings classic microprocessors and modern microcontrollers together with his Arduino bootstrapped 68008 computer. The Motorola 68008 is the 8-bit external bus version of the well-known 68000 (or 68k) microprocessor. A friend gave [Peter] one of these chips, so he built a simple computer around it.

This isn’t one of those clean retrocomputers with every connection carefully planned out and wire wrapped. [Peter's] created a true hack – a working 68k system on a breadboard created with whatever he had on hand at the time. The real gem of this system is the ROM. [Peter] replaced an EPROM chip with an Arduino.

In the not-so-good-old-days, microprocessors (and many microcontrollers) ran from an external ROM chip. This often was a UV-erasable EPROM. Carefully compiled code was burned into the EPROM with a device programmer. If the code wasn’t perfect, the EPROM had to be pulled and placed under a UV lamp for 20 minutes or so to erase it before it was time to try again. EPROM emulators were available, but they were way too expensive for the hobbyist.

Thankfully those days are far behind us now with the advent of EEPROM and then Flash. [Peter] didn’t want to revisit the past either, so he wrote a simple Arduino sketch which allowed it to act as an EPROM emulator, including address logging via the serial port.

The design still caused [Peter] some headaches, though. His major problem was a classic 68k issue, /DTACK timing. /DTACK or Data Transfer Acknowledge is one of several bus control signals used by the 68k. When the 68k performs a read from the data bus, it waits for /DTACK before it transfers data. The Arduino was too slow to release /DTACK in this case, which caused the 68k to think every read was immediately completed. There is a much clearer explanation of the 68k bus cycles on this Big Mess O Wires page. [Peter's] solution was simple – a D flip-flop connected to the address strobe took care of the timing issues.

It took quite a bit of tinkering, but the system eventually worked. Peter was able to run the 68008 from its reset vector into a simple loop using the Arduino. It’s only fitting that the 68k program loaded by the Arduino was an LED blinker, everyone’s favorite hardware Hello World.

Thanks [Robert!]

LEGO and Arduino meet Han Solo

lego blaster gif

This full-size replica blaster from Star Wars, most iconically used by Han Solo and Princess Leia, has everything. Flashing LEDs, blaster noises, LEGO, and yes, even an Arduino. Not bad for [Baron von Brunk]‘s first project to use an Arduino!

The blaster was based on electronics and LEGO that were lying around and was intended for use for Star Wars Day 2014. (May the Fourth be with you.) “Lying around” in this sense might be a bit of an understatement for [Baron von Brunk], as the design of the blaster required the use of the LEGO Digital Designer and 400 blocks, some of which are quite rare.

The electronics for the project are tied to a moving trigger mechanism (also made from LEGO). The trigger mechanism hits a momentary pushbutton which tells the Arduino to activate the LEDs and a separate 555 timer and sound recording/playback device which handles the classic blaster sounds. The whole thing is powered by a 9V battery and housed in the front of the blaster, and all of the code (and the LEGO schematics) are available on the project’s site.

This is quite an impressive replica, and the craftsmanship that went into the build shows, especially in the LEGO parts. We think Han Solo would indeed be proud! If you’re ready to go even further with Star Wars and LEGO, you might want to check out this barrel organ that plays the Star Wars theme.

Aquaponic System Uses Arduino For Consistent Performance

Smart Aquaponics

Food is just one of those things that we need to survive. Plants can grow on their own without human intervention but the quantity and quality of the crop will vary from year to year. Even elaborate farms can have good and bad years due to variables such as weather, disease, bugs, pollution and soil condition.

There is a system called Aquaponics that attempts to control those variables. Aquaponics combines aquaculture (raising aquatic animals) with hydroponics (growing plants in water). The Aquaponic system tries to emulate what happens in nature without the variation; water-based animals eat plants and excrete waste and that waste is used as food for plants.

[Kijani Grows] has built an Aquaponic setup and added a smart controller that is made out a bunch of stuff you would not normally associate with a garden. Their are several sensors in the system that measure water flow, tank level, water quality and dissolved oxygen. An Arduino monitors these sensors and reports the information back to a $20 router running OpenWRT. All of the recorded data is also stored for review later. Software on the router determines what needs to be adjusted in the enclosed ecosystem. The router communicates this information back to the Arduino which in turn controls the water pumps, heaters, fish feeder and lighting. And as if that wasn’t enough, the control system can be set up to send out messages via email, SMS or social media.

Arduino Gives Your Toilet Options

toilet water saver

With the severe drought going on in California with no end in sight, [TVMiller] decided he could put an Arduino and a toilet together to try and save at least a few gallons of water per day. The invention fills a toilet to the minimum level, saving around two gallons per day for the average “user”.

A typical toilet functions by using gravity and moving water to create a vacuum, sucking the waste down and out of the toilet. As long as there is nothing, uh, solid in the bowl, the toilet will be able to function on the reduced amount of water. The Arduino cuts the flow of water off before the toilet fills up the entire way.

In the event that anyone -ahem- needs the toilet’s full capacity, there is a button connected to the Arduino that fills the reservoir to capacity. [TVMiller] notes that if 1,825 hackers installed this device on their toilets, we could save a million gallons of water per year and be well on our way to saving the planet.

The project site is full of more information and puns for your viewing pleasure. We might suggest that the “2” button would be very easy to integrate with the toilet terror level indicator as well.


The Arduino Yun Shield


A few years ago, the most common method to put an Arduino project on the web was to add a small router loaded up with OpenWrt, wire up a serial connection, and use this router as a bridge to the Internet. This odd arrangement was possibly because the existing Arduino Ethernet and WiFi shields were too expensive or not capable enough, but either way the Arduino crew took notice and released the Arduino Yun: an Arduino with an SoC running Linux with an Ethernet port. It’s pretty much the same thing as an Arduino wired up to a router, with the added bonus of having tons of libraries available.

Since the Yun is basically a SoC grafted onto an Arduino, we’re surprised we haven’t seen something like this before. It’s an Arduino shield that adds a Linux SoC, WiFi, Ethernet, and USB Host to any Arduino board from the Uno, to the Duemilanove and Mega. It is basically identical to the Arduino Yun, and like the Yun it’s completely open for anyone to remix, share, and reuse.

The Yun shield found on the Dragino website features a small SoC running OpenWrt, separated from the rest of the Arduino board with a serial connection. The Linux side of the stack features a 400MHz AR9331 (the same processor as the Yun), 16 MB of Flash, and 64 MB of RAM for running a built-in web server and sending all the sensor data an Arduino can gather up to the cloud (Yun, by the way, means cloud).

All the hardware files are available on the Yun shield repo, with the Dragino HE module being the most difficult part to source.

Arduino SPI Library Gains Transaction Support

Transaction SPI Timing

Transaction SPI Timing

To prevent data corruption when using multiple SPI devices on the same bus, care must be taken to ensure that they are only accessed from within the main loop, or from the interrupt routine, never both. Data corruption can happen when one device is chip selected in the main loop, and then during that transfer an interrupt occurs, chip selecting another device. The original device now gets incorrect data.

For the last several weeks, [Paul] has been working on a new Arduino SPI library, to solve these types of conflicts. In the above scenario, the new library will generate a blocking SPI transaction, thus allowing the first main loop SPI transfer to complete, before attempting the second transfer. This is illustrated in the picture above, the blue trace rising edge is when the interrupt occurred, during the green trace chip select. The best part, it only affects SPI, your other interrupts will still happen on time. No servo jitter!

This is just one of the new library features, check out the link above for the rest. [Paul] sums it up best: “protects your SPI access from other interrupt-based libraries, and guarantees correct setting while you use the SPI bus”.

Electric Go-Cart Has Arduino Brains

arduino powered go cart

Oh how times have changed. Back in the 30’s the VW Beetle was designed to be cheap, simple and easy for the typical owner to maintain themselves. Nowadays, every aspect of modern cars are controlled by some sort of computer. At least our go-carts are spared from this non-tinkerable electronic nightmare…. well, that’s not completely true anymore. History is repeating itself as [InverseCube] has built an electronic go-cart fully controlled by an Arduino. Did I forget to mention that [InverseCube] is only 15 years old?

The project starts of with an old gas-powered go-cart frame. Once the gas engine was removed and the frame cleaned up and painted, a Hobbywing Xerun 150A brushless electronic speed controller (ESC) and a Savox BSM5065 450Kv motor were mounted in the frame which are responsible for moving the ‘cart down the road. A quantity of three 5-cell lithium polymer batteries wired in parallel provide about 20 volts to the motor which results in a top speed around 30mph. Zipping around at a moderate 15mph will yield about 30 minutes of driving before needing to be recharged. There is a potentiometer mounted to the steering wheel for controlling the go-cart’s speed. The value of the potentiometer is read by an Arduino which in turn sends the appropriate PWM signal to the ESC.

[Read more...]


Get every new post delivered to your Inbox.

Join 91,410 other followers