I bought an old robot a few years ago called Arrick ARobot, which uses a Basic Stamp for control. I used a BAS2E, and a few months ago, I won an Arduino Nano RP2040 Connect. I was wondering how to go about changing this robot from a Basic Stamp to the RP2040 to maybe get more functionality out of the robot. I also bought a DIP300T600P24, which is basically a proto board with the footprint of the Basic Stamp to allow me to connect wires from the Arduino to it. I will include a PDF of the robot that has the schematics. I assume I would need a logic level converter to go from the 3.3V of the Arduino to 5V?
That is a rather complex robot, with two 5V processors.
The L298 motor driver, servo and sensors should work with 3.3V signals, if you replaced both processors with the Nano RP2040, connecting via the expansion port. All in all, a lot of work.
aRobot.pdf (931.2 KB)
Just one processor: I am replacing the Basic Stamp with the RP2040. I figured I would leave the coprocessor (PIC16F84) to do its thing. So far, the only thing I have done with the robot is use the included code for it to move randomly. If the whisker senses contact with something, it will turn around and go in another direction.
You will need an active, bidirectional logic level converter on all I/O pins.
Now that I've looked at the schematic more carefully, the 16F84 does not have all pins brought out to the expansion connector.
is an active bidirectional logic level converter the same as a quad level shifter ( 74AHCT125)? or is it something different
Is not a level shifter. It is a 5V buffer.
This is an example of a bidirectional logic level shifter.
BTW I like the design of that robot, with a primitive, internal high level command/control language. It is forward looking, expandable, and not typical of lowest-cost thinking.
Glad you like it! I bought it mainly because of the steering drive; itβs different compared to all the tank drive kits you typically see for Arduino. Also, it uses standard rc airplane rims and tires so they are easy to replace. By any chance, are there through-hole ICs for active bidirectional logic-level converters? The stock board of the robot comes with a small proto area, making it perfect to put an IC on it.
Below is a photo of it as you can see I replaced the Basic stamp with a DIP300T600P24 and next to it is the small proto area I mentioned.
There are a few PDIP level shifters, e.g. 74AHCT125, 74LVC245.
Header pins can be added to SMD adapters, like this one.
Just to double check since you mention it the 74AHCT125 is still just a 5v buffer not a shifter correct?
I would really not recommend the 74AHCT125 as it is not bidirectional. It will only convert >2.5V input to 5V output.
Offhand I don't know of any PDIP ICs that are bidirectional. At some point 5V logic will be a thing of the past.
The TXB0108 8-channel board or similar is probably the best way to go as it is truly bidirectional.
I see thank you for that information. Another question would it be possible to remove the SIP resistor on the sides since the Arduino has internal pull-up resistors
Yes, that is possible.
The bidirectional (I2C) level shifters require pullups on either side.
"since the Arduino has internal pull-up resistors"
They are "weak pullups" - and they aren't resistors.
Arduino doc itself labels them as resistors. So I don't know how it can be a resistor and not a resistor at the same time
I might be mistaken, but it seems that the communication between the Basic Stamp and the coprocessor is UART, based on the description in the PDF. The BASIC Stamp uses SERIN
and SEROUT
commands to communicate with the coprocessor via a network bus.
It's a semiconductor having an on-wafer current source, an "effective resistance".
Have a great day.
Which Arduino do you have in mind?
According to ATmega328... datasheet
Figure 35-17.ATmega328P: I/O Pin Pull-up Resistor Current vs. Input Voltage
the pullups behave like linear resistors.
Yes, "behave like".