What is it ?
This unit is intented to give you various ways of generic i/o via the widely used usb bus.
It is designed in a modulat fashion: you have one mainboard to which you connect one or more extension
boards.
The mainboard establishes the link between your computer and the peripherials you want to access.
It also handles and prepares the collected data before it gets processed by either the host or the
peripherials. This way you not only save time and processing power on the host side, it will let you use
the box as stand-alone unit.
The extension boards can be of almost any type you can think of. Currently finnished is a generic userboard
which gives basic i/o functions like a/d inputs, led outputs, etc.
Planned are lots of more boards that either connect to the mainboard directly or serve as a extension
to other boards. Such an extension could be a driver-board to a output board to allow the control of
higher loads/voltages or to convert the in/output into different physical units.
What can it do ?
In the current state of development, the unit will give acces to :
- 88 analogue input channels at 8/10/12 bit resolution, depending on the used adc chip
- 64 analogue output channels, again at 8/10/12 bit depending on the used chip
- 64 digital inputs for use with switches, buttons and the like
- 64 digital outputs for use with led's, relays and the like
- 2 midi out jacks to send the fader/button data to you old, beloved midi equipment
- a user-interface consisting of a 2x20 character lcd display, a rotary encoder and a rs232 interface
The data can be processed by the box before it gets used by the host/peripherial. A good example of this
is the handling of faders: to reduce the noise (and thus communication bandwidth on the usb bus) the sampled
data gets processed by the box first. Fader values will get range-justified (that means, a floor and ceiling
value is cropped of the actual adc value) and compared to the old value. If there is even the slightest change
inbetween a certain time-span, it will get sent to the host. However, after that timespan the value
must differ a greater amount before it gets sent to the host. That way the bandwidth usage is highly reduced while
you still can have smooth fades without loosing values (and thus getting a jumpy output).
I cant stress it enough for the time beeing: the current "firmware" does not support all the wanted and
described features yet. It is just a alpha release to verify that the whole shabang works as expected!
What are future plans ?
Oh well, this is indeed a very good question. Generally i will implement what comes into my
mind and what people suggest me. Of course there are things i already have in my head, which are :
- a "rotary board" to control steppers and servos, and to gather data from rotary (quadrature) encoders
- of course a driver board for the userboard. that will allow to switch higher loads, partially use relays for
that and buffers/amplifies the adc/dac channels to protect the adc's on the one hand, and to make the dac
output usable with the commonly used 0..+10 volt lightning control voltage.
- then there will be a "connection board" to allow external hook-up of extensions, like adc's, buttons, etc.
oh, and of course a plug to connect to the good old cvbox ;-)
- some small versions of that all would be nice. just something scaled down a bit, so that it can be powered by
the usb bus itself and will fit on a single board. like a 44 channel adc + 32 digi in/out, smaller sram + eeprom
and nothing else.
- massive extensions to the firmware are planned. The mainboard offers plenty of sram and eeprom, so lets use that!
Nice will be some kind of byte-interpreter, so the user can load own programs into the box, either to process
data or to form some kind of stand-alone control program. everything should be user-settable, and of course
the box should support different, save-able setup's.
- as the time goes by, more i/o will come for sure. some multiplexing board would be cool to allow building of
small (and maybe larger) led-displays. eventually even multi-colored, who knows.
What do i need to get started ?
First of all, you need patience. Second, good skills in soldering are a must have.
The boards have a quite dense layout to be soldered by hand, but it is do-able. I tried to take care about
the fact that humans should solder that thing, but it is not the average "blink-that-light" electronics kit.
Some decent test equipment will be of great use, even a small and simple 'scope is better than just a multimeter.
Also a must have are good tools like sharp drills, a decent solder iron (preferably temperature-setable) and generally
a well lit, big enough worging space. But of course your mileage may vary, i can be quite happy with just the area
of a sheet of paper to work, if neccesarry .....
If you intend to make double-sided boards, you definatly need a uv-light exposure unit. and you need to mount the
layouts carefully. even half a milimeter difference between the upper and lower side of the pcb is too much.
If you ever have successfully done a single-board computer, as they were common around the 80's/90's, you should
have no problem in doing this project.
If you are not so experienced, but want to make a unit, listen to my advice: Get some hours of practise before you
start ! With that i mean: buy some cheap pre-drilled prototype boards (look at your local surplus dealer), solder,
some wires and a good iron. solder a short wire in every hole, until the soldering you do looks good. Do that again
the next day. Really, do it. It may sound useless, even annoying, but it is really a good exercise to practice that work.
You will be really unhappy if you trash a board after you already have soldered the most parts. And believe me, trashing
a pcb is simple: just put you iron for a too long time on a pad, and it will no longer stick on the board. Now move
the part which that pad is connected to and you will get a broken trace almost instantly. And of course, most
of the time you wont see that, except for the dysfunctionolatiy of the whole thing .....
If you have no chance of doing that your own, you may ask a friend or two if they can help you, or if they can make
a unit for you. Even if i clearly state in the license that no one should use this stuff commercially, im quite ok
with people taking a decent fee from their friends to make a unit, i know how much time one must spend to make them.
Of course, only as long as it doesnt get a bigger style business.... If you take the same money for assembling the unit
as the parts cost alone, i would say thats ok. But thats for sure the upper limit i accept, and again, only in very
small and limited series !
Next thing, and very essential is something that can burn the firmware into the pic processor. Maybe you have some
pic programmer already that can burn a 16c765 already, than you are fine. Probably you know someone who has such a
thing and can burn the pic for you. If anything fails, i can burn it for you. Contact me for that, but the procedure
is quite simple: put the pic, together with an _open_ envelope addressed to you and the postage fee needed, in another
envelope and send it to me. I will burn the pic as soon as possible and then send it back to you. If in doubt just
ask me what my local fees are to deliver the pic to you, so you know how many euros (and only euros !) you have
to put in the envelope. If you dont put enough or no money at all in the envelope: thanks for the pic my friend !
A nice postcard, gimmick or other usefull, small goodies are always welcome, but not required, of course.
Never send extra money beyond what is needed for the postage. It may get lost, that would be bad for booth of us i think.
As for the boards, im trying to find a decent shop that can make a bunch of boards at low-costs, eventually
paying as they go away. But thats future, and unsure. However, im am _not_ going to produce boards for you.
To this there is only one small exception: If i know you, and you want to develop drivers for that unit that
goes beyond "ok, im going to make another pd object fir that", you may have good luck that i will make boards
for you. Of course, only as long as there is need for a (specific) driver, and as long as i am willing to do so.
I dont say that because im too lazy, just developing and etching them would go quick with my equipment.
The problem are the chemicals used. I have to bring them away to a special point of acceptance after they are
used up. Not only that this costs some bucks (plus the price for the chemicals), but these chemicals are
really aggressive and for sure not good for our enviroment and the person handling them, me in this case.
I hope you understand that.....