Supported Arduino functions on ATTinyCore by SpenceKonde - arduino

I've just discovered the ATtiny84/85 chips and have ordered a few to use in some projects. I've looked high and low for all the support it has for programming through the Arduino IDE and Uno and have come across high-low tech's website and the supported arduino functions in that core.
Then I came across SpenceKonde's ATTinyCore which is another highly regarded core for the ATTiny series. The problem is that I can't find any information as to what classic Arduino functions this core supports. I mean like a list. I'm sure the basic functions are supported but how about using sleep mode / low power mode and a few other things. Is everything in the Arduino.h library supported?
Sorry if this is a silly question but a little help would be much appreciated.

I have contacted DrAzzy a.k.a Spence Konde on the Arduino Forum regarding this matter and I'm going to quote his reply to me down below.
ATTinyCore (and my other cores) implements all of the standard Arduino API functions that are logically coherent for the hardware in question. Everything should work, even the stuff that I think is a dumb idea (eg, SerialEvent, yield()) - if it doesn't, it should be reported to me as a bug. There are only a few places where I knowingly departed from the official Arduino behavior
Stuff that isn't arduino API, like the stuff that's included with avrlibc, has no dependence on the core whatsoever. If the hardware supports it, those libraries should work. If it fails to compile with the library (or a specific call in the library) in the sketch (generally giving either a #error saying it's unsupported, or an "undefined reference" to a register or bit name - actually calling it at a sensible time or uploading and verifying it behaves the way you want is usually unnecessary)
Hope this helps you guys. Thanks again to Spence Konde (DrAzzy) for the amazing ATTinyCore and his help in this matter.

Related

Login Form With Fingerprint Sensor Using VB6 And Arduino UNO

How can I interface my Fingerprint Sensor using VB6? I've already made a login form but I need help using the fingerprint sensor for the security. Please help me, thanks in advance.
Here's a good starting point: Getting Started with Optical Fingerprint Reader – R305. It's for the 305 but the overall setup should be very similar if not identical. Most importantly you will find an SDK for R30X modules in the Resources section of this page. It includes drivers, demos (with source code), SYNO API, user manual, etc.
Also, Vishnu M Aiea wrote a C++ library to handle communication with the R307 sensor: R30X Arduino Library. You should consider using this to handle the communication aspect since it's already been built for you. You might need to get it compiled into a DLL to use with VB6.
There's also an article he wrote about the whole setup process: Interfacing R307 Optical Fingerprint Scanner with Arduino
These links thoroughly explain how to set everything up. I think with all this information you should be able to make a lot of progress and come back to Stack Overflow with more specific questions.

Arduino, Particle, Teensy debugging?

I'm starting to use Visual Studio Code for my IoT work, including microprocessor coding. I've used Arduino and Teensy, my current project is using a Particle Electron.
I need a head start finding the correct add-ins and/or approach to debug an Electron. I believe my 2 unknowns are:
What VSCode extension should I use, does one exist, do I need one?
Do I require a piece of hardware, like the Particle debug shield, ST-Link J-Link, etc.?
Is there a common interface/protocol I should be looking for, to
measure VSCode compatibility for debuggers, etc.?
Any input would be appreciated.
Thanks
-John
You can find answer to your query here :
Spend some time reading its documentation.
compiling details can be found here.

I want to learn the basics for developing libraries for arduino, could someone please suggest the document where i can get the details.

I wanted to integrate a sensor to arduino uno. It may be any sensor, but I should design the drivers and libraries myself. I am a beginner to this stuff. Please could someone suggest me how to start this.
For example: I have a arduino uno and a accelerometer sensor(adxl345). How should I start integrate the sensor to arduino, what are the basics I should know before doing this and what details I should know before starting. And how do I start after having those details.
Please suggest me on this or guide me the location where I get these details.
To write Arduino libraries, here are two tutorials I recommend:
Writing a Library for Arduino
Classes Course on Cplusplus.com
Once you know how to write libraries and classes, you might want to go further.
I'm developing a spherical robotic smart toy for children with autism using Arduino, and I had the same issue as you: how can I write or use libraries to keep my code clean and make it reusable.
The first thing I did was to left the Arduino IDE because I think it lacks the basic function a real programmer needs such as error checking and code completion (you could argue that it checks your code while compiling, but I want real time error checking).
I also needed a way to compile my code without using the old avr-gcc provided by the Arduino IDE. That's where Sudar's Arduino-Makefile came as a blessing! I could write my code using my favorite text editor and compile it simply.
To help some friend with their project, I put up a Bare-Arduino-Project, with all the documentation you need to get up and running.
Of course it is just a framework to get you started, but you can configure everything to suit your need. It will work on OS X and Linux. It should work on Windows as well with some changes but I haven't tested it.
Hope it helps! :)

Transfering my arduino/TI-MSP430 Launchpad/Energia skills to real world projects and C

