Bill of Materials for the Shrimp circuit

Note: this page only covers sourcing the Shrimp circuit itself. For the components in our expansion packs, go to the foot of each kit page for supplier information.

To workshop with Shrimps, we source components direct from Mouser, Tayda. Farnell and eBay, and you can too, following the instructions below. To supply a Shrimp to every learner in a classroom, you can get pretty close to the prices we do when buying in the 1000s. If you just want a small number of kits to experiment with before sourcing your own, or don’t want the hassle, then you can buy them from us. Note prices below do not include either Tax or Shipping.

  • A full set of Shrimp components, to deploy an Arduino-compatible circuit, is just £1.51 without USB connectivity!
  • A CP2102 USB UART, for Programming, Power and Serial comms, (like the Arduino’s FTDI chip), is £1.65 on eBay, and can be shared between multiple Shrimps (only needed when connecting to a computer). In the wild, Shrimps can run on 3 AA batteries!
  • Together, these make a Shrimp circuit which is binary-compatible with an Arduino Uno, and just as capable, for £3.15
  • If you just want to deploy an Arduino-Uno-compatible project on stripboard, it can cost as little as £1.66 (you don’t need the UART once it’s programmed).

In practice you’ll need to choose a chunk of stripboard (£0.15), a mini 170 tie-point breadboard (£0.37) or a 400 tie-point breadboard (£0.61) to put the circuit on, unless you want to follow @MrPye1974 and solder one freehand.

Components needed

The current bill of materials for a #Shrimp – components only without board, leds, project components or even a bag, is as follows…

ATMEGA328-PU (from Mouser in large volumes) or buy a 328P-PU (from Tayda for small volumes, from Farnell for large volumes)

£1.17

2x22pF Capacitor, 4x100nF Capacitor, 1x10µF Capacitor, 1x10KΩ Resistor (from Tayda) £0.01
x9
£0.09
16MHz Quartz Crystal (from Tayda)

£0.07

6mm Tactile Switch (from Tayda)

£0.04

Various Colored Wire or Jumpers  £0.05
One LED and matching resistor for testing £0.02
9-pin male header strip, we buy 100x40pins from Aliexpress for $14.37 worth looking at 200x40pins or for the faster Hong Kong post from here (larger volumes) or here (smaller volumes) £0.02

These are prices barring VAT and P&P costs, as many educators will be VAT-exempt, and the P&P reduces as your volumes go up.

Getting your first Shrimp working

Using a Nanode CP2102 and a pre-bootloaded ATMEGA chip is an option if you want to just get going without any hassle (no soldering or bootloading), but you can easily fall back to a cheap CP2102 and flash your own chips when you’ve proven your skills and need to run a workshop with 40 people.

When sourcing your own cheap chips and UART, if you don’t buy the bits from another Shrimper, you’ll have to solder a pin to the DTR line on the CP2102, and also add the Arduino Uno bootloader to your ATMEGA chips using Optiloader. Optiloader requires at least one Shrimp circuit with the Arduino Uno bootloader already on it (from China x1, UK x1UK x5), or a pre-existing Arduino.

See the CP2102 page for more detail about sourcing your own USB to UART adapter to program and communicate with your Shrimp.

If you’re ordering in small volumes, and you don’t know anyone from the @ShrimpingIt community who can slip you the bits, the best bet is to buy all the electronic components from Tayda, the CP2102 from eBay and a breadboard from anywhere.  Tayda’s ATMEGA328P-PU are a bit pricier than the Mouser 328PU, but the shipping costs are so much lower for small volumes. Tayda will soon, hopefully, list a bundle for us. You should ask Tayda for Shipping Type 5 if you’re in Europe – it’s more reliable route.

A build powered through a CP2102 is ideal for prototyping when powered by a laptop or USB wall wart. For battery operation, you need to either be careful with your choice of batteries (within the 3.3V to roughly 6V voltage range which an ATMEGA328-PU running on a 16MHz crystal will handle), or use a $0.15 power regulator and a few caps like this.

