a 5₪ (1€) open hardware microcontroller dev board
- 1 a 5₪ (1€) open hardware microcontroller dev board
- 2 changelog
- 3 quick FAQ and updates
- 4 todo
- 5 much
- 6 Hardware
- 7 Programming
- 8 firmware/bootloader
- 9 SPI programming
- 10 links
- 11 misc
- 20/29/2018 - improved ATtami#Programming section
- 28/04/2016 - price hike for the ATTINY85-20SU forces us to search for a new(?) supplier. arch pic pic>!
- 24/04/2016- got the new batch. we will have an assembly party soon. processing...
- 20/08/2015- green edition workshop at tami - image gallery
- 08/08/2105 - boards on their way
- 28/03/2105 - another build party in the works, thanks ido
- 01/01/2015 - just had our first mass bake off, at least 80 boards are out in the wild. http://imgur.com/a/MkchW
- 10/08/2014 - micronucleus bootloader is up and running
- 28/07/2014 - got 4 boards assembled, had first mini tiny workshop. got blink via isp.
now for the bootloader with vusb control
- 18/07/2014 - got rev16 from OSHpark, missing some silkscreen on top and D3 is too small.
- 6/13/2014 - test Gerber sent to OSHpark, we should be getting boards in a week or so.
- 5/25/04 - still working on the power module, fight between the MIC5225-5 and the NCP4626
- 4/24/04 - design meeting with guy, Tzvi, jr and yr. we talked about the core stuff like the vusb thingy, power issues (vcc,vbat,vusb)
- 5/6/04 - post design we did some work on the layout, next meeting coming Friday at 14:00
discussion over at the mailing list under "care for your con"/[attami] threads
quick FAQ and updates
is it really 5nis?
the BOM has most of the story (updated the choice of LDO on 28/03/2015)
when we did the first batch the attiny85 was at ~0.6 for 100+ since then the price went up (0.9?).
as the two most expensive parts in the BOM are the MCU and the LDO we currently have a ready to fab design with two footprints for a voltage regulator. the original LDO, and a dirty cheap AMS1337 https://imgur.com/2LHMcfu but this has not materialized yet.
so whats the stock?
we have a few (~20) unpopulated boards left from the previous batch
this is the tami production bin
note apart from the LDO and MCU - everything else is in the bigger plastic attami bin, in the 100s/1000s
is the project dead
no, there is work being done on an a programming shield for the arduino that will help with flashing and resting fuses on attami and other tiny family members. https://github.com/telavivmakers/High-Voltage-ATtiny-ATTami-Fuse-Reset
and jr et el are working on a motor shield, noam is on the audio front and the tutu shield will happen.
- update the kicad viewer
- come up with shields
- set another build party
target price - 5 shekels see BOM
labor not included
eagle PCB design files are on github
check this design consideration PDF
this boards are designed for workshop/sweatshop type assembly.
it is shown a noob can make&bake her own board in a matter of hours using the appropriate tools
most parts are SMD (surface mount devices) accept the headers
- cut a stencil -
- part placemnt
- using tweezers and solder paste
- using a "jig" from acrylic to drop parts (experimental)
- experiment with different ovens
SEE OVEN REFLOW PROJECT PAGE
- skillet/hot plate - link
- modded/unmodded toaster oven
- Clothes iron
check out the BOM spreadheet
eagle cad templates for new ATtami shield are over at the ATtami github shield sub dir
contact yair99[at]gmail for help, or fork and pull when in need
this is the n-channel mosfet we have a reel of (1000~)
A trickle charge circuit can be made using a cheap wall cube as the DC source and a single power resistor to limit the current.
from an official TI whitepaper :) Battery Charging whitepaper pdf
battle of the modules
- hoperf RFM12B datasheet-
- 5$ RF transceiver AExprs
- Up to 300m transmission
- Up to 115Kbps
- Up to 30 nodes per network*
- Up to 250 different network groups, list via openenrgymonitor
- SPI comm (4 pins, but there is a workaorund, see [http://harizanov.com/2012/06/experimenting-with-attiny85-rfm12b/ here)
- a few libraries for the attiny85-RFM12b exist
ENC28J60 module wiznet w5100
- to expensive at 13$ a pop
three buttons via one analog pin and resistor ladder
the folks over at digispark ahve done a great job of managing this and you can safely use their arduino package.
until arduino 1.5.x it was a bit of a mess adding new boards, but now its easy.
Arduino Installation Instructions:
- First download the appropriate Arduino package at the Arduino.cc website: https://www.arduino.cc/en/Main/Software Or in ubuntu "apt-get install arduino"
- Install or Unzip the Arduino application.
- Run the Arduino application.
- In the Arduino application go to the "File" menu and select "Preferences"
- In the box labelled "Additional Boards Manager URLs" enter:
and click OK
Note: If you already have additional URLs entered in that box, then click the button on the right of the box and enter this URL on a new line.
- Go to the "Tools" menu and then the "Board" submenu - select "Boards Manager" and then from the type drop down select "Contributed":
- Select the "Digistump AVR Boards" package and click the "Install" button.
- You'll see the download progress on the bottom bar of the "Boards Manager" window, when complete it will show "Installed" next to that item on the list.
- WINDOWS USERS: When complete the install with pop up a Driver Install Wizard window, please click "Next" on this Window to install the drivers for Digistump Boards (If you already have them installed, this installer will update them and install any that are missing)
- With the install complete, close the "Boards Manager" window and select the Digispark from the Tools->Boards menu. "Digispark (Default - 16.5mhz)" is the board that should be selected by all new users. This is what AT TAMI also uses.
- The install is now complete! (Linux users see note below)
- [linux] If you haven't before - Install the udev rules found here: [section]
Using the AT TAMI with the Arduino IDE:
The Digispark works a bit differently than some Arduino compatible products. The Digispark programs with a different procedure.
From the Tools menu select Board->Digispark (Default - 16.5Mhz)
(The Tools->Programmer selection does not matter)
Write some code, open your code, or open a Digispark example.
You do not need to plug in your Digispark before invoking upload
Hit the upload button. The bottom status box will now ask you to plug in your Digispark - at this point you need to plug it in - or unplug and replug it.
You'll see the upload progress and then it will immediately run your code on the Digispark.
If you unplug the Digispark and plug it back in or attach it to another power source there will be a delay of 5 seconds before the code you programmed will run. This 5 second delay is the Digispark Pro checking to see if you are trying to program it.
micronucleus (command line)
# we use the bootloader command line interface git clone https://github.com/micronucleus/micronucleus cd micronucleus/commandline make # for this no we will use the hex files tami uses to test the board, its a nightrider led wave # you only need to grab the .hex, or you can build it if you have avr-gcc wget https://github.com/telavivmakers/ATTami-Tester/raw/master/ATTami-Tester.hex #you might need to do it as sudo run micronucleus --run ATTami-Tester.hex # IRL plug in your board now and you should get a confirmation from MNuc when its done
- arduino 1.5.x (beta) x64 x32
- digistump toolchian github
- micronulious github
- unpack arduino-1.5.x
- extract digistump/hardware/digistump to arduino-1.5.x/hardware/
- extract arduino-1.5.x/hardware/digistump/avr/tools/avrdudex64.tar to same folder
- git clone and extract micronucleus
# git clone https://github.com/micronucleus/micronucleus.git # cd /micronucleus/commandline
# pacman -S libusb libusb-compat # make
place the compiled micronucleus commandline tool in arduino-1.5.x/hardware/digistump/avr/tools
# cp micronucleus /arduino-1.5.8/hardware/digistump/avr/tools
- extract arduino-1.5.x/hardware/digistump/avr/tools/avrdudex32.tarto same folder
- clock speeds
you can save power by underclocking the ATtiny. see comments in the MN tricks page
to upload new programs to your ATtiny using the USB connection , you first flash some of the memory with a bootloader (micronucleus)
a bootloader will wake up for 2sec on reset or power up and allow new HEX code to be uploaded via Vusb onto the ATtiny.
the pinout on the usbasp (to the right)
top view of the head facing down, vtg is vcc
if you have USBISP and windows = install driver
getting the software
git clone https://github.com/micronucleus/micronucleus.git
while this has the definitions, drivers and the ability to upload via command line.
its missing the arduino IDE. which is a pain, but still better then nothing.
flashing bootloader via programmer (USBasp)
cd micronucleus/firmware cat MakeFile | head //////////////////////////////////// # Configure the following variables according to your AVR. # Program the device with # make fuse # to set the clock generator, boot section size etc. # make flash # to load the boot loader into flash # make lock # to protect the boot loader from overwriting # make disablereset # for ATtiny85 target - to use external reset line for IO (CAUTION: this is not easy to enable again, see README) //////////////////////////////////// make fuse make flash
if you dont want to use the usb bootloader you can use an arduino as SPI or usbSPI plug to upload programs to the ATtami.
- plug the USBasp programmer
- clone the ATTami-Tester git
- run make.
using Mac OSX
- make sure that your OS $PATH variable contains /usr/local/bin (Instructions at the top of  )
- install CrossPack to get avr-gcc avr-lib and avrdude 
- plug the USBasp programmer
- clone the ATTami-Tester git
- run make.
Arduino as SPI for downloading plain hex files
Download the Arduinoisp firmware to an arduino (I used an Uno) follow the steps from here (pasted locally for convenience)  edit Makefile such that the avrdude line to read avrdude -c avrisp -P /dev/tty.usbmodem1421 -b 19200 -p t85 -U flash:w:hello.hex
used blink example of arduino, using uno on board definition
while we can upload HEX blobs generated using an ATMEL386 definitions (arduino uno), its better to use the microniuclus def.
its all sorted in the digistump toolchain, but alas, its broken on arch AUR
as it reaches for the latest arduino build, 1.0.5 but this will break the digistump hardware definitions. you need arduino ver 1.0.4 . see this forum post.
so i went and used HEX files compiled on a winXP machine using digistump toolchain.
a HEX is a HEX is a HEX
uploading HEX file to ATtami
we are using the microniclous firemware
##flash hex files via vusb cd micronucleus/commandline make sudo make install ./micronucleus --run blink.hex
after that you should see your device using lsusb as "digistump device"
vusb note: once you upload a program the vusb function of the board is no more.
dont worry, you can still upload new programs via the usb, the boot-loader has a grace period
where the vusb is still working, around 2-4 seconds from reset or power plugin.
to retain vUSB functionality you need to integrate it as a library into your code.
- Installing Arduino support for ATtiny > ATtiny Support Installation
- Programming the ATtiny useig Arduino board > Arduino UNO as ATtiny programmer
- schematics for building a programmer out of an arduino - (pdf)
- great guide, goes deep but its mostly historical, you dont need to mess with fuses and such, the guide above does it all for you. - http://docs.aakashlabs.org/anuduino/getting_started.html
- consistant naming for devices
- highlow guide, no v-usb
- micronucleus is the current standard in vusb attiny combos github
- USBASP programmer driver
- "a nice little trick which lets the ATtiny measure its own supply voltage" via jeelab
it can be done, many diffrent ways.
digispark offers a digiUSB lib/driver. couldn't get it to work
softSerial variants work. i used nick gammons SendOnlySoftSerial, with some modes to the cpp file (see this thread). this as the benefit of only using one pin
also of intrest
proto board tryouts
- MCU.SOUP.IO /boards tag an extensive list of tiny dev boards we collected, our board is using ideas from many of these projects
- discussion over at the TAMI mailing list, under "care for your con" thread(s)
pololu AVR programmer
pinout specific to colors i use
red-nc (for some reason the polou doesn't output voltage from header..) blk-GND ylw-MOSI org-RESET grn-SCK blu-MISO