jan 292019
 

Staat je plant droog?
Het is een van de standaard voorbeelden die je tegenkomt als je met Arduino of ESP8266 aan de slag gaat: gebruik het apparaat om te meten of je plant water nodig heeft. Ik bouwde er een paar jaar geleden ook eentje.

Goedkoop is duurkoop?
De goedkope sensor die ik toen gebruikte werkte niet heel lang. Pas een tijd later kwam ik (alweer) een leerzame video van Andres Spiess tegen over dit onderwerp inclusief een sensor die wél zou moeten kunnen werken zonder zichzelf om zeep te helpen. Ik weet dat ik die sensor toen gezocht heb maar dat hij redelijk aan de prijzige kant was. Sowieso was het exemplaar dat Andreas getest had eentje waarbij je ook nog een ESP8266 moest aansluiten, voor een stroombron moest zorgen, aan het netwerk moest koppelen etc.
Ik heb het toen even gelaten voor wat het was. En eerlijk gezegd was ik de video ook weer vergeten.

Chirp!
Afgelopen week echter kwam ik  op AliExpress echter de sensor tegen die je hierboven ziet. Qua model vergelijkbaar met die van Andreas. Maar deze had een houder voor een knoopcelbatterij, een piezobuzzer én iets wat ik met een beetje (flink) inzoomen herkende als een ATtiny44A. Hmmm, interessant….

Voor het thuisfront was deze sensor al voldoende. Daar was niet echt behoefte aan een sensor die aan het netwerk aangesloten was. Als de sensor zou “chirpen” als de plant te droog was, dan was dat meer dan voldoende. En voor €1,55 inclusief verzendkosten was dat ook geen geld. Of ik er 3 wilde bestellen.

Ik had toen nog niet gezien dat op de afdruk ook de tekst “chirp!” staat. Waarom dat er toe doet, bleek pas toen ik ging kijken of ik meer informatie kon vinden over de sensor. Deze moest vast te hacken zijn, toch?

Hacken?!
Hoezeer de sensor te hacken was, ontdekte ik al snel. Ik kwam namelijk bij deze pagina van wemakethings. Zij blijken de oorspronkelijke ontwikkelaars van de “chirp!”. Het was hun bewuste keuze om het ontwerp van de sensor als open hardware beschikbaar te stellen en de firmware van de chip als open source software. Open, deelbaar, hackbaar, reproduceerbaar. Eerst even naar dat hackbare. De sensor heeft in de originele versie 6 open “gaten” op de sensor zitten. De AliExpress versie heeft de gaten dicht, maar zo te zien met soldeer, dus ook bruikbaar. De officiële site legt uit dat je een header op die gaten kunt aansluiten en ze dan als volgt dienst doen:

  • pin 1 – MISO
  • pin 2 – VCC
  • pin 3 – SCK / SCL – I2C clock
  • pin 4 – MOSI / SDA – I2C data
  • pin 5 – RESET
  • pin 6 – GND

Met deze 6 pinnen ben je niet alleen in staat om de ATtiny44A van gewijzigde firmware te voorzien (de huidige firmware is net als de schema’s voor de PCB op github.com te vinden) maar de sensor gedraagt zich ook als een I2C slave. Als je niet weet wat I2C is, lees dan even dit bericht. Dan heb je maar 2 van de 6 pinnen nodig (pin 3 en pin 4). Wil je deze sensor, bijvoorbeeld via een ESP8266, wél aan de Wifi hangen (waarbij de stand-alone functionaliteit behouden blijft), dan kan dat via die I2C verbinding. Cool toch?

Open source = funest voor kleine ontwerper/verkoper?
Maar….de AliExpress kloon is 100% legaal, feitelijk niets op af te dingen, het bedrijf doet wat de makers mogelijk maken: een heel goedkope versie van de chirp! produceren en verkopen.
Ja maar, het principe van “bedank de bedenkers van mooie dingen voor hun inspanning”?
Nou, die zou ik hier ook graag toepassen, maar dat wordt niet heel gemakkelijk gemaakt. De “officiële” chirp! kost via Tindie namelijk het mooie bedrag van $15,- excl. $5,- verzendkosten. Dat is €18,34 incl. verzendkosten als je via Paypal betaald. Dat is bijna 10x meer dan bij AliExpress, daar is het bedrag €1,88 per stuk incl. verzendkosten.

Ik vrees dat de makers er dus niet heel veel meer zullen verkopen. En dat is eigenlijk wel een vervelend neveneffect van open source hardware en het bestaan van zo veel Aziatische bedrijven die dit soort producten goedkoop in massa kunnen produceren.

Experiment
Goed. Ik heb het voor mezelf als experiment verkocht met twee vragen:

  • Wie is sneller qua leveren, de oorspronkelijke leverancier vanuit de VS via Tindy of de leverancier via AliExpress?
  • Zit er verschil in kwaliteit tussen beide producten? Zijn ze qua ontwerp identiek en functioneel gelijk?

