Colorizer for ZX81 clone

[danjovic] is a vintage computer enthusiast and has several old computers in his collection. Among them are a couple of TK-85 units – a ZX81 clone manufactured by Microdigital Eletronica in Brazil. The TK-85 outputs a monochrome video output. And when [danjovic] acquired a SyncMaster 510 computer monitor, he went about building a circuit to “colorise” the output from the ZX81 clone (Portuguese translation).

The SyncMaster 510 supports 15kHz RGB video refresh rate, so he thought it ought to be easy to hook it up to the TK-85, which internally has the video and composite sync signals available. So, if he could lower the amplitude of the video signal to 0.7Vpp, using resistors, and connect this signal to one of the primary colors on the monitor, for example green, then the screen should have black characters with a green background.

DSCN5584-thumbBefore he could do any of this, he first had to debug and fix the TK-85 which seemed to be having several age related issues. After swapping out several deteriorating IC sockets, he was able to get it running. He soldered wires directly to one of the logic chips that had the video and sync signals present on them, along with the +5V and GND connections and hooked them up to a breadboard. He then tested his circuit consisting of the TTL multiplexer, DIP switches and resistors. This worked, but not as expected, and after some digging around, he deduced that it was due to the lack of the back porch in the video signal. From Wikipedia, “The back porch is the portion of each scan line between the end (rising edge) of the horizontal sync pulse and the start of active video. It is used to restore the black level (300 mV.) reference in analog video. In signal processing terms, it compensates for the fall time and settling time following the sync pulse.”

To implement the back porch, he referred to an older hack he had come across that involved solving a similar problem in the ZX81. Eventually, it was easily implemented by an RC filter and a diode. With this done, he was now able to select any RGB value for foreground and background colors. Finally, he built a little PCB to house the multiplexer, DIP switches and level shifting resistors. For those interested, he’s also documented his restoration of the TK-85 over a four-part blog post.

A VU-meter indicator for a Commodore 1530 Datasette

For present-day owners of vintage Commodore computers, keeping data and programs safe and backed up is top priority. Disk drive storage was more common in the US, whereas in Europe, the audio cassette was the preferred medium of storage.

The Datasette device was what allowed interfacing the cassettes to the computer. Tape head alignment was critical to successfully writing and reading data to the cassette. Some models of the Datasette came with a small hole above the keys, to allow access to the adjustment screw of the tape head azimuth position. Tweaking this while looking at a signal meter could help you improve the signal from a bad cassette and prevent load errors. [Jani] tried a commercial solution called “Load-IT” which had a LED bargraph, but it couldn’t help much dealing with tapes with very bad signals. So he built a signal strength meter for his Datasette. He calls it the VU-sette since it uses an analog style meter quite similar to the VU-meters found in many audio equipment.

The hardware is simple and uses commonly available parts. The analog meter is extracted from a Battery Checker sourced from eBay. An op-amp drives the analog meter, and another transistor drives a separate speaker. This can be used to listen in on the cassette, if the speaker is enabled via a push button. [Jani] first breadboarded and tested the circuit before ordering out prototype boards.

To test performance, [Jani] used FinalTAP, a tool for examining, cleaning and restoring digitized data cassette tapes (TAP files) for the Commodore 64 computer. The “LOAD-IT” version worked well with tapes that were in fairly good condition. But his VU-sette version allowed him to adjust the head more precisely and get out a much better read from bad tapes. While on the subject, check out this nice 7-segment bubble LED digital counter for the 1530.

Continue reading “A VU-meter indicator for a Commodore 1530 Datasette”

High Speed SSD1306 Library

[Lewin] wrote in to tell us about a high speed library for Arduino Due that he helped develop which allows interfacing OLED displays that use the SSD1306 display controller, using DMA routines for faster display refresh time.

Typically, displays such as the Monochrome 1.3″ 128×64 OLED graphic display , are interfaced with an Arduino board via the SPI or I2C bus. The Adafruit_SSD1306 library written by [Limor Fried] makes it simple to use these displays with a variety of Arduinos, using either software or hardware SPI. With standard settings using hardware SPI, calls to display() take about 2ms on the Due.

[Lewin] wanted to make it faster, and the SAM3X8E on the Due seemed like it could deliver. He first did a search to find out if this was already done, but came up blank. He did find [Marek Buriak]’s library for ILI9341-based TFT screens. [Marek] used code from [William Greiman], who developed SD card libraries for the Arduino. [William] had taken advantage of the SAM3X8E’s DMA capabilities to enable faster SD card transfers, and [Marek] then adapted this code to allow faster writes to ILI9341-based screens. All [Lewin] had to do was to find the code that sent a buffer out over SPI using DMA in Marek’s code, and adapt that to the Adafruit library for the SSD1306.

