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 x1, UK 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.
[…] 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 […]
[…] http://shrimping.it/blog/bill-of-materials/ […]
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.
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.
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.
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…
@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=0x00″. 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!
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.
[…] […]
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.
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.
[…] их концепции, все комплектующие можно заказать напрямую, и вся […]
where could I find a mini solderless breadboard for £0.86? What website?
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.
I noticed there was a diode in the protected shrimp but not here. What diode was used?
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
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.
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.
[…] On November 24, 2012November 14, 2015 By blackpoollinuxIn Uncategorized Attending the LUG meeting this week: Jon,Les,Tony,Ollie,Mike, and a brief appearance from Les’s new boss. Using an Arduino as a programmer to burn the bootloader onto a blank chip.The Arduino IDE has a sketch to turn an Arduino into a programmer, so you upload that sketch to the Arduino, then connect up as described here. Full wiring details on the Arduino site here:- http://arduino.cc/en/Tutorial/ArduinoISPOnce connected, use the Arduino IDE, and select tools, programmer, Arduino as ISP.Then tools, burn bootloader. Thanks go out to Cefn at http://shrimping.it/blog/ for his help in sourcing parts to build an Arduino for less than £5 http://shrimping.it/blog/bill-of-materials/ […]