Other Components and Supplier issues

170 point breadboards are an ideal size for a #Shrimp. For small volume orders try sourcing them from Aliexpress (though China post can take a while/be unreliable – search for Hong Kong post for quicker dispatch).

With our volumes increasing we now order via FedEx from NBEverest who provide us with both the white 400 point breadboards, and mixed color 170 point breadboards.

We have found that these copper stripboards from Tayda are a perfect dimension for cutting into three #Shrimps, adding just £0.15 to the component count to put the whole circuit onto stripboard. For soldering onto stripboard, you’ll probably want male header pin strips [Tayda] or right angle male header pin strips so that you can attach cables conveniently for programming, though you can always just stick wires out. I tend to use female-terminated cables onto male pins for wiring up shields and modules, for example, using Ethernet Shields to build the £8 webserver, or Stepper motor modules to build the £10 robot.

For testing, experimenting and projects, you’ll need extras like LEDs, Buttons, Sensors, Servos and other stuff. One LED (and matching resistor) at least is useful to test uploading the Arduino Blink sketch and to see that your circuit is alright.

18 Responses

  1. » Shrimping it – Arduino Hackery On The Cheap Matthew Hughes

    [...] of capacitors and resistors, an ATMEGA chip, an FTDI cable and a bit of patience. The recipe is available here, along with schematics and other guidance you’ll need in order to create your very own [...]

  2. JohnC
    JohnC January 1, 2013 at 6:22 am | | Reply

    The link to the CP2102 from SHCFStore seems to be wrong. I purchased one and there isn’t any DTR solder pad on the one from SHCFStore link.

    1. admin
      admin January 1, 2013 at 8:28 pm | | Reply

      Indeed it seems as if they’ve changed the model without changing the auction ID – pretty bad practice, although for most people they are equivalent. It’s feasible to solder still, but needs hardcore skills and a tiny iron. Instead of relying on an eBay auction, there are some pictures of the preferred version at http://shrimping.it/blog/wp-content/uploads/minimal_shrimp.jpg and http://www.matthewhughes.co.uk/wp-content/uploads/2012/11/622646_10151072400337109_2144432467_o.jpg so ideally anything you buy on eBay should look EXACTLY like those.

    2. admin
      admin January 1, 2013 at 9:01 pm | | Reply

      There’s a workaround if you’ve bought the wrong CP2102, (without a DTR breakout) or cannot connect the reset pin on the Shrimp to the RS232′s DTR or RTS pin for any other reason (e.g. using Bluetooth Serial which has no DTR or RTS breakout either).

      Hit and release the reset button just after the Arduino IDE footer bar says ‘Compiling’ and in the first moments when it says ‘Uploading’. That way, you’re manually doing what the DTR pin does anyway – drawing the reset pin low, resetting the ATMEGA328 so that it goes into a mode where it temporarily waits for a new program before running the old one.

      1. zoniguana
        zoniguana January 16, 2013 at 4:47 pm | | Reply

        Another potential workaround is to hold the wire against the chip pin while hitting the reset button on your shrimp… Not nearly as convenient as having a permanently attached wire, but, it worked for me…

        When I had my terminal open, I simply held the lead against the DTR pin, pressed the reset button, and saw the output of the sketch…

      2. New to Shrimp
        New to Shrimp September 29, 2013 at 2:30 am | | Reply

        @admin, the workaround didn’t work for me. :(
        The LED blinks twice (indicating the reset), but I still get “avrdude: stk500_getsync(): not in sync: resp=0×00″. I have checked all the wires many times – everything is in the right place; but still no good…
        Could you please check if this method still works?

        Thank you!

        1. admin
          admin September 29, 2013 at 7:55 am | | Reply

          Hi, can’t get back to you as your email address has been entered incorrectly and bounces :(

          The error is very generic and would occur if you had nothing attached to the UART at all! We’re happy to take a look at people’s wiring with a few well-focused, clear shots of the circuit from different angles (oriented like our kit diagram helps).

          Usually people have the chip upside down, haven’t pushed it down in the breadboard firmly enough, or have some other kind of simple wiring error. If you have bought a chip directly (not from us) it may not have a bootloader on it. If you have bought a UART directly (not from us) then it may not have a DTR pin, or RX/TX may be reversed.

          Let’s work through the steps to get you up and running.

  3. SDM
    SDM January 25, 2013 at 7:43 pm | | Reply

    Can you make a how-to to load the boatloader on a ATMEGA328P-PU with another Shrimp and Optiloader? The link under ‘using Optiloader’ uses a Arduino UNO as ‘host’, but I don’t have one.

    1. admin
      admin January 25, 2013 at 10:39 pm | | Reply

      It’s worth thinking about, but it would add up to more or less the following…

      Although the Shrimp build itself should probably be better documented, this is more or less the same routine for any Arduino project, including Optiloader. I’ll make a point of writing up a document which is kind of ‘how to build any Arduino project with a Shrimp’ which explains how reliably you can transform Arduino projects directly, just using the Pinmapping, as this may not be well explained anywhere. If I write it well enough, then people could use this same insights to use Optiloader.

      Thanks for the suggestion.

  4. Использование Scratch для работы с Arduino | Класс робототехники

    [...] их концепции, все комплектующие можно заказать напрямую, и вся [...]

  5. eveningLamb
    eveningLamb May 3, 2013 at 6:06 pm | | Reply

    where could I find a mini solderless breadboard for £0.86? What website?

    1. admin
      admin May 3, 2013 at 6:17 pm | | Reply

      Thanks for the question, eveningLamb. You sound disbelieving :) We’ve actually been able to source these for $0.58 now. Take a look at the more up-to-date page describing the Memory Game Expansion Pack. The footer of each kit page links to where we source our components wholesale. I’ll go through updating the Shrimp bill of materials (this page) right now to reflect our recent learning from sourcing bits for Maker Faire UK.

  6. Apolonio
    Apolonio June 3, 2013 at 5:17 pm | | Reply

    I noticed there was a diode in the protected shrimp but not here. What diode was used?

    1. admin
      admin June 4, 2013 at 8:12 am | | Reply

      Aha, the puzzle of the missing diode. I must have removed it here, but not updated all the site images, to match, sorry. Need to crowbar a bit of time to verify and upload replacements. From experimenting in workshops, the diode creates more problems than it solves, hence it got phased out. Wiring it in backwards (easy for a learner) means the circuit won’t work at all. The theoretical reason it’s there (avoiding high-voltage programming mode on the ATMEGA) has never been confirmed as a real problem in practice. The original part was this diode from tayda

  7. Reggie
    Reggie June 19, 2013 at 4:18 pm | | Reply

    Hi, Can you point me in the correct direction to use my “Arduino Uno PCB” to program a ATMEGA328p-PU with a sketch, instead of using a CP2102 USB UART for usb connectivity, Thanks, Reggie.

    1. admin
      admin August 2, 2013 at 9:23 am | | Reply

      Sorry for delay, Reggie. I don’t sift through comments so regularly as we’re getting a lot of spam :(

      In answer to your question, there’s detail of how to flash a bootloader to an ATMEGA328P-PU linked from our recipe page http://shrimping.it/blog/bill-of-materials/ look for the word Optiloader.

      If you literally want to use Arduino as a programmer (not just to get the boodtloader on there) then you need to combine the information at http://arduino.cc/en/Hacking/Programmer and http://arduino.cc/en/Tutorial/ArduinoISP to arrive at something like https://www.sparkfun.com/tutorials/200 Not for the faint-hearted, though in principle should work if you diligently follow the instructions. Alternatively, you could follow an Optiloader-style strategy, and actually code your hex file into the sketch of your ‘programmer’ Arduino, like… http://www.gammon.com.au/forum/?id=11635

      Good luck and let us know how you get on.

Leave a Reply