Damian Peckett

Software / Hardware / Bio Engineer

Read this first

Cinnamon ][ Lessons Learnt From Launching A Kickstarter Product

Cinnamon II the ultimate retro smartwatch
Cinnamon II The Ultimate Retro Smartwatch Kickstarter Project.

The Cinnamon II is an Apple® ][ compatible wrist watch. It’s features 32k of memory and a 1 Mhz MOS6502 virtual machine. It achieves hardware compatibility with the early 1977 and 1979 machines. It includes an Applesoft compatible BASIC interpreter, a MicroSD emulated drive and an onscreen keyboard display for user interactions.

The inspiration for the project came from Aleator777’s incredible Instructables project and my previous work on emulating the Apple ][ hardware on low speed embedded platforms. It also represented a fantastic opportunity for me to work with the ultra low power ARM Cortex microcontrollers.

This post is going to focus on the lessons I learnt while developing the Cinnamon II and what it takes to get a hardware product onto Kickstarter as a maker.

 Product Design Process

The first step of designing a

Continue reading →


Turning The Arduino Uno Into An Apple ][


Emulated Apple ][ Running On a Stock Arduino Uno.

I’ve always been fascinated by the early days of the computer revolution. Today we take tremendously powerful machines for granted but it was not always that way. As a personal project I decided to implement an early eighties era microcomputer on the Arduino Uno to demonstrate just how powerful even the most basic of our microcontrollers are today.

My microcomputer of choice was the Apple II, this was the computer that was responsible for making Apple Computer a household name, with over five million units sold it was one of the most popular microcomputers of the era.

The Apple II was originally designed in 1977 by Steve Wozniak. In order to reduce costs and to bring the computer into the mass consumer market, Steve made many unique design decisions that reduced the cost and complexity of the machine. One of these goals

Continue reading →


VGA On The Arduino With No External Parts Or CPU!

For a recent project I had to find a way to display text on a computer monitor using an Arduino Uno. There was a catch, the solution wasn’t allowed to use any third party shields and the Arduino was already busy running a cpu heavy application.

Arduino VGA Demo
Arduino VGA Demo On An LCD Monitor (Slowed Down).

Theres a few major ways to generate video on the Arduino Uno, firstly you could use a third party shield like the MicroVGA. The MicroVGA bundles a high speed cpu, some SRAM and a VGA connector all into a tiny board. All the heavy lifting occurs on the shield. The Arduino just supplies a dumb character stream. It’s an easy solution but it’s not particularly compact, cheap, or efficient.

There is a second common approach, using the Arduino itself to generate VGA signals. VGA is a relatively simple analog protocol, however it relies on very tight timings and uses a pixel clock of 25MHz

Continue reading →


Beat Detection On The Arduino

So it’s an undeniable fact that the Arduino is a nifty little gadget but can it do Digital Signal Processing? For a recent music event, I set out to design a circuit that would flash and synchronise a set of LEDs to a music beat.

The choice of the Arduino was mainly out of simplicity, I had a matter of about a day to come up with my solution and I didn’t feel like messing around with breadboards, it’s a lot faster to do a recompile than it is to add another amplifier stage to a discrete circuit.

So how do you detect the beat of a music signal? I did a bunch of research and the common consensus came down to one of three major approaches. The simplest was an envelope detector, simply take the absolute magnitude of the audio signal and pass it through a low pass filter and then threshold against some fixed value. This can be achieved in analog form simply as a diode, capacitor, resistor

Continue reading →

Subscribe to Damian Peckett

Don’t worry; we hate spam with a passion.
You can unsubscribe with one click.

bcsWpeNoS7MW3XPBeIf