Jump to content
IGNORED

Questions about Adamnet Drive Emulator Arduino Sketch.


ftdi232

Recommended Posts

Hello.  I'm new to the forum and am in the process of building an Adamnet Drive Emulator.  This is my first experience with Arduino so forgive me if my terminology is a bit off.  All of the parts for the project are correct per the GitHub instructions that are posted by the Kalidomra.  Unfortunately I've had a few issues while trying to upload the Arduino sketch for the newest version of the software which I believe is .82.  While the Arduino IDE program is compiling the sketch I receive an error message about redefining a void or something like that.  As an experiment I uploaded version .80 and didn't have any issues with the compiling process.  I did however get an error message in the black area of the Arduino IDE window that said:

 

"Global variables use 6282 bytes (76%) of dynamic memory, leaving 1910 bytes for local variables. Maximum is 8192 bytes.
Low memory available, stability problems may occur.

 

Has anyone else had either of these issues while uploading either version of the sketch?  If I use the older version of the software, should I be concerned about the memory message?  

 

I'm still waiting for a few miscellaneous parts to complete the 6C6P portion of the emulator so I can't confirm whether or not the emulator is working beyond powering it up and scrolling through the disk images that are loaded on the SD card.

 

Any help would be appreciated. 

 

I'm looking forward to using this device and really appreciate the effort that was put into creating it.  Thank you Sean Myers!

 

 

Link to comment
Share on other sites

Thank you for the quick reply.  I just got another message in the bottom of the IDE window after opening the newest version .82 sketch before starting the upload.  The message said:

 

File name AdamNetIdle - Copy.ino is invalid: ignored

 

I don't know if that is significant but thought that I would mention it.

 

Here is the error message that I copied via the button at the bottom of the IDE window attempting to upload the sketch:

 

Arduino: 1.8.12 (Windows Store 1.8.33.0) (Windows 10), Board: "Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"

C:\Console Stuff\Coleco\Adamnet emulator\Arduino Software\AdamNet-Drive-Emulator-master\AdamNet_Drive_Emulator\AdamNetIdle.ino: In function 'void AdamNetIdle()':

AdamNetIdle:1:6: error: redefinition of 'void AdamNetIdle()'

 void AdamNetIdle(){                                                // Wait for AdamNet to go Idle

      ^~~~~~~~~~~

C:\Console Stuff\Coleco\Adamnet emulator\Arduino Software\AdamNet-Drive-Emulator-master\AdamNet_Drive_Emulator\AdamNetIdle - Copy.ino:1:6: note: 'void AdamNetIdle()' previously defined here

 void AdamNetIdle(){                                                // Wait for AdamNet to go Idle

      ^~~~~~~~~~~

exit status 1
redefinition of 'void AdamNetIdle()'

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

 

It's very possible that I'm doing something wrong due to inexperience with the hardware or software.

 

Thanks again for the help.  I appreciate it!
 

 

 

Link to comment
Share on other sites

Thank you both for your input.  I deleted my previous folders and started with a fresh download of version .82 from GitHub.  Worked perfectly!  Thank you!

 

smeyers - Is there somewhere that I can make a donation to support your efforts in making this great device?  I'm sure that there were many hours spent on developing it to say the least.  Very impressive work.  

 

Looking forward to using this with the Adam.  Thanks again.

 

 

Link to comment
Share on other sites

18 hours ago, MrPix said:

ftdi232, the low memory error is meaningless in this case. The memory is highly used, but the code's usage isn't going to cause it to run out.

I'll leave the rest to Kalidomra, who is around and will be quick to help you.

I ran into an oddity with my project where attempts to use a lookup table caused the chip to reset though.  Moving the lookup table into program memory fixed it.  But I wonder if the IDE knows the difference between bootloader reserved memory and program memory?  Perhaps the upload image crossed the boundary?

Link to comment
Share on other sites

I suggested to Kalidomra to shift the target to one of the more capable chips included in the Arduino IDE, with more SRAM, but unfortunately he doesn't seem to like that idea.

I have started porting it to ESP32, after already porting it to Arduino Due.

Link to comment
Share on other sites

MrPix,

 

You seem to disagree with most of the design choices I have made in creating the ADE. As I have placed all of the code on GitHub you can change it to anything you like. If you want to take the code and make it into some other version with different screens, buttons, knobs, form factors, sd cards and capabilities, then great. That being said, the ADE is in the form it is for a number of reasons. It works. It is simple. It is easy to build by someone with very limited electronics skill. The parts can be sourced from many different places. And contrary to what you have said, it is very reliable. 

 

I like it the way it is, and think it is perfectly suited for it's purpose.

 

K

  • Like 1
Link to comment
Share on other sites

6 hours ago, ChildOfCv said:

What's more powerful than an ATMega2560?  (and still Atmel-based?)  It looks to me like if you want more "oomph" from any of the Microchip line, you need to switch to PIC or ARM.  ARM seems to be 3.3V or less though.

The Arduino Due is based on the ARM Cortex M3, the Atmel SAM38Xe. It costs the same as the Arduino Mega 2560.

 

5 hours ago, Kalidomra said:

You seem to disagree with most of the design choices I have made in creating the ADE. As I have placed all of the code on GitHub you can change it to anything you like. If you want to take the code and make it into some other version with different screens, buttons, knobs, form factors, sd cards and capabilities, then great. That being said, the ADE is in the form it is for a number of reasons. It works. It is simple. It is easy to build by someone with very limited electronics skill. The parts can be sourced from many different places. And contrary to what you have said, it is very reliable. 

 

I like it the way it is, and think it is perfectly suited for it's purpose.

Not at all. I think you're mischaracterizing me as much as you feel I'm mischaracterizing ADE. I think it's awesome.

I made three speculative requests, hoping for a pleasant discussion about the benefits, risks and implications of adding them. All of the requests were added after some thought. I decided to not put forward eight other requests because they would be change for change's sake.

I requested you consider support for a different screen than 1602 LCDs, because they are slow and clunky, and often difficult to read except from one angle. I submitted this request after considering that you support a common and consistent module that has the LCD and tactile switches, making the system more modular. What I was proposing was a switch to a common OLED display driver group, allowing much clearer, crisper and faster updating displays. I also saw you already had support for analog/capacitive touch in your code. So I made this request, and hope you are considering it.

I requested support for a simple rotary controller for up/down selection. This was suggested to me independently by two people. Really, it requires very little support, and would add maybe 5 lines of code and use two or four bytes of SRAM, depending on how you implement it. I was hoping for a discussion about how people interact with the menus. I thought that even if you didn't adopt the request, the discussion would reveal something of your thinking. Unfortunately, your dismissal of the idea was so brusque that it revealed nothing except impatience at the request.

I requested support for a second SD slot. I thought that having the ability to copy images between SDs, without having to use an outside machine like a PC, was a real boon. For those who want two SD slots, it's the difference between building one or two systems (or buying $260 instead of $130 of overpriced ready-make kit...) When you declined this and said "do it on a PC" I had mixed feelings about it. Yes, it's more convenient if that's how you like to do something. But it is also a negative, in the same way that the inability to format DDPs on the Adam is a negative. If I want to duplicate an image on a PC or a Mac, I have to unmount the SD card, walk over to the PC and mount this SD card, dig through and find the right image, copy it to the desktop, insert a new SD, copy the image to that, then take it back to the Adam to verify that it copied and works on the Adam correctly. It's just a huge waste of time. But, you know, people can buy two ardunos and two LCDs and have plugged in bits covering their desk getting ever bigger and more clunky because it doesn't make sense to YOU to support a second SD slot.

I have not claimed ADE is unreliable. The code is quite stable and rock solid. It's the shaky stack of Arduino and display and SD slot with level shifters and a couple of resistors and.... and sometimes, when you push the tactile buttons it causes the screen to glitch or reset, or the SD momentarily gets disconnected... In a properly assembled system this is much less likely. In a single board custom system this simply won't happen at all. I even made a suggestion regarding this, to add support for a Keyes remote control, so people could simply activate the buttons without touching the main unit. Again, dismissed without explanation, but instead with a snarky comment about keyboards and joysticks. I don't even know what they have to do with this.

For me, the irony of this is that I posted that I'd prefer to talk with you off the github and bounce ideas around, and you passively declined that approach. That type of casual back and forth tells me a lot more about your ambitions for your project. It's amazing work, the code is well constructed, and you have created an incredibly new utility that didn't exist before. It's just sad that you continually go "oooh, I want people to be able to make this cheaply" and when someone says "I would like to make a custom board for this that would be cheaper than buying the parts separately" you basically cut them off at the knees, apparently in support of the $130 product. So the claim of wanting it to be affordable rings hollow. You literally turned down the person offering to sell a single board comprising everything for less than the cost of the parts.

So no, I don't disagree with your design choices. I was trying to supplement your pool of ideas and have a discussion with you. I'm not upset. I'm not mad. I just want to work with you to make this thing cooler, better, smaller, sleeker, and more capable. I'm still hoping you'll reach out to me so we can talk. I'm not trying to be impertinent. I don't think it's cheeky to offer ideas to an open source project. Open source = open ideas. I strongly hold to the ethos that if I have ideas I can either request them and have a nice conversation about the relative merits of the idea, and maybe they get implemented but often they don't, or I can fork the code and create confusion in the marketplace of ideas, a destructive competition that moves nobody forward and doesn't aid the users.

My door is always open. I'm coming to you with no chip on my shoulder, a very open mind, and requests that are just that - requests, not demands, not expectations. I just want this to be in people's hands in an integrated manner, for less than the cost of the parts.

Link to comment
Share on other sites

As an example, I just opened a new request on github for you. 

It is a request to add the ability to update or load sketches to the ATmega via SD card.

The primary goal of this is to allow people to download a file and copy it onto the SD card, then simply plug it into the unit and start it, without having to confront the Arduino IDE - which some people find a bit confusing or intimidating.

My secondary goal is that it would allow me to eliminate about $6 of components from the board I want to make. If I do not have to support a USB port, a whole bunch of components go away. I can preprogram the QFP ATmegas on my programmer, and then they are able to self update from the SD.

Little steps like this are what let me keep costs low for people buying my stuff. They can only happen by talking with the code creators and hoping the feature gets implemented. But if it doesn't, that's okay too - I can just buy the $6 of parts per board and pass on the costs to what are really your customers.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...