Here is the first in a series of modular IOBlades that fit into Hammond boxes. There are two planned pcb sizes, 30mmx45mm (for Hammond 1551 F & G series) and 45mmx45mm (for Hammond 1551 R & S series).
These IOBlades will plug into (norizontally, not stacked vertically) the BaseBlade1 pcb (45mmx45mm for a Hammond 1551 R & S series). The BaseBlade1 has a propeller, eeprom, xtal, and 3V3 regulator, either on the pcb or via the stackable 1"x1" CpuBlade.
IOBlade1
PCB 30mmx45mm (~1.2"x~1.8") mixed smt and t/hole design
smt is restricted to simple parts including the microSD connector
Fits Hammond box 1551 F or G
Plugs into BaseBlade1 (Prop + Eeprom + Xtal) P0-11 or P16-27 expansion headers
microSD
4 Ports (miniUSB connectors) for...
3 Ports have series resistors and pullups to 5V and can each be used for...
PS2 Keyboard (via readily available adapter cables)
PS2 Mouse (via readily available adapter cables)
I2C (via adapter cables which may need splicing)
Wii Motion Plus (has gyro)
Wii NunChuck (has accelerometer)
Wii Nintendo Clasic Controller
Other possible interfaces (2 prop pins plus 5V & Gnd)
1 Port has series resistors and optional pullup or pulldown resistors via links, 5V link, and can be used for...
All of the above for the 3 Ports plus - Only if plugged into P0-11 (because currently USB software requires the use of prop pins P0 & P1)
USB non-compliant Master (use pulldown links & 5V link) (via readily available adapter cables)
To drive USB devices such as Bluetooth, etc
Using Micha's code
USB non-compliant Slave (uses 1 pullup for LS or FS, and disabled 5V) (via readily available adapter cables)
To connect to pcs, laptops, etc via VCOM drivers
Using BradC's or Micha's code
Here is a preview of the completed pcb
IOBlade2 (preliminary)
I am trying to make the one pcb have the option for either VGA or TV plus Stereo and PS2/I2C. If it does not fit, then it will be two different pcbs, one for VGA plus Stereo & PS2/I2C and one for TV plus Stereo & PS2/I2C.
PCB will be 30mmx45mm or 45mmx45mm (fits a Hammond 1551 F/G or R/S series)
Plugs into BaseBlade1 (Prop + Eeprom + Xtal) P0-11 or P16-27 expansion headers
VGA connector (shares pins with TV, so either/or)
AV4 connector with
Stereo circuitry
TV composite video (shares pins with VGA, so either/or)
1 Port with series resistors and pullups to 5V and can each be used for...
PS2 Keyboard (via readily available adapter cables)
PS2 Mouse (via readily available adapter cables)
I2C (via adapter cables which may need splicing)
Wii Motion Plus (has gyro)
Wii NunChuck (has accelerometer)
Wii Nintendo Clasic Controller
Other possible interfaces (2 prop pins plus 5V & Gnd)
I'm working on some similar boards, but on a much larger scale (the standard Gadget Gangster format, with DIP parts).
However, I see some synergies and maybe we can brainstorm some ideas so that there is a common format? Maybe even an adapter board to go from GG to Clusoblade?
I have in my shed a number of boards and each time I build one, I find it locks me into a less flexible solution. So I've gone right back to first principles for a motherboard, and I am thinking of a motherboard where all 32 of the prop pins can be used by other boards that are stacked on top.
So I have a design with 2 pins for serial download and 2 for the eeprom, and I'd like to even make pins 28-31 available to the boards above.
In theory this ought to be possible, because once the eeprom has been read on startup those pins are no longer needed.
But I would appreciate some help thinking this through.
Reset - this happens in three different ways:
1) Powerup
2) A pulse from the serial line (or the USB to serial chip)
3) The reset button is pushed.
Maybe we can detect all three of these with a capacitor that starts off discharged. Charge via a resistor from 3V3. A 914 diode, anode to the capacitor +ve, cathode to the 3v3 rail, and then when the power is disconnected, this capacitor then discharges back into the falling 3V3 line so it is ready to restart when power is reapplied.
Quick discharge from a transistor from the serial line, and also a quick discharge from the reset switch (these have dual switches)
If volts on that capacitor <2V then pins 28-31 are connected to the eeprom and serial lines. >2V and they are disconnected and can be used for other things (eg driving a memory chip!).
P28, 30 and 31 can be isolated with 3 gates from a 74HC125 package.
But I'm stuck with thinking about pin 29. I think this is a bidirectional pin so maybe a tiny relay is the best solution?
The CpuBlade has all prop I/O pins plus reset brought out on the 1"sq pcb. See the pic in the first post - click to enlarge and you will see the pin definitions. The top right side has Gnd, -Reset, P31, P30 in the format for propplug. An external reset switch could be plugged in to the GND & Reset pins. The top left side has 5V and GND. So all prop pins are brought out. On the pcb is a solder bridge link to protect or program the eeprom. Also is a solder bridge to use or bypass the onboard transistor reset circuit which can be used with other ttl serial type usb drivers which are cheap, in lieu of the propplug. And of course the 3V3 regulator from 5V (max is 6V input, but it will not then be compatible with other pcbs in the family.
On my RamBlade I reused all 4 pins. But, P30/31 made it difficult to download code, so RamBlade II will have the I/O pins as P30/31 and sacrifice a small SRAM speed to do so. I reuse P28 & P29. If you do as you say and isolate with a '125 and with the pullup directly on the eeprom SCL pin, the eeprom will effectively be isolated and SDA will be tristated, provided you don't switch the tristate lines while the eeprom is active. you could otherwise switch with an analog switch but I think this is unnecessary.
Thinking about synergies with these boards and the Gadget Gangster format, I am wondering about an adapter board?
The GG standard has the 32 prop pins, Vin (nominal 9-12V), 5V regulated, 3.3V regulated, and Gnd.
No Reset line though.
Looking quickly at the schematics for your boards, I see 5V but no 3.3V line. Are you doing local regulation on each board?
Also is the reset line essential to many of the boards?
I am thinking of the GG board with sockets for your format in the middle - bring 5V over, ignore 3.3V, and ignore Reset. Would this be compatible do you think?
Drac: Yes, all my pcbs have SOT23 3V3 low voltage regulators on them. Reset is connected (as is the solder linkable transistor reset circuit using smt parts) because I can reset between pcbs when they are daisy-chained.
And yes, a footprint on the GG platform would be a great idea. However, with that extra space there is a lot that can be added. I have not had the time to wrap my head around this platform and pcb space yet.
Just before anyone gets too far into this...
The 1"x1" CpuBlade is just a standalone prop with eeprom and pluggable xtal, its own 3V3 regulator, and designed for overclocking. It has solder linkable WP to the eeprom. It has solder linkable optional transistor reset, and an optional pullup on the reset pin. Solder linkable means close pads that can be shorted by a solder bridge (no space for headers and shunts here!).
It is designed (preferably, but the users choice) to have the socket underneath and pins on top. So, the baseboard is designed to have pins, not sockets. Why?... It allows you to plug connectors into the top of the pcb and the socket underneath can act as feet. In particular, the RamBlade II with RTC too, can be permanently soldered onto the extended pins to make a shallow RamBlade II module.
45x45mm (~1.8x1.8") for Hammond 1551 R or S box
BaseBlade1 (Has CpuBlade circuitry on pcb and/or can accept pluggable CpuBlade, and takes these pins to expansion ports; can be daisy-chained horizontally)
30x45mm (~1.2x1.8") for Hammond 1551 F or G box
IoBlade1 (microSD + 4 @ PS2/I2C/etc miniUSB expansion ports, 1 with USB master/slave possibility)
IoBlade2 (TV + TV2(1pin) + Stereo Sound + PS2/I2C/etc miniUSB expansion port + XP4 4 I/O pin expansion port w 5V & Gnd)
IoBlade3 (VGA + Stereo Sound + PS2/I2C/etc miniUSB expansion port)
There is a reset line available on the kit version right next to the PropPlug connections, it is possible to make use of this even though it wasn't planned for ;-)
It's not available on the USB version unfortunately.....
A good logical extension to the Prop Platform might be to put a reset pin in between P31 and Gnd on the top row (in the gap mid way between). Then a prop plug could connect to the Gnd-Reset-P31-P30 combo directly (or via a 4 pin male-male header).
or is that what you meant, Coley? I'm not familiar with finer detail of the kit version
No, that isn't what I meant but it is a much better suggestion, maybe Nick can adjust the design next time he does a production run, it would only need one hole adding ;-)
Comments
These IOBlades will plug into (norizontally, not stacked vertically) the BaseBlade1 pcb (45mmx45mm for a Hammond 1551 R & S series). The BaseBlade1 has a propeller, eeprom, xtal, and 3V3 regulator, either on the pcb or via the stackable 1"x1" CpuBlade.
IOBlade1
- PCB 30mmx45mm (~1.2"x~1.8") mixed smt and t/hole design
- smt is restricted to simple parts including the microSD connector
- Fits Hammond box 1551 F or G
- Plugs into BaseBlade1 (Prop + Eeprom + Xtal) P0-11 or P16-27 expansion headers
- microSD
- 4 Ports (miniUSB connectors) for...
- 3 Ports have series resistors and pullups to 5V and can each be used for...
- PS2 Keyboard (via readily available adapter cables)
- PS2 Mouse (via readily available adapter cables)
- I2C (via adapter cables which may need splicing)
- Wii Motion Plus (has gyro)
- Wii NunChuck (has accelerometer)
- Wii Nintendo Clasic Controller
- Other possible interfaces (2 prop pins plus 5V & Gnd)
- 1 Port has series resistors and optional pullup or pulldown resistors via links, 5V link, and can be used for...
- All of the above for the 3 Ports plus - Only if plugged into P0-11 (because currently USB software requires the use of prop pins P0 & P1)
- USB non-compliant Master (use pulldown links & 5V link) (via readily available adapter cables)
- To drive USB devices such as Bluetooth, etc
- Using Micha's code
- USB non-compliant Slave (uses 1 pullup for LS or FS, and disabled 5V) (via readily available adapter cables)
- To connect to pcs, laptops, etc via VCOM drivers
- Using BradC's or Micha's code
Here is a preview of the completed pcbIOBlade2 (preliminary)
I'm working on some similar boards, but on a much larger scale (the standard Gadget Gangster format, with DIP parts).
However, I see some synergies and maybe we can brainstorm some ideas so that there is a common format? Maybe even an adapter board to go from GG to Clusoblade?
I have in my shed a number of boards and each time I build one, I find it locks me into a less flexible solution. So I've gone right back to first principles for a motherboard, and I am thinking of a motherboard where all 32 of the prop pins can be used by other boards that are stacked on top.
So I have a design with 2 pins for serial download and 2 for the eeprom, and I'd like to even make pins 28-31 available to the boards above.
In theory this ought to be possible, because once the eeprom has been read on startup those pins are no longer needed.
But I would appreciate some help thinking this through.
Reset - this happens in three different ways:
1) Powerup
2) A pulse from the serial line (or the USB to serial chip)
3) The reset button is pushed.
Maybe we can detect all three of these with a capacitor that starts off discharged. Charge via a resistor from 3V3. A 914 diode, anode to the capacitor +ve, cathode to the 3v3 rail, and then when the power is disconnected, this capacitor then discharges back into the falling 3V3 line so it is ready to restart when power is reapplied.
Quick discharge from a transistor from the serial line, and also a quick discharge from the reset switch (these have dual switches)
If volts on that capacitor <2V then pins 28-31 are connected to the eeprom and serial lines. >2V and they are disconnected and can be used for other things (eg driving a memory chip!).
P28, 30 and 31 can be isolated with 3 gates from a 74HC125 package.
But I'm stuck with thinking about pin 29. I think this is a bidirectional pin so maybe a tiny relay is the best solution?
On my RamBlade I reused all 4 pins. But, P30/31 made it difficult to download code, so RamBlade II will have the I/O pins as P30/31 and sacrifice a small SRAM speed to do so. I reuse P28 & P29. If you do as you say and isolate with a '125 and with the pullup directly on the eeprom SCL pin, the eeprom will effectively be isolated and SDA will be tristated, provided you don't switch the tristate lines while the eeprom is active. you could otherwise switch with an analog switch but I think this is unnecessary.
The GG standard has the 32 prop pins, Vin (nominal 9-12V), 5V regulated, 3.3V regulated, and Gnd.
No Reset line though.
Looking quickly at the schematics for your boards, I see 5V but no 3.3V line. Are you doing local regulation on each board?
Also is the reset line essential to many of the boards?
I am thinking of the GG board with sockets for your format in the middle - bring 5V over, ignore 3.3V, and ignore Reset. Would this be compatible do you think?
And yes, a footprint on the GG platform would be a great idea. However, with that extra space there is a lot that can be added. I have not had the time to wrap my head around this platform and pcb space yet.
Just before anyone gets too far into this...
The 1"x1" CpuBlade is just a standalone prop with eeprom and pluggable xtal, its own 3V3 regulator, and designed for overclocking. It has solder linkable WP to the eeprom. It has solder linkable optional transistor reset, and an optional pullup on the reset pin. Solder linkable means close pads that can be shorted by a solder bridge (no space for headers and shunts here!).
It is designed (preferably, but the users choice) to have the socket underneath and pins on top. So, the baseboard is designed to have pins, not sockets. Why?... It allows you to plug connectors into the top of the pcb and the socket underneath can act as feet. In particular, the RamBlade II with RTC too, can be permanently soldered onto the extended pins to make a shallow RamBlade II module.
A small qty of pcbs are in fab right now...
1"x1" (~25x25mm)...
CpuBlade
MemBlade (512KB SRAM + microSD)
ClockBlade (RTC + coin cell battery)
AvrBlade (ATTiny84 + ATTiny85 with ADC)
45x45mm (~1.8x1.8") for Hammond 1551 R or S box
BaseBlade1 (Has CpuBlade circuitry on pcb and/or can accept pluggable CpuBlade, and takes these pins to expansion ports; can be daisy-chained horizontally)
30x45mm (~1.2x1.8") for Hammond 1551 F or G box
IoBlade1 (microSD + 4 @ PS2/I2C/etc miniUSB expansion ports, 1 with USB master/slave possibility)
IoBlade2 (TV + TV2(1pin) + Stereo Sound + PS2/I2C/etc miniUSB expansion port + XP4 4 I/O pin expansion port w 5V & Gnd)
IoBlade3 (VGA + Stereo Sound + PS2/I2C/etc miniUSB expansion port)
There is a reset line available on the kit version right next to the PropPlug connections, it is possible to make use of this even though it wasn't planned for ;-)
It's not available on the USB version unfortunately.....
Regards,
Coley
or is that what you meant, Coley? I'm not familiar with finer detail of the kit version
Coley
IoBlade4 (Servo)
Stackable...
Cluso's CpuBlade
Cluso's MemBlade (still untested)
Cluso's ClockBlade (still untested)
Cluso's AvrBlade (still untested)
Stackable/Pluggable...
Cluso's BaseBlade1
Pluggable...
Cluso's IoBlade2 (TV working, Stereo & Keyboard untested)
Cluso's IoBlade3 (VGA working, Stereo & Keyboard untested)
Cluso's IoBlade4 (still untested)
Cluso's IoBlade5
Cluso's Stepper BaseBoard (still untested)
The Stepper Driver pcb that plus onto the Stepper BaseBoard remains untested. A Pololu A4983/A4988 will work instead but is untested.
For more information, see the earlier posts in this thread and my new website www.clusos.com/home