The Shrimp

The Shrimp circuit is an Arduino Uno substitute with a component cost of around one tenth the price of official Arduino boards. You can hand-make the circuit on breadboard or stripboard, learning about the components as you go, and remix the circuit freely for your needs.

There’s more about the design below. If you like the approach, there’s details of costings and how to source your own components at the recipe page or buy prepared kits from us.

Building

Makers can use the diagrams on our site to construct a Shrimp, starting with the Blink build sequence. If you’re in Morecambe, or generally in the UK, we can teach you to build and program your Shrimp at the Shrimping Workshops. If you need any other resources to help you build, let us know.

A number of beginners projects can be built with your Shrimp if you want to get some experience before embarking on your own designs. Examples include a clone of the Simon memory game, a Persistence of Vision display, a set of Quiz buzzers, a Steady Hand Game a Webserver, Bluetooth-controlled, Python-scriptable Robot, a project inspired by Makey Makey  and plenty more.

Programming

You can use the well known Arduino IDE software to program the Shrimp (it appears just like an Arduino Uno). This means that all the Arduino projects built by the community can be replicated using the same code and wiring diagram, but with the cheaper Shrimp instead.

Designs

We offer a set of reference designs for this Arduino-compatible microcontroller board, suitable for makers to put together with the minimum of money and skill, to get them started inventing things. The process begins by constructing a minimal Shrimp on a breadboard. This can be immediately programmed using a PC or Mac. If you don’t have a laptop, use one of our studio computers. If you need one, we can loan regular attendees who are in need a laptop for home working.

Adding additional components offers a progressive foundation for users to make prepared kits, or open-ended homebrew projects. Because of the choice of layout, once they have proven the design on a breadboard, transferring to stripboard should be possible without any changes to the circuit, minimising errors.

Background

The Shrimp circuit was designed specifically for workshopping with Morecambe makers, but is already popular and influential in the wider community. Guidance for schools is being actively worked on.

Thanks to Mcqn Ltd, Morecambe Town Council and Madlab we have a number of free Shrimps available to give away to anyone in Morecambe who is in need. For waged participants, a kit of components to make a Shrimp on stripboard is available from Cefn Hoile for £2.

A USB CP2102 module  to program the board is available for a returnable deposit of £2. Solderless breadboards for prototyping and testing are available for a returnable deposit of £3. Laptops to learn programming can be made available in workshops and loaned out for projects.

Get in touch if you’re interested in working with us to improve the design, spread the word, or just get making.

 

