ESP8266 as a Tape Drive

1976 was the year the Apple I was released, one of several computers based on the MOS 6502 chip. MOS itself released the KIM-1 (Keyboard Input Monitor) initially to demonstrate the power of the chip. The single board computer had two connectors on it, one of which could be used for a tape recorder for long-term storage. When [Willem Aandewiel] went to the Apple Museum Nederland in 2016, he saw one and felt nostalgic for his youth. He was able to get a replica, the microKIM, and build it but he wanted to use new technology to interface with this old technology, so he decided to use an ESP8266 as a solid state tape recorder.

One of the reasons the KIM-1 was so popular when it was released was that there was lots of documentation available. [Willem] used this documentation to figure out how the KIM-1 saves data to the recording device. An ATTiny85 is used to decode the pulse stream that the KIM-1 sends when saving because the timing was too tight to both “listen” and decode the bits as well as convert and store them. For loading programs, the data can be sent digitally as 1’s and 0’s to the KIM-1. This means that the ATTiny is only used for decoding and doesn’t have to re-encode the data.  Because of this, saving is slow, but loading is very quick.

To complete the project, [Willem] added four buttons, one each for rewind, record, play and fast-forward, and a screen so you can see which program is currently selected and can go from one program to another. As a nice throwback touch, record and play have to be pressed at the same time when saving. For more 6502 projects, check out this 6502 based DIY computer, or this 6502 built from discrete parts.

Continue reading “ESP8266 as a Tape Drive”

Eavesdropping With An ESP8266

In the old days, spies eavesdropped on each other using analog radio bugs. These days, everything’s in the cloud. [Sebastian] from [Hacking Beaver]  wondered if he could make a WiFi bug that was small and cheap besides. Enter the ESP8266 and some programming wizardry.

[Sebastian] is using a NodeMCU but suggests that it could be pared down to any ESP8266 board — with similar cuts made to the rest of the electronics — but has this working as a proof of concept. A PIC 18 MCU samples the audio data from a microphone at 10 kHz with an 8-bit resolution, dumping it into a 512-byte buffer. Once that fills, a GPIO pin is pulled down and the ESP8266 sends the data to a waiting TCP server over the WiFi which either records or plays the audio in real-time.

[Sebastian] has calculated that he needs at least 51.2 ms to transfer the data which this setup easily handles, but there are occasional two to three second glitches that come out of the blue. To address this and other hangups, [Sebastian] has the ESP8266 control the PIC’s reset pin so that the two are always in sync.

Continue reading “Eavesdropping With An ESP8266”

What Is It, R2? Have Something To Share?

Sometimes great projects keep evolving. [Bithead942] built himself an R2-D2 to accompany him when he goes a-trooping — but something didn’t feel quite right. Turns out, R2 was missing its signature beeping banter, so he made it more contextually responsive by implementing a few voice commands.

[Bithead942]’s main costume is that of an X-Wing pilot, and the replica helmet works perfectly; it already has a fake microphone — easily replaced with a working model — and the perfect niche to stash the electronics in the ‘mohawk.’

Even though the helmet has the perfect hiding spot for a circuit, space is still at a premium. Services like Alexa tend to be pretty accurate, but require WiFi access — not a guarantee on the convention floor. Instead, [bithead942] found that the EasyVR Shield 3.0 voice recognition board provided a suitable stand-in. It needs a bit of training to work properly(cue the montage!), but in the end it compares fresh audio commands to the ‘training’ files it has stored, and if there’s a match, triggers a corresponding serial port. It’s not perfect, but it most certainly works!

Continue reading “What Is It, R2? Have Something To Share?”

Teensy Script Plays Nintendo Switch, Strikes Out

The most recent of the Zelda franchise, Breath of the Wild, is known for its many, many puzzles.  One of the more frustrating ones involved bowling with a giant snowball at the top of a hillside.  [Bertrand] did not like this, so he cheated the system hacked the Nintendo Switch so that he “genuinely earned” a strike every time he played.  He achieved this by writing a script for a Teensy module that got him those sweet rupees.

The Teensy houses an Atmel 90USB1286 microcontroller.  When paired with LUFA software, it can emulate numerous controllers including keyboards, joysticks, etc.  It also handily has a Mini-B USB connector located on its rear, allowing it to communicate to the Switch with ease.  After confirming the hardware was compatible, [Bertrand] looked towards the software side noticing the similarity between what already existed and what he was attempting to accomplish.  He happened upon this in a Splatoon 2 fork that allows players to draw posts. 

