DESTROYS Raspberry Pi! *
* Costs several times as much.
DESTROYS Raspberry Pi! *
* Costs several times as much.
Reminds me of unintended acceleration in Audi 5000s: drivers swore that the vehicle accelerated at full power while they had their foot hard on the brake. Of course, their foot was in fact on the accelerator.
Eventually a motoring journalist did the obvious experiment: what happens when you press both pedals at once? At speed or at rest, the brakes won.
Design was a factor: the brake and accelerator were sized and positioned so as to make this mistake easier to make in the Audi 5000 compared to many other cars.
As always with Android support durations: Android Support vs iOS Support which is in turn an update of Android Orphans: Visualizing a Sad History of Support
It's not that iOS is good -- compare it to how long Microsoft support a Windows version. It's that Android OEMs are shocking.
TXD/RXD aren't used as part of the 6-pin header: it's +, -, MISO, MOSI, SCK, RESET.
Once you've burned the bootloader using the 6-pin header, of course, you can switch to using USB or serial to program from the Arduino environment. And yes, if you're using serial to send down a new version of the code once every five minutes during development and you're also using that same serial port in your application, then moving jumpers around to redirect the serial could get old fast. I'm thinking you only need to do this on RXD -- if TXD goes out from your board to several places, I don't see that causing any problems.
Capacitor polarity: if I fear I've mounted one wrong, I flip the board: pin 1 (i.e. positive) is a square pad.
Mounting holes: good point!
Incidentally, the correct number of mounting points is three, because three points define a plane. If your enclosure flexes, and you have more than three screws holding your board down, then your board has to flex with it. If you have exactly three, then the board remains flat (though not necessarily level) when the enclosure flexes.
I agree with what you say about optoisolators. I'm using a 4N35, but you must bias the base of the optotransistor by tying it to ground with a 10kOhm resistor or so: without this the slew rate (and therefore the bit rate) is appalling.
Definitely can beat that: Dirt Cheap Dirty Boards
10 each 5x5cm PCBs $14. 10 each 10x10cm PCBs $25.
For a fairly wide range of cases, that's cheaper than OSHPark. Not as high quality, mind, nor as fast.
ExpressPCB comes with a schematic tool nowadays: ExpressSCH.
I agree that doing a schematic first is definitely a smart thing: the pin assignments on the CPU don't make any sort of sense that was evident to me, and the mapping between Arduino pins and CPU pins is similarly nonsensical. Doing a schematic gives you a much better chance of getting it all straight on your first try. (That's certainly the way I've done it.)
If your time is expensive and you will only be running a very small number of PCBs, consider using ExpressPCB's design tool, because it's easy to learn and it seamlessly connects to their board printing service. (Their service is expensive though, so this is only good if you're doing a few boards, and thus the labor you save will not be eaten up by the extra you pay per board.)
Your perception of size on screen is very different to real life. Print a paper dummy of your board. Try to avoid components with pins any denser than SOIC or 0805.
Consider putting a bridge rectifier just after your DC IN connector. Then the polarity of incoming power doesn't matter: the bridge rectifier sorts it out. (It costs you a small voltage drop, of course.) Or use a connector that's hard to get backwards, such as USB or USB micro.
Tie the RESET pin to Vcc via a resistor. A floating RESET pin may lead to random resets. (I made a PIC board that reset when you brought your hand near it.)
Make sure you put the crystal close to the CPU, and connect to it via short traces. Same with the two capacitors either side of the crystal.
Your first draft will contain errors. Expect to have to trouble-shoot these.
Tie any unused digital lines to places where you can populate LEDs for troubleshooting and diagnostic info.
You'll need to include the six-pin programmer header: your CPUs will arrive blank, without the Arduino bootloader.
When you receive your first blank board, first populate the bare minimum components needed to make the CPU run. Then connect to it from the Arduino software on your PC and burn the bootloader into it. (You'll need a programme.r) (If you've never burned a bootloader, re-burn the boot loader on your actual Arduino to make sure you have all the steps and setup correct.) Only once your CPU is running should you populate further components. This particularly applies if you're using the MOSI, MISO or SCK pins: once you connect these to other chips on your board (e.g. you're using them for SPI), you may be unable to burn the bootloader.
The RepRap project is an initiative to develop a 3D printer that can print most of its own components.
Until now, RepRap have been stymied by an inability to print any of the systems that control the printer. But, no longer! Simply print a mechanical computer to drive your 3D printer, and the goal of a self-reproducing device will be fulfilled!
Might be large, though.
relative light weight
In my experience, custom-made transit cases of this style (plywood panels with thin aluminium sheets over them and aluminium corner and edge pieces) are heavier and more expensive than a similarly sized Pelikan cases.
If you left out the plywood and used something like Ayres composite panels, you could save a lot of weight, though.
Dating site OKCupid does something like the negative of this:
This is not terribly different from the moderation system here at
Sometimes, too long is too long. - Joe Crowe