45 Responses

  1. G Bowen
    G Bowen September 17, 2012 at 6:39 pm | | Reply

    The images would be improved by showing the connections at the 2102 programmer chip end as the letters on its ports do not exactly match those on the images. There are 5 wires to match up with 7 pins on the 2102 (including one that has to be soldered on).
    The following image is most helpful http://www.miconbkk.com/shop/m/miconbkk/img-lib/spd_20120411163027_b.jpg
    Here is what I got to work. The pin numbers are counting down the chip along the bottom side
    DTR (additional pin) – capacitor before chip pin 1 [brown]
    RST – empty
    3V3 – empty
    5V – chip pin 7 [red]
    TXD – chip pin 3 [orange]
    RXD – chip pin 2 [yellow]
    GND – chip pin 8 [green]
    Numerous previous failed attempts did not appear to damage the 328 chip

    1. admin
      admin November 23, 2012 at 2:55 pm | | Reply

      Hopefully the new diagrams fit your needs better. Thanks for the feedback.

  2. Ty Tower
    Ty Tower November 11, 2012 at 9:31 pm | | Reply
    1. admin
      admin November 12, 2012 at 3:56 pm | | Reply

      Thanks, Ty. Fixed link now. Was expecting WordPress to maintain its own internal links with consistency after renaming them. Looks like I was overoptimistic. Time to do a crawl for 404s.

    2. technoguyx
      technoguyx November 16, 2012 at 3:42 am | | Reply

      http://shrimping.it/blog/need/ returns a Not Found, too.

      1. admin
        admin November 20, 2012 at 10:46 pm | | Reply

        That’s really weird as it’s there now. Wonder if there was some temporary config messing I was doing. After the Hackaday slashdotting I went through and accelerated the site through a lot of fancy modifications of the server, FastCGI, Object caching, database caching, Apache static redirects etc. but was doing this whilst live so could explain the problems.

  3. Arduino-compatible circuit, called “The Shrimp” | Hypn.za.net

    [...] to the Arduino project and came across a super cheap (albeit self-made) alternative called “The Shrimp” – which, I figure, would be a much cheaper solution when deploying your invention [...]

  4. Alex Olinger
    Alex Olinger November 23, 2012 at 11:47 am | | Reply

    Hi folks, very nice work. I ordered stuff for 100 shrimps from mouser and tayda for my grammar school where I’m teaching ICT (Ettelbruck, Luxembourg). Just one question: Why did you include this strange diode between Reset and Vcc?
    Thanks,
    Alex

    1. admin
      admin November 23, 2012 at 2:26 pm | | Reply

      Good question. As you can see at The ATMEL support site , the ATMEGA has a special kind of programming mode which the chip can be thrown into by applying a high-voltage (12V) to the Reset pin.

      The diode is there to cause any environental voltage spikes coming in over the Reset pin to be shed into the Power pin, preventing the chip from entering this weird mode owing to temporary surges on a floating Reset, which could be hard to diagnose or come back from. If I understand – it would manifest itself as an apparently dead chip as the fuses and program would have been hosed.

      Having said all that, I regularly workshop with truly minimal layouts, like http://shrimping.it/blog/shrimp/shrimp_breadboard_minimal/ for a generic layout or http://shrimping.it/shrimp/project/pov/pov.pdf for a project layout, and I haven’t encountered any issues of this kind so far.

      The full #Shrimp layout is intended as a reference design which accommodates all the proper paranoid protections, and given the Tayda cost of all these protections is something like $0.15 it doesn’t seem worth eliminating them from the reference design. In practice, however You can get away without them in a lot of cases.

  5. DIY Shrimp Microcontroller Replicates an Arduino Uno at One-Fifth the Price | Tips for the Unready

    [...] The Shrimp | Shrimping.it via Hack-A-Day [...]

  6. teldredge
    teldredge December 3, 2012 at 12:09 am | | Reply

    Outstanding, thanks for the hard work. This gives me even more low-cost options than the digispark and ardweeny.

  7. DIY Shrimp Microcontroller Replicates an Arduino Uno at One-Fifth the Price | Curated Clutter

    [...] The Shrimp | Shrimping.it via Hack-A-Day [...]

  8. Arduino | Pearltrees
    Arduino | Pearltrees December 5, 2012 at 1:00 am |

    [...] < promach Get flash to fully experience Pearltrees The Shrimp We hope to get more components in volume soon. In the meantime to source your own components, take [...]

  9. Microcontroller Central - Rich Quinnell - December Wonder & Whimsy

    [...] Shrimp Arduino Clone — This tiny design is a microcontroller that you can program using the Arduino IDE. In fact, it looks to the system like an Arduino Uno, so many of the projects available for the Arduino will also work on the "Shrimp." Of course, you will have to connect the I/O up as appropriate. All this design covers is the MCU and a USB-to-UART converter. [...]

  10. tzq33tdq
    tzq33tdq December 22, 2012 at 9:18 pm | | Reply

    Where can i get a 10KHz resistor? do you mean an oscillator or a resistor?

    1. admin
      admin December 23, 2012 at 7:42 am | | Reply

      Well spotted. Just writing out too many component lists for my own good. Now fixed. Although the schematic is there for reference, hopefully some of the other diagrams are more useful in practice.

  11. Stephen
    Stephen December 27, 2012 at 12:15 pm | | Reply

    Thank you for this article, I was thinking exactly of this shrimp circuit a month ago and I purchased the components I deemed appropriate. Now your article is of a paramount importance with the components on my desk.

    1. Stephen
      Stephen December 27, 2012 at 4:25 pm | | Reply

      Also I would like to know if there is some difference if I use an ATmega8 instead of the 328. I don’t need to do mumbo jumbo robotics, just simple stuff and 8Kb should be enough. I also plan to burn the bootloader with an USBasp I got from ebay, I also have a CP2102.

      1. admin
        admin December 30, 2012 at 4:50 pm | | Reply

        I think the ATMega8 should be fine, so long as Optiloader has support for putting a suitable bootloader via autodetection, and so long as the correct board is identified within the Arduino IDE when you send programs over. For the 328-based builds we can assume it’s an Arduino Uno since the Uno bootloader gets flashed onto the chip via Optiloader. Check with the Optiloader documentation exactly what bootloader gets flashed onto an ATMega8 and select the corresponding board in the IDE. In the worst case you may need to define your own hardware profile in the config files of the IDE, but I would guess one of the standard boards would do.

  12. Stephen
    Stephen January 2, 2013 at 10:52 pm | | Reply

    I successfully made the circuit work with an ATMega8 (costs 1$ on ebay and I was pretty broke when I ordered my toys) However I first tried programming with AVR Studio because I didn’t know how to use the bootloader. You should also add an LED to D13 (pin 19) in the schematics because the feedback given by the LED when you reset is nice to have and beginners would avoid the confusion that pin 13 in the arduino IDE is not pin 13 on the chip. Also, I tried the CP2102 without a 100nF cap between the reset and if I hadn’t had an LED on PB5 I wouldn’t have understood why I couldn’t upload with my serial adapter.

    In addition I would recommend these stickers : http://forums.adafruit.com/viewtopic.php?f=44&t=18957 to all beginners because one doesn’t have to count the pins every time when putting a Shrimp together.

  13. The Shrimp and the idea | blackV
    The Shrimp and the idea | blackV January 12, 2013 at 12:15 am |

    [...] stumbling through the Web Alex found The Shrimp. It’s basically a striped down Arduino with just enough components to [...]

  14. Layout | blackV
    Layout | blackV January 16, 2013 at 9:52 am |

    [...] my last post about miniShrimp I talked about TheShrimp and how I want to modify it. I put together some tiny layout in EAGLE. Here are some [...]

  15. Our first workshop | Bridge Rectifier
    Our first workshop | Bridge Rectifier January 19, 2013 at 7:55 am |

    [...] Those without their own Arduino hardware will learn how to construct an Arduino compatible Shrimp from a handful of components costing only a few [...]

  16. Howduino? | hebdenbridgetownhall
    Howduino? | hebdenbridgetownhall February 21, 2013 at 1:44 pm |

    [...] 75% being complete beginners.  The group split into two with beginners building their own Shrimp computers, including building and programming the Persistence of Vision project, which blinked a [...]

  17. Ian
    Ian April 5, 2013 at 3:31 pm | | Reply

    SMRCC – South Manchester Radio and Computing Club.
    I took part in the Liverpool Howduino workshop November 3rd-4th 2012 and built the shrimp.
    Since programmed and used it as a two tone tester for amateur radio,
    The shrimp and other Arduino and Raspberry Pi project work wll be on our stand at Blackpool this Sunday 2013: Norbreck Rally – Sunday, April 7th, 2013
    If you want to know more about electronic projects in Amateur Radio why not pay us a visit.

    1. admin
      admin April 5, 2013 at 4:20 pm | | Reply

      Thanks for the update, Ian. Always glad to know how people are using and remixing. If you can figure out how to flash the Arduino bootloader over GPIO SPI and upload Arduino sketches over GPIO Serial, the world will be forever in your debt – the first £1.50 Raspberry Pi breakout :)

      1. Giulio
        Giulio April 12, 2013 at 7:23 pm | | Reply

        Maybe this is old news, but have you considered using USBaspLoader (http://www.obdev.at/products/vusb/usbasploader.html)?
        I’m no expert, but as far as I can understand, once you’ve flashed it to a microcontroller, you can do away with the USB to serial converter and simply use a USB cable.

        1. admin
          admin April 14, 2013 at 12:17 am | | Reply

          That sounds extremely cool, and very close to something we could stream into our work. We’re always facing a tension around what we could do locally and in workshops – where we can easily configure the bootloader, available hardware, desktop builds etc. – and what others are likely to be able to do, autonomously, around the world.

          It’s for this reason we don’t try to save the $0.09 by using an internal Crystal. Configuring the IDE is an extra, challenging, step for most people.

          Following the current build approach, people can easily buy pre-bootloaded ATMEGA chips from many global suppliers, and the cost of the CP2102, unlike the FTDI adapters, is miniscule, though not as cheap as a USB cable it’s true. However, the advantage of programming directly from the Arduino IDE, treating the circuit as an Arduino Uno, is really worth keeping I think.

          This is one to track and see whether sourcing pre-bootloaded chips gets easier, or if we can afford to actually ship them to solve that problem for adopters. So far shipping actual kits is something we’ve been avoiding, preferring to divert people to global suppliers.

        2. admin
          admin April 14, 2013 at 12:29 am | | Reply

          I’m exploring feasibility of using this approach. Any ideas how we would cheaply and easily provide instructions for users to wire usb cabling direct into a breadboard?

          1. Giulio
            Giulio April 14, 2013 at 10:47 pm |

            Hello there!

            I have used a simple USB female connector, like this one:

            http://www.taydaelectronics.com/usb-type-b-female-connector.html (type B, Arduino Duemilanove and Uno compatible)

            or this one:

            http://www.taydaelectronics.com/usb-type-a-female-connector.html (type A)

            Mine were pin-hole compatible, I think these are too but you should probably make sure by asking Tayda. As you can see, at $0.24 for just one (price in dollars, not sure why) they’re extremely cheap.

            BTW, once you’ve flashed the chip with USBaspLoader, the [bread]board can be seen as a standard Arduino and programmed directly from the Arduino IDE just by modifying the boards.txt file; see https://metalab.at/wiki/Metaboard.

            Hope that helps!

            –Giulio

          2. admin
            admin April 15, 2013 at 12:37 am |

            The thing I’m trying to figure out is how to breadboard with USBaspLoader. I think you’re saying the connectors were 2.54mm pitch, but were they solderless-breadboard compatible? I have some of the Tayda A females somewhere. Will dig them out and see whether they’ll push-fit into breadboard.

          3. Giulio
            Giulio April 15, 2013 at 10:03 am |

            I have one in my hands at the moment. The pins are definitely breadboard compatible; the only thing is that it’s got those two additional little legs that I you can see in the picture from the link above, which can be simply bent. Once you’ve done that the connector sits happily on a breadboard. Admittedly it’s not as firm as, say, a chip.

        3. Jack
          Jack September 2, 2013 at 9:10 am | | Reply

          This works well for programming. Have a look at usnoobie for example: http://www.frank-zhao.com/usnoobie/

          It is also possible to hack the various usbasp/usbisp boards that are available cheap on ebay. They are simply running a version of v-usb and you can replace their bootloader with you own so that they program themselves with instead of a target device.

          But the major problem with usbasp that you can’t use serial to debug, or for other purposes. You could include v-usb in your sketch, but I’ve found that to be extremely unreliable. Essentially, you lose the ability for the shrimp to communicate with the PC.

  18. EEG Data Visualising Pendant – wearable technology for use In social situations | I love kittens...

    [...] it added up to too much code for the 8k Flash memory of the ATtiny85. Instead, I used a low cost Shrimp microcontroller kit that was designed specifically for breadboard / stripboard prototyping and comes as a bag of [...]

  19. Hans
    Hans June 15, 2013 at 3:45 pm | | Reply

    Hi there.

    Thanks for, The Shrimp.
    Seems to work (blink).
    Needed to burn the bootloader and succeeded.

  20. Myduino: creating a low-cost arduino substitute « Kevin's blog

    [...] schematics for Arduino-like microcontroller boards.  I've built my existing boards off of The Shrimp schematics, so I used that again as a base for this new board.  There are a couple ways I had to [...]

  21. ShrimpKey – maak je eigen MakeyMakey – deel 1 - fromScratchEd

    [...] Shrimp [...]

  22. vouvoume
    vouvoume August 31, 2013 at 10:21 pm | | Reply

    Also an arduino compatible and cheap board is called tinyUSBboard ( http://matrixstorm.com/avr/tinyusbboard/ ).

    It may not be the most beautiful optics, but it is equipped with an on board USB interface and it is very very cheap and easy to construct. Via USBaspLoader ( https://github.com/baerwolf/USBaspLoader ) it emulates an ISP device to program itself – no external programmer needed.

    You also can program it into an ISP programming device to flash new AVRs – for example to build further boards…
    It is also possible to use it as an avrBridge ( http://ka010.wordpress.com/avrbridge/ ) if you want to control your circuits from you computer.

    There are many other advantages like preserving lifetime of internal flash, best you read yourself:

    http://matrixstorm.com/avr/tinyusbboard/

  23. Jack
    Jack September 2, 2013 at 1:44 am | | Reply

    Are the TX/RX lines on the CP1202 labelled “backwards”?

    I just built a shrimp, using a PL2303 instead of the CP1202, and spent a couple of hours scratching my head to get it to work.
    It turns out that the PL2303 is labelled “correctly” in that RX should go to TX and TX to RX.
    That, and on a Mac you need to use /dev/cu.usbserial device not the more obvious /dev/tty.usbserial.

    On top of that I was running a customized optiboot for the first time too – so too many variables really, but it worked in the end.

    1. admin
      admin September 2, 2013 at 10:23 am | | Reply

      Yeah, there’s quite a bit of debate about TX/RX labelling. Depends whether the manufacturer considers it DTE or DCE what the proper strategy is – see http://www.hardwarebook.info/DTE_DCE . Originally, CP2102s were labelled up as DCE, but since then the Baite CP2102 modules have been reversed to conform to the DTE adopted by the more common FTDI serial module.

      Either way, this is amongst the reasons for having a set of standard components, suppliers + diagrams which “just work” assuming you have the same bits from the same people, and we work hard to keep this up to date.

      Thanks for giving us the heads up on the PL2302. Was it cheaper to get the PL2302 where you are? The CP2104 boards coming through from Baite may be the next option we explore for cost-saving.

      1. Jack
        Jack September 2, 2013 at 2:40 pm | | Reply

        Ah that explains it.

        The PL2303 can be had for about $0.90 in quantities of 10 from aliexpress, but I just picked a random usb serial device from ebay before I came across the Shrimp and it happened to be a PL2303.
        Those CP2104 boards look ideal, with DTR routed to reset, I’ve just ordered a couple to test out. The mod to make the PL2303 automatic involves a nasty bit of soldering, and that’s after hacking away the plastic shrink-wrap that they are wrapped in.

        Good job with this project by the way, there’s something much more satisfying and educational about building something yourself rather than just plugging-in a ready made board. But as you say, it’s therefore important to make sure the bits all work together.

  24. Pico PiDuino : The Unwritten Words
    Pico PiDuino : The Unwritten Words September 24, 2013 at 11:07 am |

    […] Shrimping It […]

  25. Edward
    Edward December 29, 2013 at 8:50 am | | Reply

    New to electronics but keen to try the Arduino & Raspberry pi. Saw the Shrimp in new UK Maker magazine. One question (at the moment) – where do you connect the GPIO pins?

    1. admin
      admin January 7, 2014 at 12:51 pm | | Reply

      Hi, Edward. Sorry for delay – just dug your comment out from the spam. Not sure what you mean by the GPIO pins. You can see the pinout from the ATMEGA328P-PU at http://arduino.cc/en/Hacking/PinMapping168 which outlines its own IO pins. If you mean the Raspberry PI GPIO pins, they do not need to be used, as we employ a USB to UART module instead to program this Arduino-compatible circuit. If you want to use the GPIO TX/RX pins from a Raspberry PI to act as a serial device to program an ATMEGA, it’s in feasible possible, but some software needs to be patched (AVRDude I think), and you have to run the ATMEGA at 3.3V so that the logic levels are acceptable and you don’t blow up your PI’s GPIOs. Alternatively use a Logic Level Convertor or similar hack if you prefer the ATMEGA running at 5V, though I haven’t verified that hacks like a voltage divider or series resistor can do the job. Good luck and let us know how you get on.

  26. Switching to a low power platform. | The Pendaqueous Sensor Pod

    […] Some of these designs were so minimal, they barely more than a row of breadboard pins soldered onto the raw Atmel chip itself so, for a while, I flirted with the idea of just sticking a chip on a mini breadboard and going […]

Leave a Reply