This minimalistic board is packed with features and comes with an extensive ecosystem of documentation and firmware.
For the student (we are never too old) that wants to fast track his career as a professional firmware developer there is:
- a detailed getting started guide
- an Atmel AVR quick start guide, with tutorials and examples
- Recommend best practices
For the developer that wants to improve his game there is:
- A header to quickly connect different kinds of peripherals (GPIO, A/D, UART, SPI & I2C). Notice that each interface has it’s own +3V3 and GND pins to make wiring easier and also improves EMC.
- A full-featured CLI application to experiment with the connected device and verify that it works, before committing to a single line of C code.
- A firmware framework that lays the foundation so that you can quickly develop a new application.
- A Temp&Pressure Logger and Analog voltage Logger application that demonstrates how you can quickly develop your own custom logging application using the onboard AT45D DataFlash.
Atmel ATmega328P Scorpion Board - [Link]
While trying to open a chinese camera pen, unfortunately the PCB inside it got damaged. Few of the PCB traces got cut and it became useless. After few days, I removed an 8 pin IC with SO8 package from the PCB. I was curious to know what it is, so I googled the part number 25FW406A but I couldn’t find any exact match. I found some part number similar to that and I concluded that it is an SPI flash. Later I got a datasheet from ‘ON semiconductor’ for a similar part -LE25U40CMD which is a 4M-bit SPI flash memory. I soldered the IC on a common board, powered it with 3.3v and interfaced it to a TI stellaris launchpad via SPI port. According to the datasheet the SPI port need to be initialized in mode 0 or 3. I tried few commands listed in the datasheet and got proper response from the chip, the CHIP ID doesn’t matches but that is expected because it is not the same part. I wrote functions for erasing, reading and writing the flash memory and tested it successfully using the launchpad.
Happy Christmas and Happy New Year wishes from Attiny13 - [Link]
Serial camera module that captures time-lapse and stop-motion videos plus images to uSD card. Use with any micro like mbed and Arduino.
ALCAM allows any embedded system with a serial interface (UART, SPI or I2C) to capture JPG/BMP images and also to record them right onto an SD card. Also, ALCAM gives you the ability to create time-lapse and stop-motion AVI videos and save them directly to the SD card. All done through a set of simple and well documented serial commands. ALCAM can also capture images and videos though a special pin, without the need to send any commands.
ALCAM-OEM – Serial camera module - [Link]
Most Arduino SPI tutorials show this simple but poor SPI bus design. In this article a new approach is discussed.
Better SPI Bus Design in 3 Steps - [Link]
An app note from Atmel, digital sound recorder with AVR and DataFlash (PDF!):
This application note describes how to record, store and play back sound using any AVR microcontroller with A/D converter, the AT45DB161B DataFlash memory and a few extra components.
This application note shows in detail the usage of the A/D Converter for sound recording, the Serial Peripheral Interface – SPI – for accessing the external DataFlash memory and the Pulse Width Modulation – PWM – for playback. Typical applications that would require one or more of these blocks are temperature loggers, telephone answering machines, or digital voice recorders.
Digital sound recorder with AVR and DataFlash - [Link]
by marc2203 @ importhack.wordpress.com:
I’m not going to explain in detail what is ESP8266 because if you have found this post I’m sure you already know it. But just in case, it is an awesome cheap board (less than 4$) with built-in wifi communication (802.11 b/g/n), and SPI, UART. You can also use its processor to run your code.
How to use ESP8266 ESP-01 as a SENSOR web client - [Link]
I contrast to the very timing-sensitive one-wire protocol of the WS2812, the APA102 uses a standard two wire SPI protocol – one clock line and one data line. Each LED has two inputs and two outputs which can be daisy chained. At the first sight this may seem wasteful, but it has the advantage of being supported by standard microcontroller periphery and it is insensitive to timing variations. Due to the critical timing requirement it is not possible to control the WS2812 from SOCs with multitasking operating systems, such as the Raspberry Pi. This should not be an issue with the APA102. Furthermore, the data can be transferred at an almost arbitrary clock rate. I was able to control the LEDs with 4 MHz SPI clock without any hitch. It appears that the maximum speed is mainly limited by the parasitics of the wiring.
APA102 aka “Superled” - [Link]
Spacewrench over at Dorkbotpdx writes:
I had some spare 4-digit 7-segment LED displays and some AT90USB82s, and I’d always intended to do something with them. This was probably the easiest thing! It’s just the AT90 driving the display, with a(t least) 4 wires controlling it: Vcc, GND, MOSI and SCK. (I haven’t written the code yet, but my plan is to make the display accepts characters via SPI and then spends the rest of the time displaying them).
The board has footprints for a 16MHz crystal and USB connector, so you could make it a USB-enabled 7-segment display as well. I stuffed those parts on my test board, but I’m not sure whether the USB actually works. You can power the display from USB, at least, although the video shows it being powered over SPI (which is the same connection I use to flash code).
Standalone SPI 7-segment display - [Link]
Paul over at DorkbotPDX writes:
For the last several weeks, I’ve been working on SPI transactions for Arduino’s SPI library, to solve conflicts that sometimes occur between multiple SPI devices when using SPI from interrupts and/or different SPI settings.
To explain, a picture is worth 1000 works. In this screenshot, loop() repetitively sends 2 bytes, where green is its chip select and red is the SPI clock. Blue is the interrupt signal (rising edge) from a wireless module. In this test, the interrupt happens at just the worst moment, during the first byte while loop() is using the SPI bus!
Without transactions, the wireless lib interrupt would immediately assert (active low) the yellow chip select while the green is still active low, then begin sending its data with both devices listening!
SPI Transactions in Arduino - [Link]
by Kalle Hyvönen:
I saw a cool app-note from Maxim that described a gamma-photon detector which used a regular PIN-diode as a sensor. The actual circuit looked simple enough so I decided build it, you can never have too many measurement instruments right?
The detector in itself is pretty simple, just some op-amps and a comparator. I decided to build it with all the bells and whistles so I included a digital potentiometer so you can adjust the reference voltage to the comparator via an SPI-bus. I also used a 5V reference shunt as the reference for the op-amps and the comparator to keep the circuits behaviour more consistent. I didn’t have any adjustable capacitors with an SPI bus so I decided against using one (instead of C4, changing the capacitance changes the gain).
A radiation detector with a solid-state PIN-diode sensor - [Link]