There is a caveat though: using this library will likely cause trouble if you are also using SPI to interface to other hardware, since the regular SPI.h library will no longer work in tandem with [Lewin]’s library. He offers some tips on how to overcome these issues, and would welcome any feedback or testing to help improve the code. The speed improvement is substantial. Up to 4 times quicker using standard SPI clock, or 8 times if you increase SPI clock speed. The code is available on his Github repo.

20 MPH IKEA Poäng Chair With Aerospace-Inspired Control Panel

Spending time at work sitting on the same drab chair can get boring after a while, even if you’re lucky to use a comfortable recliner. If you want to win the Office Olympics, you need something with a bit of pep. [StuffAndyMakes] wanted to build a completely ridiculous motorized office chair. A couple of years in the making, and he’s ready to unleash the 20 MPH IKEA Poäng chair with aerospace-inspired control panel!

The OfficeChairiot MkII, as he has christened it aptly,  is a motorized IKEA Poäng comfy chair. It uses off-the-shelf scooter parts to roll around : Batteries, motors, chains, sprockets, tires, axles, and  bearings. The OfficeChairiot MkII is basically three main parts – the Chassis, the Control Panel and the comfy chair. One of the main parts of the chassis is the motor controller  – The Dimension Engineering Sabertooth 2×60 motor controller – which is also used in beefy battlebots. It’s capable of carrying 1,000 lbs. of cargo and can feed the drive system up to 60 amps per motor channel .

The brain on the chassis is an Arduino Mega which can be controlled via a hand held remote. The Mega also receives data from various sensors for motor temperature, power wire temperature, ambient air temperature, wheel RPM’s, Accelerometer’s, seat occupancy and GPS data. The firmware is designed to ensure safety. The hand held remote needs to ping the on-board Arduino twice a second. If it doesn’t hear from the Remote for whatever reason, the unit stops and turns off the lights.

The Control Panel is one crazy collection of switches, buttons, displays, a missile switch, a master key switch – in all over 30 switches and buttons. All of the devices on the panel are controlled via a second Arduino Mega, helped by a custom multiplexer board to help connect the large number of devices.

Here are a few more features the OfficeChairiot MkII boasts of :

  • 1.5 Horsepower from two 500W scooter motors
  • 20W stereo and MP3 sound effects
  • Weapons sounds, 15 different fart sounds, car alarm, horns, etc.
  • All LED lighting: Headlights, turn signals, 88 undercarriage RGB LEDs
  • Plenty of homemade PCB’s
  • Custom built aluminum body panels (with help from Local Motors, the people behind the 3D printed car)

Aside from the handcrafted wood chassis and circuits boards and firmware, it’s all off-the-shelf stuff. [StuffAndyMakes] plans on open-sourcing the schematics, C++ code and CAD drawings – so post some comments below to motivate him to do so soon. We’d sure like to see a few more of these being built, so that Office Chair racing becomes a competitive sport. Check out the video after the break.

Continue reading “20 MPH IKEA Poäng Chair With Aerospace-Inspired Control Panel”

Training Fish to feed Themselves

We’ve featured quite a few aquarium and fish feeder hacks on our blog. [RoboPandaPDX] thought of taking it up a notch and make an interactive fish feeder. He built a Fish feeder that train’s them to feed themselves.

A copper bar hangs from the middle of a metal cylinder – much like a bell. The end of the bar has a fish lure. When a fish pushes the lure, the copper bar touches the metal cylinder and  closes the circuit. This signal goes to an Arduino. To catch the attention of the fishes and to “teach” them, an RGB LED is used. The fish need to figure out that the feeder will dispense food only when the LED is ON and the Lure is pushed. If the fish figure that out, and push the lure when the LED is on, a servo is activated which pushes the feeder to deliver 1 unit of fish food. While at it, he added a couple of bells and whistles. A buzzer to indicate when the Lure switch is closed and a 2 line LCD shows how many times the switch has been activated and how long the program has been running.

A Sparkfun  open logger stores the hit count and the minutes and seconds of the hit for data analysis later on. The good news is that it seems to be working. The current code activates the feeder for 30 to 60 minutes every day, which is indicated by the LED. At the end of 9 days,  [RoboPandaPDX] found that the goldfish would hit the Lure when the LED turned on, and then turn around to face where the feeder would dispense food in to the tank. His next plan is to put up some obstacles along the path to see if the fish learn some new tricks. His schematic looks a little iffy (the Lure switch is connected to the RST pin of the Arduino), and it seems he cannot remember why he ever did that. He’s happy that it works though, but we’re sure that’s not the right way to wire it up.