Ik heb dus 1 exemplaar via Tindie besteld en 4 exemplaren via AliExpress (3 om in gebruik te nemen en 1 zodat ik van beide een exemplaar had om mee te experimenteren). Het kan van beide bestellingen even duren voordat ze binnen zijn (en voordat ik tijd heb om ermee te experimenteren) maar wordt vervolgd.

Deel dit bericht:
jan 272019
 

Note to my regular readers: I am not switching over to English for all posts, just  for some of the more technical / aimed at specific audience ones.

Last week I noticed a project on hackster.io that used an ATtiny. But it wasn’t an ATtiny85 like I had used, but an ATtiny10. Still, it had the same amount of pins, the project describes how you build an ATtiny10 Binary Thermometer, so similar to what you would expect with an ATtiny85. While the difference in the numberpart of the name 10 versus 85 would suggest big differences.

My curiosity had been triggered and I started searching around.

Why ATtiny?
For those that also wonder about the ATtiny part of the name: it is part of the AVR family, an 8 bit-RISC-microcontroller (µC) originally developed by a company called Atmel (AT) in 1996. Atmel got acquired by Microchip Technology in 2016 but the name of the chip stayed of course. One branch of the AVR family are the megaAVR or ATmega microcontrollers. The Arduino UNO uses an ATmega328 as its engine and many other members of the family are used on the other Arduino boards.

The ATtiny is part of the tinyAVR branch of the family, they have less on-chip memory, less pins, a less extensive peripheral set than their Mega siblings, but are really cheap, and easy to use in small project.

Note: actually, you can buy an ATmega328 at AliExpress at the moment of writing even slightly cheaper than an ATtiny85 (€1,06 for the ATmega328 versus €1,53 for the ATtiny 85 incl. shipping). Both microcontrollers need more than the bare controller to program them, but both can work on their own, without needing any additional parts. Both are happy with both a coin cell battery or 5V. The socket for the ATmega328 might be a bit more expensive (but you’re talking cents differences) and of course you might simply don’t want to waste the space on your board if you don’t need 28 I/O pins.

What about the numbers?
The first digit of the number that comes after the designation ATtiny makes sense, it is the amount of flash memory in kibibyte (KiB), so an ATtiny85 has 8KiB of flash memory. The second digit is the mdoel type. There you would expect newer models or more powerful models to have higher numbers. But so far I have not found a page that can explain the logic behind the numbering. If you look at the timeline of release (see below, source) you can see that they are not chronological.

And the other stuff?
Often, the designation of the chip stops there. A project would describe that it used an ATtiny85 or (like metnioned) an ATtiny10. But if you want to buy them online the package type also is important. For example, the ATtiny85 is available as:

  • DIP-8N, => this is the one you need if you want to use a breadboard or a socket!!
  • SO208-8, => good for surface mounting, could be used for permanent papercircuits
  • TSSOP-8, => also used for surface mounting, “thin body size”
  • QFN-20 => this one has no “legs” on the outside

If you search for the ATtiny85 on AliExpress for example you will find both ones that have pins and ones that are meant for surface mounting.
In the image on the left, the top was has ATTINY85-20PU DIP-8 in the description. The 20 means it can run on 20Mhz, the DIP-8 indicates the DIP package. There also exist (more expensive) 10PU chips, often indicated as ATtiny85V-10PU that run on lower frequency and are even more power efficient. Lowest price I could find on AliExpress was about 4 euro a piece.
The second one mentions TINY85 SOP8 and, combined with the image, tells you that it is the package meant for surface mounting.

In general there are two things to do if you want the figure out what a specific ATtiny can do. The Wikipedia page for the ATtiny is really helpful. It was filled by someone who had a similar question as I had, but more time. (Thank you!). And the Microchip site has all the datasheets for their microcontrollers. Reading the documentation can be very useful (as always 🙂 )

A lot of people complain that the info is not consistent, and I agree. Take for example the image at the top of this post for the  AT tiny 402 – SSFR. It was taken from this official PDF for the ATtiny202/402 .
It says that the first digit is the amount of flash (consistant), the second the feature set (?) and the third the number of pins (6=20 pins, 4=14 pins, 2=8 pins), but why then not add that digit for all chips?
Carrier Type, Temperature Range, Package Type are also not always provided in that way.
If you download the PDF for the ATtiny85 (and 25, 45), you won’t find that info (there are more files here, I haven’t gone through them all).

I have to admit, I’m not really satisfied with this post yet. I’ve got the idea that there still are more variations of ATtiny chips than I have been able to explain here. And also, I still am not convinced myself that ATtiny85 is the most optimal choice for the projects that I’ve been building. But at least I hope I’ve given you some idea of what to look out for if you want to buy them yourself.

Additions? Corrections? Please leave them in the comments below!

 

Deel dit bericht: