Hi guys,
I know I’m new to HACMan, though in fact I’ve been working on an open
development hardware project called Libby8: http://sites.google.com/site/libby8dev/libby8
as a member of www.flythe.coop since January.
You’re welcome to take a look at Libby8 and I hope to do a proper
intro at HACMan for it at some point in the future. For the moment
though I’d like to make a proposal for a simpler, collaborative
development project which I’m calling the BitVideo Shield. This is a
fairly long post and I don’t intend to put it up on a web site (e.g.
Libby8dev) until I get some feedback, at least until after Wednesday.
So, here goes:
Introduction
Inspired by the Wired article “The New Industrial
Revolution” (2010.03.10p76) and [2], the BitVideo Shield is an
excercise in collaborative development for the arduino platform. The
idea is to collaboratively develop a simple arduino shield for which
there is a market and sell it, distributing the profits amongst
collaborators fairly according member’s involvements. We probably
won’t make much money from it (that’s not the point), but we’ll learn
something.
OSH Collaborative Development
The company DiyDrones have developed a business model called the Forty
Percent Model. The basic rule is: “Transparency about costs and a
choice between paying us to make the product or doing it yourself.”
Let’s try using it for the BitVideo shield.
The 40%Model is pretty simple. You publish the schematics and source
code (so it’s open) and also the BOM and charge a markup of 66%. A
markup of 66% means that if it costs us £1 to produce and ship then it
costs the buyer £1.66. Our profit is 40% then. People who want one
have to weigh up whether to make one themselves or buy one from us,
which will be cheaper.
We’ll share our 66% markup per unit between collaborators according to
peer-reviewed proportional effort. This will be a nichemachines
project for organisational purposes. I have an idea for how to handle
derivative projects and turning ‘competition’ into collaboration.
Wednesday’s Hackman video will talk about that.
If you want to collaborate, the best time to start is the FlyTheCoop
Coworking day at MadLab on Wednesday - I’ll have some initial hardware
I’ll have bought from Farnell and you’ll get to take it away.
BitVideo Shield
We’ll start with a simple project which has a market. I’m assuming
you’re aware of arduino[3]. The company ‘Batsocks’ created a composite
video generator called TellyMate Shield. It’s a lot of fun and uses an
AtMega328 to produce a text-mode, inverse monochrome video unit which
communicates with an arduino via its serial port. They provide (like
good OSH developers) the schematics and source code.
I did a bit of thinking and I figure that we can build something
better for the same price: The BitVideo Shield. Here we use an
AtTiny44 (£1) and an 8K serial SRAM chip (69p); which together at the
same quantities is cheaper than an AtMega328 (£2+) and has a smaller
footprint.
Here’s the theory: 8K of serial SRAM has pretty poor performance for
random access, but it’s good for serial access; which means it’s
viable for a bitmapped video generator. The Microchip 23A640 can run
at up to 16MHz and if we run it at 8MHz we’ll be able to output 256
bits in 32µs, about half of a composite video scan.
<-----------------------64 us ---------------------->
_ _ _ _ _ _
^ | | | | | | | | | | | |
1v| | || || || || || |_________
v ____|(12us) (32us) (16us)
(4us) <- Video data ->
Sync front porch back porch.
A 16MHz AtTiny44 can provide an output which toggles at up to 8MHz;
and this can generate the serial clock for the Video. It can also
provide a PWM output which we can automatically use to generate a 4µs
Sync pulse. This means we can generate video with little CPU
intervention.
We interface the AtTiny to an arduino via its standard serial port and
implement an interrupt-driven software serial port on the AtTiny.
We’ll be able to support a baud rate of up to 115.2KBaud, since each
bit time will then be about 8.7µs which is enough time to allow for
latencies from the video software. The arduino sends serial data;
which can be plain text; or text and graphics commands to the BitVideo
Shield.
Finally, the main code interprets the serial data and writes video
data to the serial SRAM using its serial port in software clocked SPI
mode. I estimate we can output at least 10Kchar/s which is at least as
good as Telly Mate.
Advantages
The BitVideo shield is a cheap peripheral, and therefore has a
potential market. The arduino user-base is currently growing at about
50K per year and there are a number of video applications for arduinos
and avr devices. However BitVideo shield has these advantages:
- At about £15.50 per unit BitVideo shield will be in the same
ballpark as a normal arduino (much cheaper than many of the
offerings). - BitVideo supports true bitmapped video (TellyMate only supports
character video). There is a VGA shield, but it will be significantly
more expensive than ours (the same applies to LCD shields, they’re
more expensive). - BitVideo shield can support line drawing and plotting in firmware.
- BitVideo shield can support user-defined graphics in EEPROM (we’ll
support 16 of them). - We can support true video (black on white) whereas TellyMate (and a
number of other Avr video solutions) only support white on black. - We can support uniform pixels (Telly Mate has 8x9 pixel characters,
but the 8th pixel on eveery character is double-width, making graphics
harder - they explain that the AVR SPI hardware can’t eradicate that
problem, but we can on the Bit Video Shield).
Technical Issues
I thought of a number of technical issues BitVideo needs to solve -
the most obvious ones being how to prevent screen corruption when you
read SRAM, but you don’t want to output it to the screen and how to
generate the automatic dot clock as well as the software SPI clock
(they’ll come out of different pins on the AVR and into the same pin
on the SRAM). My current feasibility studies imply these can all be
solved.
Conclusion
BitVideo is an exercise in hacker collaboration; not a world-shaking
multi-million pound profit product. I’ll produce a video to show at
HackMan on Wednesday which will contain all of this and some more
details on the circuit and the feasibility software I’ve written so
far.
I’m interested in seeing who’s up for getting involved. There’s
opportunities for:
- People with EDA and hardware expertise.
- People with embedded software development expertise.
- People with arduino expertise.
- People who can set up a simple sales site for BitVideo shield.
- People who can help with any of the business aspects.
Collaborators will get a ROI based on the effort they put in. The
development should be in the region of <200 hundred developer-hours,
which means we’re unlikely to make much of a profit - it’s an
experiment to see how the concept could work.
Let me know what you think!