User Tools

Site Tools



Arduino / AVR

about Timers

i2c two Arduino's

TVOut etc.

MIDI input

Pinout diagram

Serial Bus Contention: no more than one transmitting device

serial readLine

char buf[100];
bool readLine(char *buf) {
  static int index = 0;
  while (Serial.available()) {
    byte ch =;
    buf[index] = ch;
    if (ch=='\n') {
      buf[index] = 0;
      index = 0;
      return true;
    } else {
  return false;
void update() {
  if (readLine(buf)) {
    Serial.print(" ");

MACRO for printing multiple arguments with sprintf

#define ECHO(s,x...) { char buf[100]; sprintf(buf,s,x); Serial.println(buf);}

Shift registers

Ethernet Shield v2

Arduino game consoles

driver for DCcEle DCcduino UNO

use avr-gcc without Arduino IDE

export PATH=$PATH:/Applications/


Arduino socket server forwarding all data received on Serial port to all connected clients

Mini USB adapter layout

Arduino Wake-on-LAN

Arduino button matrix without resistors or multiplexer


sprintf(charBuf, "%d,%d,%d", 5,3,2);

float to char[]

dtostrf(floatVar, minStringWidthIncDecimalPoint, numVarsAfterDecimal, charBuf);

arduino mini USB


sdi12: protocol om over 1 draad half-duplex communicatie te hebben. Er is een Arduino library voor.

seeeduino atmega328 via avrdude

avrdude -cstk500v1 -b57600 -p m328p -P /dev/tty.usbserial-A600JGJZ -D -Uflash:w:Globe4D-demo-firmware.hex:i

detect arduino bootloader

if self.sendMessage([0x10, 0xc8, 0x64, 0x19, 0x20, 0x00, 0x53, 0x03, 0xac, 0x53, 0x00, 0x00]) != [0x10, 0x00]:

rotary encoders

terminal mode

avrdude -c usbasp -p atmega1280 -t
>> dump flash 0 512
>> dump eeprom 0 16
>> write eeprom 0 1 2 3 4
>> erase
>> d hfuse
>> d lfuse

more: use -u to enable writing of fuses

reset fuses?

not sure

sudo avrdude -p atmega1280 -c usbasp -P usb -v  -U lfuse:w:0xef:m -U hfuse:w:0xc9:m

bootloader with avrdude

/Applications/ -C/Applications/ -v -v -v -v -patmega1280 -cusbasp -Pusb -Uflash:w:/Applications/ -Ulock:w:0x0F:m 

AVR documentatie

coder's toolbox for storing strings in variables


zie wifly

watchdog arduino

Ik heb pas zelf een watchdog timer gebouwd voor Arduino met de TimerOne library zie ik nu. Maar het kan ook met standaard avr functies. Zie dit voorbeeld.

#include <avr/wdt.h>
wdt_enable(WDTO_8S); //start watchdog set for max 8 seconds
wdt_disable(); //turn off watchdog timer - if sketch gets this far it hasn't hung


locatie van arduino hex file

Op mijn mac was dit de locatie van de hex file:

cd /private/var/folders/n9/n9UpGCFsHQW0bdm5gfLoRE+++TI/-Tmp-/console4814829202509611846.tmp

Dit heb ik uitgezocht met lsof | grep -i 'tmp' (list open files).


op windows (afkomstig uit Ultimaker marlin firmware upload.bat):

@echo off
set /p COMPORT=Which COM port to use for uploading (ex: COM5)? 
mode %COMPORT%: DTR=on > NUL
mode %COMPORT%: DTR=off > NUL
avrdude -c stk500v2 -b115200 -p atmega2560 -P %COMPORT% -D -Uflash:w:firmware.hex:i

avrdude commando

./avrdude -c arduino -b115200 -p ATMEGA328P -P /dev/tty.usbmodem411 -C avrdude.conf -D -Uflash:w:firmware.hex:i

avrdude: parallel port access not available

avrdude: parallel port access not available in this configuration
avrdude: error at avrdude.conf:531: programmer type not specified

in het geval van deze melding kun je alle 'type = par' in de avrdude.conf vervangen door 'type = serbb'. Ook al gebruik je de profielen helemaal niet. Zie deze forum post.

arduino.txt · Last modified: 2015/12/27 23:12 by rick