Hej
Som lovet et par links til den der lille mini arduino jeg har brugt til VBand interface.
https://www.aliexpress.com/item/32819992328.html
https://www.ebay.com/itm/Beetle-USB-ATMEGA32U4-Mini-Development-Board-Mo...
Hvis man anvender koden fra Hjalmars hjemmeside:
http://www.oz1jhm.dk/content/hamradio-solutions-vband-interface
skal man lige ændre i softwaren, for at få prik og streg benene ført ud til nogle loddeøer der er tilgængelige. Jeg har prik på D9 og streg på D10.
# define DIH_PIN 9
# define DAH_PIN 10
Jeg har ikke sat en kontakt på "Mode" benet, for at kunne skifte mellem gårdpumpe og paddle, så jeg har også ændret koden, så det er Mode_paddle() der bliver kaldt uanset om det ben er højt eller lavt, og det er trukket højt i definitionen.
void loop() {
if (digitalRead(MODE_PIN) == HIGH){
Mode_paddle();
}
else{
Mode_paddle();
}
}
Der findes et andet board fra Digispark som har en 8 benet ATMEL processor, det hedder Tiny 85 - det har jeg IKKE fået til at fungere med Hjalmars software, så inden i spilder penge på det i stedet for dem jeg har link til, vil jeg anbefale at i prøver at kompilere koden i Arduino IDE'en og ser at i kan få det til at virke med Tiny85. (Google is your friend)
Og så lige for de totale nørder:
Jeg har en nyere Android mobiltelefon med USB-C stik, og der har jeg et USB OTG kabel med USB-C stik og USB-A hun stik, og det giver mulighed for at sætte Arduinoen til telefonen og køre /P på V Band :-) OBS!! Det virker på min Samsung A52, men ikke på en anden nyere Samsung ??
Men ellers kan man også inde i V Band opsætningen vælge "Straight key" og sætte flueben ved "Enable touch straight key" og så kan man bare morse løs på skærmen med pegefingeren. jeg kører fint speed 12-14 på den måde.
Vi er flere - jeg selv inklusiv - der har øvet ragchew ved at sidde og "skive dagbog" om aftenen, på enten morserinoen eller "practice channel" på V Band. Og nu hvor jeg øver mig i at køre på engelsk, bruger jeg også den metode, og så kan man jo skrive om vejret, eller kaffen der smager bittert, eller hvad man nu kan finde på. Det er fin træning at gøre det i 2-3 minutter hver dag
73 Henrik
Jeg bestiller begge boards og lægger kode op der virker på begge ... skrev jeg
MEN der er ikke USB på en tiny85 derfor kan du ikke få den til at virke ..
Hej Hjalmar
Indtil du fik lavet dit STM32 VBAND LCWO Keyer Interface, brugte jeg faktisk en ATTiny85 til vBand :-)
Digispark ATtiny85 micro mainboard kan købes i Danmark hos JenTronic for 29,-
https://jentronic.dk/iot-mainboards/84-digispark-attiny85-micro-mainboar...
For at få ATtiny85 til at virke som et USB keyboard i Arduino IDE, skal man lige tilføje "http://digistump.com/package_digistump_index.json" under "File->Preferences->Additional Boards Manager URLs"
Mener det var et lille timings problem med hvor tit den sampler keyboardet, men fik ikke kigget på det, da du kom med din STM32 løsning i mellemtiden.
2 dah, 3 dit og så det samme spejlvendt
OZ6ADL, Nils T
Det må komme an på en prøve ...jeg køber et og får det til at virke hvis det kan USB
Jeg har bikset lidt med det i dag uden held. Jeg kom til at købe et par ATtiny85 for noget tid siden og havde ikke opdaget at USB funktionen er en ren software implementering. Jeg fandt også referencer til potentielle timingproblemer i det jeg har læst her i dag.
Så min anbefaling til dem der hellere vil køre CW end rode med microcontrollere, er at holde fast i den model der virker, selvom den er lidt dyrere. Penge investeret i CW giver verdens højeste udbytte :-)
73 Henrik
De emulere USB over en serial port ...tror jeg for det er en 8 bit processor uden USB ...
Jeg bestiller en og ser, men det haster ikke, da jeg har en opdatering her som er vigtigere
Jeg har problemer med Keyboard lib'et. Version 1.0.2 var installeret, men jeg prøvede at upgrade til v. 1.0.3, men får stadig denne fejl:
In file included from /home/jhj/Arduino/vband/vband.ino:8:0:
/home/jhj/Arduino/libraries/Keyboard/src/Keyboard.h:29:2: warning: #warning "Using legacy HID core (non pluggable)" [-Wcpp]
#warning "Using legacy HID core (non pluggable)"
^~~~~~~
/home/jhj/Arduino/vband/vband.ino: In function 'void setup()':
vband:20:3: error: 'Keyboard' not found. Does your sketch include the line '#include <Keyboard.h>'?
Keyboard.begin();
^~~~~~~~
hmmmmm .....Det er det forkert library tror jeg .....Sender dig lige en mail med det jeg har brugt
Nej du kan downloade den her Keyboard.zip ... vores forum er jo med RICH MEDIA
Sri, det var min fejl :-(
Havde glemt at en Arduino Pro Micro skulle sættes til Board "Arduino Leonardo"
DONE
Fin konstruktion - tak for det !
1BFM & 6ADL er på VBAND så nu kan du hygge med dem om aftenen ...FED TRÆNING
Ja kig ind, vi plejer at sms til hinanden, og du er velkommen til at skrive til mig, så kan vi da prøve og se om vi kan finde et niveau hvor vi begge for noget ud af det.
mobil 20 62 87 74
2 dah, 3 dit og så det samme spejlvendt
OZ6ADL, Nils T
Tak, det vil jeg prøve. Jeg kan ikke køre ret stærkt, men håber det bliver bedre med træningen. Jeg skriver en sms til dig.
73 Jan
Nå.... så blev der lige nørdet igennem sammen med OZ6ADL / Nils, og for det første fik han lige hjulpet mig med at få Arduino IDE'et til at snakke med min ATtiny85, så jeg kunne programmere den (mere om det senere).
Det næste var så, at mens vi sad og rodede rundt, så fandt han den ægte og originale kode til at få ATtiny til at fungere som VBand interface. Og hvor fandt han den, selvfølgelig gemt væk på Ham Radio Solutions egen hjemmeside:
https://hamradio.solutions/vband/digispark_keyboard/digispark_keyboard.ino
På det tidspunkt var klokken vist 2 om natten, men nu hvor der var hul igennem til programmering, og loddekolben stod på bordet ved siden af nøglen, så loddede jeg lige et jackstik på for at teste, og modificerede samtidig koden så den blinker med den indbyggede lysdiode, når man trykker på nøgle eller paddles.
Hvad er så bedst.... Arduino eller ATtiny: Med forbehold for at det var sent om natten, og jeg måske var lidt træt og dermed også langsom i fingrene, så mener jeg at ATtiny er lidt mere sløv end min Beetle ATMEGA32. ATtiny kører bedst når den er under 20 wpm efter min bedømmelse. Og det bedste er nok under alle omstændigheder at bruge løsningen med STM32 som Hjalmar har beskrevet, men de der små arduinoer med indbygget USB stik er bare lige så nuttede som hundehvalpe.
Nå men tilbage til programmeringen af ATtiny85, her er den hurtige vejledning til ATtiny85 og Arduino IDE:
Programmeringsvejledning for ATtiny85
https://startingelectronics.org/tutorials/arduino/digispark/digispark-windows-setup/
I additional Boards Manager tilføjes
http://digistump.com/package_digistump_index.json
Download og installer Windows drivere for ATtiny85 USB
https://github.com/digistump/DigistumpArduino/releases/download/1.6.7/Digistump.Drivers.zip
Kør Dpinst hvis du har en 32 bit Windows og DPinst64 hvis du kører en 64 bit windows
I Arduino IDE under "Værktøjer/board vælges Digispark Default 16,5 MHz og som programmer vælges "Micronucleus"
Og her er så min kode hvor der er tilføjet blink med on board lysdioden:
#include "DigiKeyboard.h"
#define DIT_PIN 2
#define LED_PIN 1
#define DAH_PIN 0
void setup() {
pinMode(DIT_PIN, INPUT_PULLUP);
pinMode(DAH_PIN, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT); // indicate paddle or key activity on LED
_delay_ms(10);
}
static uchar last_modifiers = 0xff;
static uchar reportBuffer[2]; // buffer for HID reports [ 1 modifier byte + (len-1) key strokes]
void loop() {
uchar modifiers = 0;
if (digitalRead(DIT_PIN) == 0) {
modifiers |= MOD_CONTROL_LEFT;
digitalWrite(LED_PIN, HIGH);
}
if (digitalRead(DAH_PIN) == 0) {
modifiers |= MOD_CONTROL_RIGHT;
digitalWrite(LED_PIN, HIGH);
}
if (modifiers != last_modifiers) {
last_modifiers = modifiers;
while (!usbInterruptIsReady()) {
usbPoll();
_delay_ms(1);
}
reportBuffer[0] = modifiers;
reportBuffer[1] = 0;
usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
_delay_ms(1);
}
digitalWrite(LED_PIN, LOW);
}
Du kan også lave et termometer der kan sidde ude i haven og blinke hvad temperaturen er - det er sådan lidt old school IoT kan man sige :-)
Jeg skal have slagtet en af de der solcellelamper, og lave den om til et termometer der morser.
Selve koden til beacon funktionen der blinker med lysdioden er her:
https://github.com/ntsakonas/avr-cw-beacon/blob/master/cwbeacon.ino#L1