[RoboPandaPDX] is looking for suggestions on improving his interactive feeder, so if you have any, do add them in the comments below.

If you need some more fish feeder ideas, check out this and this that we blogged about earlier.

Resource monitoring solution

Electricity, Gas and Water – three resources that are vital in our daily lives. Monitoring them using modern technology helps with conservation, but the real impact comes when we use the available data to reduce wasteful usage over time. [Sébastien] was rather embarrassed when a problem was detected in his boiler only during its annual inspection. Investigations showed that the problem occurred 4 months earlier, resulting in a net loss of more than 450 cubic meters, equivalent to 3750 liters per day (about 25 baths every day!). Being a self professed geek, living in a modern “connected” home, it rankled him to the core. What resulted was S-Energy – an energy resource monitoring solution (translated) that checks on electricity, gas and water consumption using a Raspberry Pi, an Arduino, some other bits of hardware and some smart software.

[Sébastien] wanted a system that would warn of abnormal consumption and encourage his household folks to consume less. His first hurdle was the meters themselves. All three utilities used pretty old technology, and the meters did not have pulse data output that is commonplace in modern metering. He could have replaced the old meters, but that was going to cost him a lot of money. reflective-power-meter-sensorSo he figured out a way to extract data from the existing meters. For the Electricity meter, he thought of using current clamps, but punted that idea considering them to be suited more for instantaneous readings and prone for significant drift when measuring cumulative consumption. Eventually, he hit upon a pretty neat hack. He took a slot type opto coupler, cut it in half, and used it as a retro-reflective sensor that detected the black band on the spinning disk of the old electro-mechanical meter. Each turn of the disk corresponds to 4 Watt-hours. A little computation, and he’s able to deduce Watt-hours and Amps used. The sensor is hooked up to an Arduino Pro-mini which then sends the data via a nRF24L01+ module to the main circuit located inside his house. The electronics are housed in a small enclosure, and the opto-sensor looks just taped to the meter. He has a nice tip on aligning the infra-red opto-sensor – use a camera to check it (a phone camera can work well).

Continue reading “Resource monitoring solution”

Putting new into the old – a Phonograph upgrade.

[smellsofbikes] recently came into possession of a 1970’s “stereo radio phonograph” cabinet consisting of a vinyl record player, AM and FM radio, and eight track tape player. The radio worked, the turntable didn’t sound too nice, and the tape player didn’t work at all. A new needle fixed the turntable, but the eight-track was in bad shape. So he replaced the tape player with a BeagleBoneBlack which plays streaming internet radio.

Hopefully, this fix is temporary, since he has carefully disconnected the tape player connections in the hope of fixing it soon. The swap out involved a fair bit of engineering, so he’s split his build log into several bite sized chunks. The first step was to set up the BBB, upgrade it and add in all the network and audio related stuff. Audio on the BBB is available only via the HDMI port, but [smellsofbikes] had a USB soundcard handy, so the next step was setting that up. He installed mpg321 – the command line mp3 player and set it up to play music streaming from somafm. Next up was getting some scripts and programs to run automatically during system bootup. The final part of the setup was adding a WiFi router as a repeater connected to the BBB via an ethernet cable. He could have used a tiny WiFi USB dongle, but he already had the router lying around, and he wanted to dedicate USB to audio functions alone, and use the Ethernet port for Internet.

He then worked on identifying the wires that go from the tape player to the amplifier, spliced them, and hooked them up to the audio sound card on the BBB. With this done, the upgrade was more or less complete – the system played streaming music and stations could be switched remotely (via SSH to BBB). [smellsofbikes] reckoned it would be nice to use the existing controls in the phonograph cabinet to control the internet streaming music, instead of controlling it via a remote computer. The cabinet had 4 indicator lamps that indicated which track was being played and a button to switch between tracks. He removed the old indicator panel and put in a fresh PCB, designed in KiCad and cut on his LPKF circuit board plotter. An aluminum knob machined out of hex bar-stock works as the new track change button. At this point, he called it a wrap. The BBB and Asus router go inside the cabinet, and the old (non-functional) tape player is put in place. Quite an interesting build, and we look forward to when he actually gets the tape player working. [Alan Martin], aka “The Most Interesting Engineer In The World” has told him that “it is a moral imperative that you repair the eight-track and get it working”. [Alan] has promised to send [smellsofbikes] a suitcase full of brand new, still in their plastic wrappers, eight-track tapes when he gets it working.