In essence, it takes image files as input and emulates the controls and buttons to draw a 1-bit version of the image automatically.  This takes care of syncing the hardware as well as how to simulate the button presses.  But instead of reading an image file, it needed to take a custom script as the input.  This required starting from scratch.  The first logical step — of course — was to create a language similar to Logo, a name that surely brings back memories of the time of big hair and shoulder pads.  He only needed a handful of simple commands to control Link:

typedef enum {
	UP,
	DOWN,
	LEFT,
	RIGHT,
	X,
	Y,
	A,
	B,
	L,
	R,
	THROW,
	NOTHING,
	TRIGGERS
} Buttons_t;

Continue reading “Teensy Script Plays Nintendo Switch, Strikes Out”

TeensyStep – Fast Stepper Library for Teensy

The Teensy platform is very popular with hackers — and rightly so. Teensys are available in 8-bit and 32-bit versions, the hardware has a bread-board friendly footprint, there are a ton of Teensy libraries available, and they can also run standard Arduino libraries. Want to blink a lot of LED’s? At very fast update rates? How about MIDI? Or USB-HID devices? The Teensy can handle just about anything you throw at it. Driving motors is easy using the standard Arduino libraries such as Stepper, AccelStepper or Arduino Stepper Library.

But if you want to move multiple motors at high micro-stepping speeds, either independently or synchronously and without step loss, these standard libraries become bottlenecks. [Lutz Niggl]’s new TeensyStep fast stepper control library offers a great improvement in performance when driving steppers at high speed. It works with all of the Teensy 3.x boards, and is able to handle accelerated synchronous and independent moves of multiple motors at the high pulse rates required for micro-stepping drivers.

The library can be used to turn motors at up to 300,000 steps/sec which works out to an incredible 5625 rpm at 1/16 th micro-stepping. In the demo video below, you can see him push two motors at 160,000 steps/sec — that’s 3000 rpm — without the two arms colliding. Motors can be moved either independently or synchronously. Synchronous movement uses Bresenham’s line algorithm to plan motor movements based on start and end positions. While doing a synchronous move, it can also run other motors independently. The TeensyStep library uses two class objects. The Stepper class does not require any system resources other than 56 bytes of memory. The StepControl class requires one IntervallTimer and two channels of a FTM  (FlexTimer Module) timer. Since all supported Teensys implement four PIT timers and a FTM0 module with eight timer channels, the usage is limited to four StepControl objects existing at the same time. Check out [Lutz]’s project page for some performance figures.

As a comparison, check out Better Stepping with 8-bit Micros — this approach uses DMA channels as high-speed counters, with each count sending a pulse to the motor.

Thanks to [Paul Stoffregen] for tipping us off about this new library. Continue reading “TeensyStep – Fast Stepper Library for Teensy”

Virtual Analog Synth Brings Tunes To The Masses

Part of the problem with getting involved in a new hobby is the cost. Whether you’re learning to surf, weld, garden, or program, often the entry cost is several hundred dollars. We’re huge fans of things with low barriers to entry, though, so we were happy to see the latest project from [pappas.chris] which promises to introduce newcomers to the musical hobby of synthesizers for just over $20.

The build revolves around an STM32F7 microcontroller and offers a 6-voice virtual analog synthesizer. The build is expandable, too, so if you want to build on the STM platform with any other add ons the process is relatively simple. This might not be necessary for a while, though; the current iteration offers many features that a typical synthesizer would have. Exhausting the possibilities with this tiny device will take some effort.

Since the synth is built on a common microcontroller platform, it’s easily programmable too, which isn’t often a feature of commercial synthesizers. You can listen to a sample audio file on the project page, and get started building your own as well. If you don’t have your own keyboard to use with it, there are other DIY synths that cover that area as well.

SiFive Announces RISC-V SoC

At the Linley Processor Conference today, SiFive, the semiconductor company building chips around the Open RISC-V instruction set has announced the availability of a quadcore processor that runs Linux. We’ve seen RISC-V implementations before, and SiFive has already released silicon-based on the RISC-V ISA. These implementations are rather small, though, and this is the first implementation designed for more than simple embedded devices.

This announcement introduces the SiFive U54-MC Coreplex, a true System on Chip that includes four 64-bit CPUs running at 1.5 GHz. This SoC is built with TSMC’s 28 nm process, and fits on a die about 30 mm². Availability will be on a development board sometime in early 2018, and if our expectations match the reality of SiFive’s previous offerings, you’ll be able to buy this Open SoC as a BGA package some months after that.

Continue reading “SiFive Announces RISC-V SoC”