Recent Posts

Pages: [1] 2 3 ... 10
1
Digispark (Original) Support / Help out a noob?
« Last post by rollerce on July 15, 2018, 11:27:06 pm »
Playing around with an adafruit 16x8 matrix was hoping to run it using a Digistump.

Using the example available from the adafruit library, I get the following mess when trying to compile:

Code: [Select]
In file included from C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library\examples\matrix16x8\matrix16x8.ino:31:0:

C:\Users\rolle\Documents\Arduino\libraries\Adafruit_GFX_Library/Adafruit_GFX.h:107:25: error: '__FlashStringHelper' does not name a type

     getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,

                         ^

C:\Users\rolle\Documents\Arduino\libraries\Adafruit_GFX_Library/Adafruit_GFX.h:107:46: error: ISO C++ forbids declaration of 's' with no type [-fpermissive]

     getTextBounds(const __FlashStringHelper *s, int16_t x, int16_t y,

                                              ^

exit status 1
Error compiling for board Digispark (Default - 16.5mhz).

I'm using the default example, but I'll post the code here:

Code: [Select]
/***************************************************
  This is a library for our I2C LED Backpacks

  Designed specifically to work with the Adafruit 16x8 LED Matrix backpacks
  ----> http://www.adafruit.com/products/2035
  ----> http://www.adafruit.com/products/2036
  ----> http://www.adafruit.com/products/2037
  ----> http://www.adafruit.com/products/2038
  ----> http://www.adafruit.com/products/2039
  ----> http://www.adafruit.com/products/2040
  ----> http://www.adafruit.com/products/2041
  ----> http://www.adafruit.com/products/2042
  ----> http://www.adafruit.com/products/2043
  ----> http://www.adafruit.com/products/2044
  ----> http://www.adafruit.com/products/2052

  These displays use I2C to communicate, 2 pins are required to
  interface. There are multiple selectable I2C addresses. For backpacks
  with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks
  with 3 Address Select pins: 0x70 thru 0x77

  Adafruit invests time and resources providing this open source code,
  please support Adafruit and open-source hardware by purchasing
  products from Adafruit!

  Written by Limor Fried/Ladyada for Adafruit Industries.  
  BSD license, all text above must be included in any redistribution
 ****************************************************/

#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"

Adafruit_8x16matrix matrix = Adafruit_8x16matrix();

void setup() {
  Serial.begin(9600);
  Serial.println("16x8 LED Matrix Test");
  
  matrix.begin(0x70);  // pass in the address
}

static const uint8_t PROGMEM
  smile_bmp[] =
  { B00111100,
    B01000010,
    B10100101,
    B10000001,
    B10100101,
    B10011001,
    B01000010,
    B00111100 },
  neutral_bmp[] =
  { B00111100,
    B01000010,
    B10100101,
    B10000001,
    B10111101,
    B10000001,
    B01000010,
    B00111100 },
  frown_bmp[] =
  { B00111100,
    B01000010,
    B10100101,
    B10000001,
    B10011001,
    B10100101,
    B01000010,
    B00111100 };

void loop() {
  
  matrix.clear();
  matrix.drawBitmap(0, 0, smile_bmp, 8, 8, LED_ON);
  matrix.writeDisplay();
  delay(500);
  
  matrix.clear();
  matrix.drawBitmap(0, 8, neutral_bmp, 8, 8, LED_ON);
  matrix.writeDisplay();
  delay(500);

  matrix.clear();
  matrix.drawBitmap(0, 0, frown_bmp, 8, 8, LED_ON);
  matrix.writeDisplay();
  delay(500);

  matrix.clear();      // clear display
  matrix.drawPixel(0, 0, LED_ON);  
  matrix.writeDisplay();  // write the changes we just made to the display
  delay(500);

  matrix.clear();
  matrix.drawLine(0,0, 7,15, LED_ON);
  matrix.writeDisplay();  // write the changes we just made to the display
  delay(500);

  matrix.clear();
  matrix.drawRect(0,0, 8,16, LED_ON);
  matrix.fillRect(2,2, 4,12, LED_ON);
  matrix.writeDisplay();  // write the changes we just made to the display
  delay(500);

  matrix.clear();
  matrix.drawCircle(3,8, 3, LED_ON);
  matrix.writeDisplay();  // write the changes we just made to the display
  delay(500);

  matrix.setTextSize(2);
  matrix.setTextWrap(false);  // we dont want text to wrap so it scrolls nicely
  matrix.setTextColor(LED_ON);
  for (int8_t x=0; x>=-64; x--) {
    matrix.clear();
    matrix.setCursor(x,0);
    matrix.print("Hello");
    matrix.writeDisplay();
    delay(100);
  }

  matrix.setTextSize(1);
  matrix.setTextWrap(false);  // we dont want text to wrap so it scrolls nicely
  matrix.setTextColor(LED_ON);
  matrix.setRotation(1);
  for (int8_t x=7; x>=-36; x--) {
    matrix.clear();
    matrix.setCursor(x,0);
    matrix.print("World");
    matrix.writeDisplay();
    delay(100);
  }
  matrix.setRotation(0);
}

I have a feeling that the digistump might not be able to do this, but I'm not a coder, I just kinda mash stuff together with the hope that it works. Any advice? I read in a different post that the references to __FlashStringHelper needed to be commented out, but that resulted in an entirely new mess.

Code: [Select]
In file included from C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library\examples\matrix16x8\matrix16x8.ino:31:0:

C:\Users\rolle\Documents\Arduino\libraries\Adafruit_GFX_Library/Adafruit_GFX.h:111:3: error: expected unqualified-id before 'virtual'

   virtual size_t write(uint8_t);

   ^

matrix16x8:34: error: cannot allocate an object of abstract type 'Adafruit_8x16matrix'

 Adafruit_8x16matrix matrix = Adafruit_8x16matrix();

                                                  ^

In file included from C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library\examples\matrix16x8\matrix16x8.ino:32:0:

C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library/Adafruit_LEDBackpack.h:94:7: note:   because the following virtual functions are pure within 'Adafruit_8x16matrix':

 class Adafruit_8x16matrix : public Adafruit_LEDBackpack, public Adafruit_GFX {

       ^

In file included from C:\Users\rolle\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Stream.h:24:0,

                 from C:\Users\rolle\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/TinyDebugSerial.h:31,

                 from C:\Users\rolle\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/WProgram.h:18,

                 from C:\Users\rolle\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Arduino.h:4,

                 from sketch\matrix16x8.ino.cpp:1:

C:\Users\rolle\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\cores\tiny/Print.h:73:20: note: virtual size_t Print::write(uint8_t)

     virtual size_t write(uint8_t) = 0;

                    ^

matrix16x8:34: error: cannot declare variable 'matrix' to be of abstract type 'Adafruit_8x16matrix'

 Adafruit_8x16matrix matrix = Adafruit_8x16matrix();

                     ^

In file included from C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library\examples\matrix16x8\matrix16x8.ino:32:0:

C:\Users\rolle\Documents\Arduino\libraries\Adafruit_LED_Backpack_Library/Adafruit_LEDBackpack.h:94:7: note:   since type 'Adafruit_8x16matrix' has pure virtual functions

 class Adafruit_8x16matrix : public Adafruit_LEDBackpack, public Adafruit_GFX {

       ^

exit status 1
cannot allocate an object of abstract type 'Adafruit_8x16matrix'
2
OK, finaly found a working solution, with pin0 to ground to upload.
I re-soldered my project with speaker now on pin1 instead of pin0 and moved the PWM sensor on pin1 to pin4. It works fine.

I used the DigiDucky files and instruction video. See links below.

micronucleaus and hex bootloader file:
https://sites.google.com/site/csapractical/DigiDucky.zip

instruction video:
http://upschannel.eu/watch/DXMHB1GCGEE/Remove+5+Sec+delay+and+add+button+to+Digispark+RubberDucky.html

Just had to re-upload the program after the bootloader update.

Rob
3
Digispark Libraries / Re: SoftSerial example not compiling
« Last post by jusep on July 12, 2018, 12:34:11 am »
Hi Rob,
I am using the example code provided when you install Digispark board on Arduino IDE. Of course, the serial object is created.
Talking with a friend some days ago he proposed to use DigiCDC library for this purpose, so I'll give it a try.
Code: [Select]
/*
  Software serial multiple serial test
 
 Receives from the hardware serial, sends to software serial.
 Receives from software serial, sends to hardware serial.
 
 The circuit:
 * RX is digital pin 2 (connect to TX of other device)
 * TX is digital pin 3 (connect to RX of other device)
 
 created back in the mists of time
 modified 9 Apr 2012
 by Tom Igoe
 based on Mikal Hart's example
 
 This example code is in the public domain.
 
 <SoftSerial> adapted from <SoftwareSerial> for <TinyPinChange> library which allows sharing the Pin Change Interrupt Vector.
 Single difference with <SoftwareSerial>: add #include <TinyPinChange.h>  at the top of your sketch.
 RC Navy (2012): http://p.loussouarn.free.fr
 
 */
#include <SoftSerial.h>     /* Allows Pin Change Interrupt Vector Sharing */
#include <TinyPinChange.h>  /* Ne pas oublier d'inclure la librairie <TinyPinChange> qui est utilisee par la librairie <RcSeq> */

SoftSerial mySerial(2, 3); // RX, TX

void setup() 
{
 // Open serial communications and wait for port to open:
  Serial.begin(57600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }

 
  Serial.println("Goodnight moon!");

  // set the data rate for the SoftwareSerial port
  mySerial.begin(4800);
  mySerial.println("Hello, world?");
}

void loop() // run over and over
{
  if (mySerial.available())
    Serial.write(mySerial.read());
  if (Serial.available())
    mySerial.write(Serial.read());
}
4
Digispark Libraries / Re: SoftSerial example not compiling
« Last post by robvd on July 08, 2018, 01:41:40 pm »
Hello Jusep,

Did you create the serial object?

Something like

Code: [Select]
  #include <SoftSerial.h>                 // SoftSerial en TinyPinChange voor DigiSpark               
  #include <TinyPinChange.h>
  SoftSerial MySerial(RX, TX);     // RX, TX pins

Also the "}" error may be the problem. Sometimes the errors are not clear when something else is wrong and one } to many or too few may give all kind of errors….

Rob

Rob
5
Hello Forum,

I've been round in cirkels and been to dead-ends several times trying to find out ho to remove the 5 seconds delay when the DigiSpark starts up. I understand it is required for the bootloader to detect any USB communication to get the user program loaded. Now I'm at the project stage that the program is running  fine, but the 5 seconds delay is a problem.

I had a look at the tips and tricks in the Wiki
http://digistump.com/wiki/digispark/tricks
But I couldn't figure out how to get the appropriate (hex) files.
Furthermore, I don't want to use PB0 to start the upload: it is in use with a fairly small resistance to ground in my project (see schematic below).

So, is there an easy way to remove the 5 sec delay (preferably without affecting the user program and via USB)?


Some background on the project.:
De DigiSPark is used as sound module in a h0 scale steam loco. the loco get's its power, 10 Volts PWM, from the wheels. This power is rectified and used for the DigiSpark also. The DigiSpark reads the dutycylce of the PWM motor power and uses it to create steam loco sound that changes when speed (duty cylce) increases or decreases.

The hardware setup:




The loco gets the power from it's wheels, so some short power interuptions are inevitable. The elco will reduce the power interruptions, but not for long. A larger Elco can overcome slighty longer power interruptions, but there's no room for a higher capacity one in the loco.
The sound can be heard quite OK while the loco is in motion, but it would be far better if the program starts immediately after the DigiSpark gets power (again).

Just to be complete, here's the code (sorry, comments are in Dutch)

Code: [Select]
/*
 * RUISGENERATOR STOOMTREIN
 * Stoomtrein geluiden met rijstroom afhankelijk "puffen" van ruis.
 *
 * Eenvoudige extra geluidsfuncties:
 * 1: fluitje (lijkt meer op een telefoon)
 * 2: sissen
 * 3: remmen
 * 4: 4 seconde stilte (vrijloop)
 * Functies werken redlijk bij langzaam rijden en goed bij stilstand en snel rijden
 *
 * versie 0.9.1 - 7 jul 2018
 */


// --- DEFINITIES ----

// pin definities
#define Ruispin       0                           // pin voor aansturen van speaker
#define rijpin1       1
#define rijpin2       2

//geluidsdefinities
#define Startfreq  1800                           // laagste frequentie ruis
#define Eindfreq   4000                           // hoogste frequentie ruis
#define pauze         0.25                        // factor puf/pauze
#define RemLaag    3200                           // frequentiebereik voor remgeluid
#define RemHoog    3800
#define SisLaag    4000                           // frequentiebereik voor sisgeluid
#define SisHoog    5500

// definities voor de meting van de rijstroom
#define pullup               false     // geeft aan of de interne pullup weerstand gebruikt moet worden
#define maxpulsbreedte       5000      // hoe lang wachten (minimaal 2x periode)
#define pulsbreedtestil        22      // pulsbreedte in % waaronder loc stil staat   

// Frequenties (Periodes) op de rijstroom
#define rijPeriode            2020    // rijstroom puls in us
#define functie_01_Periode    1500    // Periode (freq.) functie 1
#define functie_02_Periode    1250    // Periode (freq.) functie 2
#define functie_03_Periode     990    // Periode (freq.) functie 3
#define functie_04_Periode     790    // Periode (freq.) functie 4
#define functie_05_Periode     590    // Periode (freq.) functie 5 - niet gebruikt
#define functie_06_Periode     490    // Periode (freq.) functie 6 - niet gebruikt
#define pulsruis               100    // maximaal verschil in gemeten Periodes (ruis)
#define minhoog                200    // minimaal "hoog" signaal

// ---- VARIABLEN ----

// puf-geluid variabelen: 4 slagen (is tweezijdige tweecylinder loc)
unsigned int ruisStartFreq[] {Startfreq + 120, Startfreq, Startfreq, Startfreq + 300 };  // hoogste frequentie puf-ruis per slag
unsigned int ruisEindFreq[]  {Eindfreq - 50,   Eindfreq,  Eindfreq,  Eindfreq  - 120 };  // laagste frequentie puf-ruis per slag
int slag = 0;

// rijstroom variabelen
int rijpin[] {rijpin1, rijpin2};
int vooruit = 1;                      // richting: bepaalt welke pin wordt uitgelezen voor de rijstroom puls
double pulsbreedteHoog;
double pulsbreedteLaag;
double pulsPeriode;
int pulsbreedte = 0;                  // pulsbreedte in %
int functie = 0;                      // speciale functie frequentie gemeten

unsigned int  puf;                    // lengte puf-slag (ms)
unsigned long pze;                    // pauze tot aan klok stand(ms)

// --- FUNCTIES ---

// Functie: maak puf geluid (één slag)
// Geeft ruis voor een deel van de opgegeven lengte en stil voor de resterende tijd (factor definitie)
// De ruisfrequentie neemt langzaam af om enigszins de volume afname te simuleren.
// input: lengte van de slag (in ms)
//        laagste frequentie van de ruis
//        hoogste frequentie van de ruis
// output: tijd tot einde pauze van de puf
unsigned long maakPuf(int lengte, unsigned int laag, unsigned int hoog) {
  unsigned int  freq;
  unsigned long mils;
  constrain (lengte,10,1000);                           // beperk de slag tussen 10ms en 1s.
  float factor = 1 - (0.09/lengte);
  mils = millis() + (1-pauze) * lengte;
  while (millis() < mils) {
    freq = random (laag, hoog);
    tone (Ruispin,freq);
    laag = laag*factor;
    hoog = hoog*factor;
  }
  noTone(Ruispin);
  return millis() + (lengte * pauze);                         // pauze tijd tussen de puffen
}

// Functie: Afspelen van ruis.
// Gebruikt voor sissen en remgeluid. Constant ruis-geluid gedurende de opgegeven lengte (in ms).
// input: lengte van de slag (in ms)
//        laagste frequentie van de ruis
//        hoogste frequentie van de ruis
void speelRuis(unsigned int lengte, unsigned int laag, unsigned int hoog) {
  unsigned int  freq;
  unsigned long mils;
  mils = millis() + lengte;
  while (millis() < mils) {
    freq = random (laag, hoog);   
    tone (Ruispin,freq);
  }
  noTone(Ruispin);
}

// Functie: Afspelen van een 'fluitje'
// Afwisselend een hoge en lage frequentie met een kleine frequentie variatie.
// input: lengte (in ms)
void speelFluitje(unsigned int lengte) {
  unsigned int  freq;
  unsigned long mils;

  mils = millis() + lengte;
  while (millis() < mils) {
    tone (Ruispin,random (2100,2120));
    delay (20);
    tone (Ruispin,random (2400,2430));
    delay (18);
  }
  noTone(Ruispin);
}

void meetPuls() {
  // puls meting variabelen: lengte 'hoog', 'laag' en trillingstijd (periode). Alle tijden in us.
  pulsbreedteHoog = pulseIn(rijpin[vooruit], HIGH, maxpulsbreedte);
  pulsbreedteLaag = pulseIn(rijpin[vooruit], LOW, maxpulsbreedte );
  pulsPeriode = pulsbreedteHoog + pulsbreedteLaag;
}

// HERKEN FUNCTIE-FREQUENTIE
// functie voor het checken van functie-frequenties
// op de puls (functietoets).
int getFunctie () {
  int f = 0;
 
  if (abs (pulsPeriode - functie_01_Periode) < pulsruis) { f = 1;}
  if (abs (pulsPeriode - functie_02_Periode) < pulsruis) { f = 2;}
  if (abs (pulsPeriode - functie_03_Periode) < pulsruis) { f = 3;}
  if (abs (pulsPeriode - functie_04_Periode) < pulsruis) { f = 4;}

  return f;
}

void setup() {
  pinMode     (Ruispin,OUTPUT);
 
  pinMode     (rijpin[0],INPUT);
  digitalWrite(rijpin[0],pullup);
  pinMode     (rijpin[1],INPUT);
  digitalWrite(rijpin[1],pullup);
  meetPuls();
  speelRuis (950, SisLaag,SisHoog);               // sissen
}

void loop() {

  vooruit = !vooruit;
  // Pulsbreedte bepalen
  meetPuls();
  pulsbreedte = 100 * pulsbreedteHoog / pulsPeriode;
  functie = getFunctie();
  if (functie) {
    switch (functie) {
      case 1:
        speelFluitje(1800);                          // fluitje afspelen, 1,8 sec.
      break;
 
      case 2:
        speelRuis (3000, SisLaag,SisHoog);           // sissen, 3 sec.
      break;
 
      case 3:
        speelRuis (2600, RemLaag,RemHoog);           // remgeluid 2,6 sec.
      break;

      case 4:
        pze = millis()+ 4000;                         // 4 sec. stilte
      break;
    }

  }
  else {
    // rijgeluid
    // tweecylinder = 4 puf slagen met verschil in eerste en laatste slag
    if (pulsbreedte > pulsbreedtestil && millis() > pze) {            // lok rijdt en niet in puf-pauze of stilte
      puf = map(100 * sqrt (pulsbreedte), 550, 980, 700, 10);
      pze = maakPuf(puf, ruisStartFreq [slag], ruisEindFreq [slag]);
      if (slag < 3) {
        slag++;
      }
      else {
        slag = 0;
      }
    }
  }
}


I hope someone can help me out. Thanks in advance.

Rob
6
Oak Support / Re: Can't connect Oak to WiFi
« Last post by jmelvi200 on July 02, 2018, 08:19:37 am »
I have two kickstarter oaks which I just pulled out of the wrapper to use in a project. I have been able to update their firmware via serial. I cannot, however, get either of them to connect to wifi via the method in the documentation. This is after several tries with at least 3 different browsers on three different platforms as well as different versions of said browsers. I have come to the conclusion that Digistump is likely aware of this issue and has (so far) shown little interest in fixing it despite the fact that they are still offering the device for sale on their website. Without the ability to communicate, these devices are essentially junk. Needless to say I'm hugely disappointed in Digistump as this is the first (and very likely the last) product I have bought from them. 
7
Oak Support / Re: Can't connect Oak to WiFi
« Last post by specialcircumstances on June 24, 2018, 02:34:18 pm »
Hi,

Same here... just came across a stock of my kickstarter oaks - had a project in mind so I thought I'd give it a go...

So, here's my solution, and it's worked for all the units I've tried it on...

You need a 3.3V USB/TTL Serial dongle, perl, python, node.js and a bit of patience.

Make sure you have installed perl, python, node.js.

Get the particle CLI as per: https://docs.particle.io/guide/tools-and-features/cli/photon/ or alternatively you could (as per further down that page) just
Code: [Select]
# how to install the particle-cli
$ npm install -g particle-cli
$ particle login


Now, first, do a factory reset as per https://github.com/digistump/OakRestore

Wait a moment, then reset/repower.

Grab the code from here: https://github.com/malaire/oak-with-rpi-server/blob/master/oak-set-wifi.pl


Then connect to the Soft AP of the Oak, and type:

Code: [Select]
curl -X GET -i http://192.168.0.1/info
Copy into a notepad the id string from the output {"id":"biglonghexadecimalnumberyouneed"....

Setup WiFi with

Code: [Select]
perl oak-set-wifi.pl YOURSSID wpa2-aes YOURWIFIPASSKEY
Note: Obviously set the correct security setting for your Wifi network.

Wait a moment. Then:

Code: [Select]
curl -X GET -i http://192.168.0.1/connect-ap
At this point, the Oak should restart and connect to your WiFi. There should be lots of flashing as it connects to Particle Cloud. Give it a minute or two.
If this doesn't happen restart the Oak, and try the last two steps again (set Wifi and tell it to connect).

Once this has all happened, claim your device using the particle CLI (you have to particle login first of course - it's not hard...) - of course you also need to be on your normal wifi connection now.
Using the id number you saved earlier:

Code: [Select]
particle device add biglonghexadecimalnumberyouneed
Now you can log on to Particle Console, and you should see a new unnamed device. Give it a name.

I'd recommend you push the simple Blink script from Particle to make sure you have latest firmware. Then you can get back to making stuff.

Hope that helps :) Thanks to all who made the scripts used.



8
Digispark Libraries / SoftSerial example not compiling
« Last post by jusep on June 24, 2018, 11:40:37 am »
Hi all!

I have a Digispark with a thermometer shield I designed. Now, I would like to make some reading to the sensor and send them to the computer. I would like to have a bidirectional communication between the PC and the Digispark. To do so, I thought that the SoftSerialExample would be a good starting point. However, I encountered some issues. First, there was a compiling error in line:
Code: [Select]
while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only

Telling me that:
Code: [Select]
tmp/arduino_modified_sketch_408992/SoftSerialExample.ino: In function 'void setup()':
SoftSerialExample:32: error: no match for 'operator!' (operand type is 'TinyDebugSerial')
    while (!Serial) {
           ^
/tmp/arduino_modified_sketch_408992/SoftSerialExample.ino:32:11: note: candidate is:
/tmp/arduino_modified_sketch_408992/SoftSerialExample.ino:32:11: note: operator!(bool) <built-in>
/tmp/arduino_modified_sketch_408992/SoftSerialExample.ino:32:11: note:   no known conversion for argument 1 from 'TinyDebugSerial' to 'bool'
exit status 1
no match for 'operator!' (operand type is 'TinyDebugSerial')

However, given that this line is needed for Leornardo only I commented it. Next, however, more compiling errors appear:
Code: [Select]


SoftSerialExample:37: error: 'Serial' does not name a type
   Serial.println("Goodnight moon!");
   ^
SoftSerialExample:40: error: 'mySerial' does not name a type
   mySerial.begin(4800);
   ^
SoftSerialExample:41: error: 'mySerial' does not name a type
   mySerial.println("Hello, world?");
   ^
SoftSerialExample:42: error: expected declaration before '}' token
 }
 ^
exit status 1
'Serial' does not name a type


I am clueless on how to fix it. Could you please give me some guidance? I am using Arduino IDE 1.8.5 on an Ubuntu 14.04 LTS.

Thanks in advance!
Jusep
9
Off-Topic / Re: Neuralink
« Last post by Adsixnine on June 23, 2018, 12:41:47 am »
looks good  8)
10
Oak Support / Re: Can't connect Oak to WiFi
« Last post by Adsixnine on June 19, 2018, 10:04:02 pm »
I have same problem.  :'(
Pages: [1] 2 3 ... 10