Workshopping £1.40 Arduino-Compatible (£3.05 including USB!)

Thanks, Crossroads.

I did wonder whether wiring to ARef was an 'override' of the default voltage and whether GND just made its way through the chip internally. For Analog input sketches (which I haven't tried yet with this board) I would have had a nasty surprise.

I'm not sure what you're saying about Arduino D14-19 (which is I think the alter-ego of the Analog pins). Are you saying I can at least use them as digitals without ATMEGA PINs 20/21/22 being connected, or is there an interaction with the Analog reference pins even then?

So far I haven't needed to modify the signature information within the IDE to program these chips. I have seen similar instructions when you need to flash the chips, but once the bootloader's on there (I use Optiloader for this), it seems to behave fairly well just treating it as an Uno. Maybe I will uncover some nastiness later when I start using different parts of the board because the signature's wrong. I'll keep an eye out and I have your instructions to follow up on just in case there are weird results.

Thanks for all the suggestions so far, everyone. Really valuable.

CrossRoads:
Will you have any connections to 20/21/22, Avcc/Aref/Agnd, to support analog functions, or to use D14-D19?

AVCC and AGND are required for the processor to function correctly. I vaguely recall that a bypass capacitor is recommended. AREF can be left unconnected.

This is how I start every project I do with a '328.
I often leave off the Power LED.
Crystal & caps you're replaced with resonator, that's fine.
0.1uF/100nF cap are essential for Vcc, Avcc, and Aref if you want to use the internal ADC and get good results.

100uF, maybe get by with another 0.1uF if you have power coming in via CP2102 so its fairly clean.
IO, connect up what need.

Thanks for the diagram, CrossRoads. Really useful for discussion.

Although the two caps on the power lines look like they're in parallel (equivalent to a larger capacitor), I guess the main thing is that they are near the respective pins, hence they are actually doing a different job.

Is it reasonable to squash them into a single cap, assuming that cap is on the path between the pins and the power source. I'm thinking to just run some lines over the top of the ATMEGA from VCC and GND to connect AVCC and AGND, given that VCC and GND are already 'protected' from source variation by a decoupling capacitor. I'm aiming at the fewer tracks and complexity the better, but don't want to make unacceptable/idiot compromises.

I was a bit confused by the line starting...
"100uF, maybe get by with"
...as I didn't know what part of the circuit it referred to. I wonder if some words went missing on this line when posting.

Hi

so whats the point of "shrimping" ones laptop? does the arduino interact with the OS or is it basically just powered from the laptop and used to do fun looking things?

I definately agree with helping kids to learn how to do electrical wizardry, and freecycle is a good place to start for those who are hard up, i wish the had it in Spain,

so whats the point of "shrimping" ones laptop?

Ideally, the laptop's OS is indeed interacting with the Shrimpduino, although some might just use the laptop to do the programming and experimentation to build standalone devices. Examples of behaviours actively combining the laptop and the arduino which could be fun for different people...

  • Animation using 5 frames of a scanimation with replaceable printouts - a servo moving the transparency an exact amount to create a zero energy display of something - you have mail, days since last checked facebook, tomorrow's weather, an animal motion (Moire animated illusion like - YouTube)
  • System which skips tracks when you throw something at the laptop, or similar designed interaction (accelerometer + Rhythmbox/MPD)
  • LCD which displays the current score from Court One at wimbledon (a friend of mine is obsessed with this and can't stop checking her phone)
  • Servo-actuated Popup-book mechanisms which trigger, for example, a spider with red LED eyes to leap from behind the screen when someone touches trackpad/keyboard (a donor's kids are threatening to come along and build this one)
  • Proximity detection system which unlocks the laptop when you walk away from it using ultrasonics to judge your presence
  • Keylogger which causes every key typed to be illuminated as a single letter on the back of the laptop [logkeys + HL1606] (using the LED array demonstrated in the video in the first post)
  • Etch-a-sketch dials for painfully-complicated vector authoring in GIMP
  • System requiring you to elevate your heartrate every 2 hours, else locks the desktop
  • Dedicated control for something important to the user, e.g. a flag mechanism for switching between preferred keyboard/interface languages user-sessions of boyfriend vs girlfriend
  • Plenty more...

The ideal thing is that these are ultra-personalised, with behaviours which suit just you, and it's hard to anticipate what these might be until we run the workshops. These are just examples which are variously crazy or experimental. Technology empowerment is the central concept. Make it do what YOU want. Along the way, we want the Laptop to develop a personality and value of its own, beyond its scrap value, by designing behaviours where its CPU speed and memory size are irrelevant to what it's achieving compared to the relevance and expressivity brought to it by the designer/inventor/engineer.

Simply using the laptops as a teaching studio and providing for machines we can loan or gift to learners is relevant where they don't have access to a computer, or at least don't have access to a hackable one, but still want to experiment with coding. This is surprisingly common.

What would you build?

What is the LED device pictured as your avatar?

@cefn, you want two caps, one near each pin. They are only drawn near each other on the schematic for convenience.

C7, the 100uF, 10uF, 1uF cap, whatever, is for filtering the power from the CP2102 module.

http://www.ebay.com/itm/USB-2-0-to-TTL-UART-6PIN-CP2102-Module-Serial-Converter-/251092419454?pt=LH_DefaultDomain_0&hash=item3a7646437e

You will cut the trace leading to the RST pin and wire the pin to the DTR hole to allow software controlled reset during sketch downloads.

The C3 cap might offer enough power line decoupling to not need C7, experiment & find out.

@florinc, there was a video link in the first post which gives you an idea of what that device is. You guessed it, a Shrimped Laptop (eleven years old)...

CrossRoads, yup, it's time to experiment. Everything seems to work superficially, but we'll find out more and iterate as people build them into their own projects.

For all those watching this thread, (especially following my presentation at Preston Raspberry Jam yesterday), I will be keeping the latest best-known circuit layout up to date following what is learned through experiments and workshopping at the URLs below. Those logged into the forum will be able to see the latest layout at the time of writing as an attachment below this post. Visit the Laptop Shrimping project to keep up to date with laptop scrimping, pimping and general hacking exploits, such as this article just published on the Safari Books blog.

Stripboard layout http://cefn.com/shrimping/Shrimpduino_bb.png
Schematic http://cefn.com/shrimping/Shrimpduino_schem.png
Fritzing file http://cefn.com/shrimping/Shrimpduino.fzz

I believe you need Clear to Send (input to the FTDI Basic,and not pulled Hi or Lo on the FTDI Basic board) connected to GND as well, lets th FTDI Basic know the slave device is ready to receive data.
May get erratic operation otherwise if left floating.

Thanks for the heads-up, Crossroads. As mentioned earlier we're using a CP2102 in the place of an FTDI to save on cost. I don't know if the same is true of the CP2102. I'm using FTDI in the Fritzing diagram because the parts editor seems to be so buggy and problematic. At some point I'll have to edit a CP2102 part from scratch to make this diagram more accurate.

Ah, CP2102. Yes, no CTS input there to mess with.

I've updated the design to accommodate for...

  • The fact I can now get 16MHz Crystal and two 22pF Capacitors cheaper than a Ceramic resonator from Tayda Electronics
  • A perceived need for both rapid response and high capacity decoupling leading to 3 decoupling capacitors - from discussion with others, but could be overkill, so any other ideas are useful

The main benefit of this "Shrimp" design is the ease of transfer for those workshopping with 'Arduino compatibles' taking projects from breadboard-with-jumpers, through breadboard-with-length-cut-wires-and-components, to neat stripboard, meaning you can go from tabletop prototyping into something more robust without changing the circuit at all. This is something I hope will help delegates to the workshops.

I'm passing on the parts for these kits (including USB connectivity) for £5 now, which also covers my postage and handling costs. If you were to source these yourself, buying in the largest bulk volumes available, and barring postage costs (which tend to zero when you buy a million), you could make up Arduino-compatible component kits (including USB connectivity) for around £3.50

Get in touch if you're interested in sourcing these component kits for community workshops and I'll look into setting up something via eBay.

Now I need plenty of ideas for 'extension' kits which will be sets of components and code which permit the shrimp to be made into different things, like a "Milton Bradley" Simon game, a toilet-seat-not-down alarm, a Stylophone, and so on. Ideally only a couple of quid for parts for each extension kit. Really keen to see if this can help with the UK's transformation of it's ICT curriculum away from Microsoft and towards actual Programming.

Welcome your feedback.

OK, eventually I noticed the Electrolytic capacitor was in the 'exploding' configuration. I've been post-processing the Fritzing diagrams in Inkscape to make the layouts more palatable, and had re-introduced an error. The Fritzing reference should be right, though.

You should add a diode across the 10K resistor, [edit] Anode Cathode to power and Cathode Anode to Reset, will keep the chip from attempting to go into High Voltage programming mode

Atmel AVR042 AVR Hardware Design Considerations
Section 3.

I've not found the cap to ground to be needed. Likely the DTR cap makes it stable enough.

Also put a 100nF cap from Aref to Gnd, will be needed for stability if one is doing any analog measurements.

CrossRoads:
You should add a diode across the 10K resistor, Anode to power and Cathode to Reset, will keep the chip from attempting to go into High Voltage programming mode

Will any diode do for this job, or is it important to have a specific breakdown voltage? An ESD diode is mentioned, but I gather this is a description of its role rather than a type. I'm wondering about a 5.1V Zener diode wired in the direction you describe. Does that sound sensible? Here's a link to a possible part for the job...

CrossRoads:
I've not found the cap to ground to be needed. Likely the DTR cap makes it stable enough.

Initially I couldn't figure out which cap you found wasn't needed, but looking at the datasheet http://www.atmel.com/images/doc2521.pdf in more detail I can see figure 3.1 with a recommended circuit including the suggested diode and an extra cap. I think you're saying leave out the extra cap from their circuit as it's not needed.

CrossRoads:
Also put a 100nF cap from Aref to Gnd, will be needed for stability if one is doing any analog measurements.

I'll add this one.

I find I'm adding a lot of extras, now. Are there any bits I can sensibly remove from the circuit as it stands for a general purpose Arduino compatible? Especially wondering about the 10microFarad electrostatic from VCC->GND. I'm a bit vague about the circumstances under which it would do me any good, given there are already 100nF caps placed between VCC-GND and AVCC-AGND.

Actually, I got the diode backwards - should be anode to Reset, Cathode to Power. I'll fix my earlier post.
Want any spikes on the Reset line dissipated to the power line.
Diode like 1N4148 will do.

The 10uF Electrolytic (usually aluminum electrolytic) helps with any big current ripples, while the 100nF help with higher frequency stuff and short term current demands.

You don't have any extras to remove. The last diode & cap get you up to the minimum for an Arduino.

CrossRoads:
Actually, I got the diode backwards - should be anode to Reset, Cathode to Power. I'll fix my earlier post.

That makes loads more sense, thankyou. Based on the original description I figured it could only be doing something useful via reverse breakdown.

CrossRoads:
Want any spikes on the Reset line dissipated to the power line.
Diode like 1N4148 will do.

Great, I have all the relevant info to order stuff now.

CrossRoads:
The 10uF Electrolytic (usually aluminum electrolytic) helps with any big current ripples, while the 100nF help with higher frequency stuff and short term current demands.

OK, so I still need both.

Within the workshop I think I'll introduce a functioning (programmable) circuit without all the extra components, (just flashing a LED), then later (and before transfer to stripboard or working with servos etc) introduce all the protective components (caps and diodes) with an explanation of various forms of noise spikes, transient load and ESD which are likely when deploying in the field.

Hopefully then the extra 5 components won't freak people out too much when introduced under the heading of 'protection'. My aim is to have as little 'black magic' in the design as possible - the one perceived weakness of the nice shiny blue boards is that they are beyond novices to interpret and understand, compared to something you've wired yourself :slight_smile:

CrossRoads:
You don't have any extras to remove. The last diode & cap get you up to the minimum for an Arduino.

Hurrah. Time to crack open a celebratory beverage (6pm here in UK).

An update on the Laptop Shrimping project. We now have a URL at http://shrimping.it and Twitter @ShrimpingIt

The #Shrimp design is fairly stable now thanks to many contributions from people who know stuff.

I've personally distributed about 30 kits of parts. Some are taken with a breadboard, some with USB-UART adaptor, and some taken by hobbyists to put onto stripboard at home. However, the most exciting direction is feeding in to the National Curriculum and STEM subjects here in the UK.

Thanks to @teknoteacher for making me realise something like the #Shrimp was needed at Hackademy "Inside the Machine" Hackademy ‘Inside The Machine’- Oct 26th 2011 – teachcomputing.wordpress.com Thanks to @oomlout for early discussions and support and thanks to @tshannon for hosting and supporting Shrimp makers at Howduino. Thanks to @jonachamberlain @patlink72 @iMartyn and his Mum for testing out the first boards and working with me to think of decent expansion kits. Thanks to Mike Cook for all his experimentation with a clone of the MB Games 'Simon'. Thanks to @monsonite and @simonmonk2 for suggestions. Thanks to many many others including those in this thread. Sorry if you've helped I didn't credit you by name but I've had a huge amount of fun and engagement with loads of people.

There's a lot of excitement about being able to actually solder together your own Arduino-compatible. Thanks to Fignition, and @ManchesterBudo for helping me realise how important this is to people - it's now become central to the project.

Essentially, this is developing into a classroom pack which teachers should be able to progressively introduce to pupils, with a single lesson to build the circuit and program it on breadboard, another lesson to prototype established project designs from 'expander' kits (which include some extra sensors and actuators for a specific project), and a final lesson to solder onto stripboard and test on battery. At any point, it is feasible for individuals to take a direction towards their own personal project/invention/game/alarm/joke/toy what have you. We're just offering a kind of template for leading people through this.

All along the way, you're working directly with incredibly cheap components and using the same 'mental model' from the moment you start building your Arduino-compatible, right the way through to prototyping your own project circuitry - one advantage of not using the blue board, at least for education purposes. There's a huge crossover with Design and Technology subjects, and it's loads of fun designing, choosing and packaging glossy buttons, displays etc. even for those who don't want to change the circuit or the program.

Here in Morecambe the rough plan is to make the components for a Shrimp available for £3 at workshops, with a returnable deposit of £2 for the USB-UART adaptor (which you may not need when you've finished building your project), and a returnable deposit of £3 for the breadboard (which you can give up when you've finished prototyping and you've transferred to stripboard, or maybe you found a cheaper breadboard :slight_smile:

Hopefully people will get involved enough that they want to keep both the CP2102 and the Breadboard for further projects, and we can keep giving them packs of £3 components for each new experiment they undertake, with the aim that they actually deploy their experiments, powered by battery or a USB power source (without UART), and don't deconstruct them again as people like me tend to do with Arduino because of owning a limited number of boards.

Anyway, it's been a bit whirlwind. The moment I get any parts, people seem to take them away, so I've bought another load of 100 lots from mouser/tayda/shcfstore (the cheapest places I've found to get the bits so far). The CP2102s could take a while to arrive, unfortunately, but I'll have all the other parts within a week.

We can help you get the parts at a reasonable rate, and with rapid shipping from UK but we are not claiming any ownership of the design, though it's nice to get credit and pingbacks.

If you're interested in following along, getting a kit of parts or contributing to the project, then get in touch @ShrimpingIt http://shrimping.it