I'm learning electronics/microcontroller programming through TI-MSP430 Launchpad(Energia) and Arduino.
Both are based on wiring framework, and very good place to start for a beginner like me.
Now as I'm forwarding in my learning, I'm thinking to explore more and want to do a real world project. My project can be easily done on both above mentioned platforms, but I want to use STM8S-Discovery(Dev board or STM8S series MCU) for this but there is no wiring framework for STM8S as far as I know and I don't want to use if there is any.
What other skills/information I need to migrate from these wiring framework based platform to real world microcontroller projects?
Thanks in advance for inputs!
The datasheet and user's guide will be your best friend. Be sure to look at programming examples for that device as well. Typically you'll need to do the following:
Initialize clock system and setup peripherals and I/O. (Frameworks generally do all this for you). Read some of the actual code behind the scenes of Energia to see how it actually works.
Once the main hardware is initialized, setup your business logic (variables).
Loop indefinitely (like most embedded systems do)... while (true) anyone?
I hope that helps.
I contributed the A110LR09 Booster Pack library for Energia. Take a look at the source code if you're interested with how to write specific device drivers in C/C++ for the MSP430.

Interested in Device Programming. Where to Start

All
I've a Good Command over C++, But I've never done anything anything on device programming. I've some basic understanding on Digital Logic Design. But I am complete Noob in Electronics. Currently I am getting huge interest on microcontroller Programming.
Where To Start ?
I don't think one really needs to have huge amount of knowledge on electronics to run a program on a microcontroller.
I am using Linux. and I've downloaded Keil. never tried to run it through Wine. I've ran it in Windows. But how the code works is not completely clear to me. though I can understand Logic as its written in C. But Its still like a Fog to me.I Just need a Quick Kickstart.
SO is not the best site to ask this kind of question. There's really a large distinction between programming for a PC and programming for an embedded system, other SE sites specialize in physical computing. I got this email from Robert Cartaino on Tuesday:
...Barring any last-minute interest from
[chiphacker.com], we will be launching [electronics.stackexchange.com]
either tomorrow [Wednesday 9/22] or
Thursday.
So, go commit to electronics.stackexchange.com here, and browse chiphacker.com while you wait. Take a look at these questions on Chiphacker:
How to become an embedded software developer?
Steps to learning Arduino Programming
PIC Programming
What are the best beginner project[s] using an arduino
There are a few things you should consider when planning your entry path to embedded systems programming.
What do you want to do?
What do you know how to do?
How fast are you comfortable learning?
I've outlined a few options in the following paragraphs.
You tagged your question linux-device-driver, does this mean that you want to make a custom device to use in Linux? If you meant embedded-linux, then you're into a larger class of microcontrollers. I suggest that you look at the BeagleBoard, also look at this Chiphacker question for some other options. If you want to do embedded linux, and want to build your own board, you'll first need to build up some experience in simpler levels of embedded systems design.
You also tagged your question avr, which is a popular microcontroller class made by Atmel (check out the avrfreaks forum for more info). I started learning embedded systems on the ATmega324p; they really have great documentation, are easy to use, and there are more sites online for the avr than most any other processor.
If you want an easier learning curve, I suggest taking a look at the Arduino environment. It uses Wiring, which is very similar to C/C++, and the Arduino can be enhanced with 'shields', which are modules that can be plugged into the Arduino main board to add functionality. This is your Quick Kickstart.
A good learning path would be to get familiar with the Arduino, then build your own AVR board (possibly a Linux device, like a joystick), then work with an ARM-based development kit, and finally move on to to building your own embedded linux board. You can skip a few steps if you don't mind a steep learning curve, or stop at any point along the way if a given level's capabilities satisfy your needs. You don't necessarily need a "huge amount of knowledge on electronics to run a program on a microcontroller", it's true, but you should understand some basic things like voltage and current before you try to light an LED or connect two devices.
Finally, you said in your question that you've installed the Keil IDE. While this is a fine and rather popular IDE, I'd suggest that you learn using a gcc-based command line toolchain. There are a staggering number of ways in which things that can go wrong when working with embedded systems, and an IDE adds a layer of magic on top of everything that happens. While this can be nice, I'm a strong advocate of minimizing the magic when trying to learn the system. You need to understand the low-level stuff when things don't work automagically. This advice doesn't apply when using the Arduino, which is designed to (and does) make all of the automagical stuff work well.
sparkfun.com has a lot of boards, arduino family and other. I recommend the armmite pro, the lillypad instead of the arduino pro because there is no soldering involved, for either you will need/want the correct usb to serial/power. The mbed2 costs a little more, the blue leds are brutal on the eyes, but easy to use. For none of the above are you required to play in their sandbox, you can use the canned environment, etc but not required.
if it is linux development you are after I recommend the hawkboard.org over the beagleboard.org, to make the beagleboard useable costs about twice as much as the board itself, the hawkboard is usable by only buying something to power it. But you can just learn linux drivers on your desktop/laptop and dont need to mess with embedded necessarily.
Emulators are a good start. Qemu is good stuff, emulates a number of processors, great for emulating virtual linux systems, learning linux driver development, etc. But getting visibility into what the (virtual/emulated) processor is doing is not the goal. I find it useful to have visibility. gdb includes a few emulators as well. mame is loaded with them, but like qemu designed for fast emulation and not for education. visual boy advance is good. Emulation is never perfect, so eventually you want to run on hardware, but emulators and compiler tools are free and you can learn quite a bit before you have to buy hardware. There is a considerable amount you cannot learn from an emulator though, loading your programs into flash/ram, debugging using jtag or other interfaces. i2c, spi, etc.

Resources