Pages: [1] 2   Go Down
Author Topic: USnooBie Kit - AVR USB Device Dev Kit  (Read 2446 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The USnooBie is a microcontroller kit that does not require any sort of AVR programmer or USB-to-serial converters to load and run compiled code. It's hardware design allows the user to develop low cost USB devices with Atmel's AVR ATmega microcontrollers. It can also be used to develop projects which are not USB devices.




Check out more details and all the tutorials I wrote and filmed

http://frank.circleofcurrent.com/usnoobie/
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Global Moderator
Dallas
Offline Offline
Shannon Member
*****
Karma: 178
Posts: 12288
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset


Why does it have two pushbuttons?
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The 2nd push button is used to activate the bootloader, please see the usage guide to learn how it works
http://frank.circleofcurrent.com/usnoobie/usageguide.php


There is no good way to make a auto-reset function because I am not using a USB-RS232 converter. A timed bootloader is also annoying. The button occupies one of the USB data lines being reserved so it causes minimal loss of available pins.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I just wrote a page detailing how this can be used with the Arduino
http://frank.circleofcurrent.com/usnoobie/arduino.php
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 209
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

5 stars from me.

Really nice work. Using the arduino IDE to upload programs direct
is a real plus.
« Last Edit: November 12, 2010, 11:40:32 pm by carl47 » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If you use the Arduino IDE then you can't use V-USB though, I'm going to see about writing a core that works with V-USB. The problems will arise from whether or not Arduino is smart enough to compile .S files, the timer interrupts, and also functions which disable interrupts.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 209
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

The arduino uses AVR GCC compiler for Atmel AVR RISC processors.

http://www.nongnu.org/avr-libc/user-manual/pages.html


All available interupts are handled by the compiler:

http://www.nongnu.org/avr-libc/user-manual/group__avr__interrupts.html#gad28590624d422cdf30d626e0a506255f

When you upload using the arduino IDE it loads a hex file(program) into flash memory.

I thought I understood what you were intending.
In your instructions you state:

Quote
To upload a sketch, just activate the bootloader
(press and release the reset-button while holding down the bootloader-activation-button, see the usage guide) and then press the "Upload" button in Arduino.

What is being uploaded?

If it's the sketch program  then that would be
good enough to qualify for the 5 stars.

Looking at:

http://www.obdev.at/products/vusb/index.html

Being able to use that from the IDE would give extra credits.



« Last Edit: November 14, 2010, 01:37:06 am by carl47 » Logged

Netherlands
Offline Offline
Sr. Member
****
Karma: 1
Posts: 290
(:-)
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Have a look at the metaboard how they implemented the bootloader. They use usbasp loader which is also based on V-USB and it works with the arduino IDE except for the serial monitoring.
« Last Edit: November 14, 2010, 01:47:01 am by wortelsoft » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 572
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Yep that's my question too.

Can you use the arduino Serial commands over the USB port?

Sorry couldn't see the answer on your website.

Thanks
Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Carl, I think I worded my last post wrong, what I meant was

The timer overflow interrupts used by the Arduino core to keep track of millis may cause higher interrupt latency for the INT0 external interrupt. Also there are Arduino core functions which disable interrupts globally such as the microsecond delay functions.

V-USB requires low interrupt latency and also for the interrupts to be enabled all the time. Hence I think I need to modify the Arduino core so that it is friendly with V-USB

------------

trialex, you can't use the serial monitor without connecting a serial port or a serial port to USB converter.

I hope all Arduino users understand that the serial port functionality usually comes from a built-in FT232 chip, a FT232 cable or similar, or the ATmega8U2 (on the Uno board) which does the exact same thing as a FT232.

I did not include this FT232 because it would add to the cost and size significantly, and many Arduino derivatives do not include this chip or cable.

You are free to purchase an FT232 cable separately in order to use the serial port monitor, but unlike Arduino, it is not a requirement for USnooBie to be programmed.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 209
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Thanks for your answer. You completely explained the interrupts question.

I understand now.

For the arduino user the lack of serial coms could be a minus for some applications.
« Last Edit: November 14, 2010, 04:21:29 pm by carl47 » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

It was never originally designed for Arduino users. I hoped to create something that lets people experiment with real USB devices before taking their design from a development platform to a standalone device.

I don't even think it's practical to compile V-USB with Arduino. I'm hoping some brave Arduino users will get bored with just reporting data back from the serial port and switch to a good development environment instead and try out V-USB. I have a few videos showing you how to work with V-USB and also writing computer side drivers. http://frank.circleofcurrent.com/usnoobie/tut_proj.php

If you really need the serial port, just buy the FTDI cable and connect it to the TX and RX of the ATmega, just like how most Arduino derivatives requires you to anyways.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

Australia
Offline Offline
Full Member
***
Karma: 7
Posts: 209
AVR Microcontrollers
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Frank I did not mean to detract from your achievement.

USB is very complicated, but it is also the future of PC connections.

From my brief look at your work, I can see that you are proficient
in what are the “black arts” to some of us.

I would really like to learn from your work, unfortunately time is very
limited.

When I first looked at your kit I thought it could be a holy grail.
Full arduino without the serial chip.

I hope that you have inspired some arduino uses to get into USB projects.

I'm sure your kit would be a great entry point.
« Last Edit: November 15, 2010, 03:28:49 pm by carl47 » Logged

0
Offline Offline
God Member
*****
Karma: 0
Posts: 594
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Frank I did not mean to detract from your achievement.

I didn't take it as such, I was just explaining.

USB is not complicated once you take some time to understand. What I think USB is great for is when you need to give meaning to your data. HID reports are organized into "usages" and requests have a header that contains parameters such as "request type", "index", and "value". This makes code easier to write, maintain, and understand.

http://www.beyondlogic.org/usbnutshell/usb1.shtml is a great resource

It is also possible to program the USnooBie itself to become a serial port device but according to what I've read, this may not work on all platforms and will take up a lot of CPU time on the ATmega.
Logged

Freelance engineer, consultant, contractor. Graduated from UW in 2013.

New Zealand
Offline Offline
God Member
*****
Karma: 0
Posts: 999
Arduino pebbles
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
If you use the Arduino IDE then you can't use V-USB though, I'm going to see about writing a core that works with V-USB. The problems will arise from whether or not Arduino is smart enough to compile .S files, the timer interrupts, and also functions which disable interrupts.
The Arduino IDE (as of ~0018 onwards) will happily compile .S files as that's what I use for my VUSB for Arduino project (http://code.google.com/p/vusb-for-arduino/ a.k.a http://code.rancidbacon.com/ProjectLogArduinoUSB).

In order to get it working I disabled the millis() related timers as the ISR take too long to complete. The guy that wrote V-USB thought there was room to make the ISR used for the timer more efficient but I went with the easy option (partly because doing otherwise would mean editing the core Arduino files) and no-one else has provided anything different, yet.

--Philip
Logged

Pages: [1] 2   Go Up
Jump to: