News:

We're live! Join us!

Main Menu

Microcontroller recommendation

Started by JKnightandKARR, Nov 27, 2024, 10:28 AM

Previous topic - Next topic

Chris Savage

Quote from: granz on Nov 29, 2024, 07:27 AMThis idea, however, came from long before that job, it was in the early-mid '80s when my home computers had 1K - 16K RAM, and the computers that I was designing were all custom point-to-point circuits. And, I never really implemented that idea - I just never had the need. It was just from my work with computers and the stuff that I saw about cryptography. By the time the PC rolled out, I wasn't all that worried about protecting my programs.

Joe - the type of controller that I was describing was (like Chris said) just a CPU along with some (E)ROM, some RAM and some I/O chips. This could all fit onto a smallish PCB, and then be used in place of an Arduino, or Prop. A good example of this is San Bergmans' Nano-6802 (https://www.sbprojects.net/projects/nano6802/index.php). If you were to wire up his circuit, and then scramble the data lines between the EPROM and the M6802 CPU (but leave the data lines unscrambled between the CPU and the 6821 PIA,) and then "scramble the program/data in the EPROM, you would have a controller that acts kind of like an Arduino - but anyone taking the ROM (without noticing the scrambled data lines) would be unable to read the program. (Wow - sorry about the run-on sentence.  :P )

I think it's a good idea. On a larger project like this, I would be inclined to use MCUs as co-processors for individual sub-functions, with an ACM running the show. A Z80 would be perfectly capable of running such a system with plenty of speed @ 8MHz. If you need more, the W65C02 runs at upwards of 20MHz, I believe. Still, this scrambling of the data lines could then be implemented on the main code. You could use Atmel MCUs (or Arduino via the Atmel IDE) for the sub-functions and you've have really good protection overall.

I can't remember what chip it was, but I remember reading a post somewhere about a commercial IC, I think from the 80s, whose data lines were backwards, such that, when connecting it to a system, you would wire D0 to the D7 on the data bus and so on.

        I'm only responsible for what I say, not what you understand.

granz

Quote from: Chris Savage on Nov 29, 2024, 01:43 PMI can't remember what chip it was, but I remember reading a post somewhere about a commercial IC, I think from the 80s, whose data lines were backwards, such that, when connecting it to a system, you would wire D0 to the D7 on the data bus and so on.
Hmm, I don't remember that one. That does seem strange, though.

JKnightandKARR

Quote from: granz on Nov 29, 2024, 07:27 AMJoe - the type of controller that I was describing was (like Chris said) just a CPU along with some (E)ROM, some RAM and some I/O chips. This could all fit onto a smallish PCB, and then be used in place of an Arduino, or Prop. A good example of this is San Bergmans' Nano-6802 (https://www.sbprojects.net/projects/nano6802/index.php). If you were to wire up his circuit, and then scramble the data lines between the EPROM and the M6802 CPU (but leave the data lines unscrambled between the CPU and the 6821 PIA,) and then "scramble the program/data in the EPROM, you would have a controller that acts kind of like an Arduino - but anyone taking the ROM (without noticing the scrambled data lines) would be unable to read the program. (Wow - sorry about the run-on sentence.  :P )

I can check that out. Thanks, but might as well just use what I know, and call it a day. 

granz

Quote from: JKnightandKARR on Nov 30, 2024, 12:00 PMI can check that out. Thanks, but might as well just use what I know, and call it a day. 
Yep, that is often a good idea.

On the other hand, the WebMite (Raspberry Pi Pico with MicroMite BASIC as the firmware - https://geoffg.net/webmite.html) is an excellent option. It has a VERY capable BASIC compiler (it runs very much like TurboBASIC where it acts like an interpreted language.) BASIC gets quite a few nasty comments, but almost all of them come from people who are stuck in the 1960s; this BASIC has nearly all of the modern language attributes. In addition, it is very difficult to beat modern BASICs for ease of learning, and rapid development. Finally, you can get a Pico from MicroCenter (get the Wireless for built-in WiFi networking, and pay the extra $1 for them to solder in the male headers - easier to breadboard.) The price for both the Wireless, and the header, options is only $7 - I've gotten several (plus more each time I visit MicroCenter) for playing/experimenting. If you want the Pico without the WiFi option, there is a PicoMite BASIC (https://geoffg.net/picomite.html) which replaces the wireless networking commands with some better GUI commands for the LCD displays - yes, GUI commands already built-in for many different LCD modules, plus the opportunity to write your own driver for an LCD which is not natively supported.

If you are already set on Forth, Python (MicroPython) or C, then those are also options, plus probably more.

Chris Savage

Quote from: granz on Nov 30, 2024, 06:29 AMHmm, I don't remember that one. That does seem strange, though.

I think it may have been a sound chip from the 70s / 80s.

        I'm only responsible for what I say, not what you understand.

granz

Jeez... The whole reason that I brought up the WebMite is because of the "security" built-in, and I totally forgot when I wrote my last reply. The user's manual (https://geoffg.net/Downloads/picomite/WebMite_User_Manual.pdf, page 79) shows that the OPTION PIN gives protection against reading/modifying the source code. It is probably not an extremely secure protection, but who is it that you are worried about reading your code? This should provide protection from most people, just like the security fuses on AVRs, PICs and other controllers.

JKnightandKARR

I actually have a couple of those, i think i modified 1 already. Need to figure out what i did with them and try it.

Chris Savage

Quote from: JKnightandKARR on Dec 01, 2024, 03:53 PMI actually have a couple of those, i think i modified 1 already. Need to figure out what i did with them and try it.

Just checking in to see where you're at on this project. I didn't know if you ever hashed out how you were going to proceed.

        I'm only responsible for what I say, not what you understand.

JKnightandKARR

Quote from: Chris Savage on Feb 27, 2025, 01:49 PM
Quote from: JKnightandKARR on Dec 01, 2024, 03:53 PMI actually have a couple of those, i think i modified 1 already. Need to figure out what i did with them and try it.

Just checking in to see where you're at on this project. I didn't know if you ever hashed out how you were going to proceed.
I've started by looking over the manuals on it. I figured that would be the best place to start.

Chris Savage

Quote from: JKnightandKARR on Feb 28, 2025, 12:16 AMI've started by looking over the manuals on it. I figured that would be the best place to start.

Okay, well let us know if you need any help with that information.  8)

        I'm only responsible for what I say, not what you understand.

JKnightandKARR

I know y'all will help if I need it. Thanks!

granz

Quote from: JKnightandKARR on Feb 28, 2025, 12:16 AMI've started by looking over the manuals on it. I figured that would be the best place to start.
So which manuals are you looking over? And, which microcontroller are you considering?

JKnightandKARR

Quote from: granz on Mar 01, 2025, 05:39 AM
Quote from: JKnightandKARR on Feb 28, 2025, 12:16 AMI've started by looking over the manuals on it. I figured that would be the best place to start.
So which manuals are you looking over? And, which microcontroller are you considering?
Probly P1 and the PicoMite you mentioned before

granz

Quote from: JKnightandKARR on Mar 01, 2025, 02:47 PMProbly P1 and the PicoMite you mentioned before
One of the things that I like most about the Raspberry Pi Pico is the PicoMite BASIC language. It is probably the best all-around controller BASIC, and is extremely powerful on it's own. And, BASIC is one of the best/easiest languages for beginners. The PicoMite manual has a tutorial for easily learning their brand of BASIC (https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf .)

That said, if you want to go with other languages (including C, and assembly) you can get the Pico, and just use it in the Arduino environment, or use Python. Using C, or assembly, you can get some pretty good speed. Although, PicoMite BASIC allows you to under-/over-clock the controller, right from BASIC command line - from 48 MHz all the way up to 378 MHz! Right darn fast, there.

If you do not have a Pico, and are going to buy one, I recommend that you get a Pico 2H - it is the newer version of the Pico, and the headers are already soldered on, it's only a couple bucks more than the plain. The included header will save you a bit of time (although with the way my eyes are going, I am trying to get all my Picos with the headers soldered on.  :( )

JKnightandKARR

Quote from: granz on Mar 01, 2025, 03:22 PM
Quote from: JKnightandKARR on Mar 01, 2025, 02:47 PMProbly P1 and the PicoMite you mentioned before
One of the things that I like most about the Raspberry Pi Pico is the PicoMite BASIC language. It is probably the best all-around controller BASIC, and is extremely powerful on it's own. And, BASIC is one of the best/easiest languages for beginners. The PicoMite manual has a tutorial for easily learning their brand of BASIC (https://geoffg.net/Downloads/picomite/PicoMite_User_Manual.pdf .)

That said, if you want to go with other languages (including C, and assembly) you can get the Pico, and just use it in the Arduino environment, or use Python. Using C, or assembly, you can get some pretty good speed. Although, PicoMite BASIC allows you to under-/over-clock the controller, right from BASIC command line - from 48 MHz all the way up to 378 MHz! Right darn fast, there.

If you do not have a Pico, and are going to buy one, I recommend that you get a Pico 2H - it is the newer version of the Pico, and the headers are already soldered on, it's only a couple bucks more than the plain. The included header will save you a bit of time (although with the way my eyes are going, I am trying to get all my Picos with the headers soldered on.  :( )
I actually got couple of Pico's from MicroCenter in Columbus last year sometime. I know i got 1 set up already from my laptop.