Raspberry Pi Pico break out board with 7 ICs.

The PIC chip is the extra chip and the rest of the board is the same as for 6ICs. There is also RS232 included on some versions of this board.

The MPLAB program for the PIC chip and PWM is at this stage partially completed. There will be 6 PWM outputs.

This board provides a large number of most commonly used pin types. It has general usability and it is intended that this board can be used as a robot controller. Here are some of the likely modes:

  • Slave mode where the unit receives string instructions via RS232 as often as every 20ms or so. The rotary encoder and screen could still be used to page through diagnostics etc. The Lincoln Railway code does, however, include the concatenation of strings at the receiver, where instructions are still carried out regardless of whether two strings are received at once.
  • Stand alone mode where the unit runs programs which can be selected using the rotary encoder and screen, if needed. Otherwise it would have a dedicated function and these components would be superfluous. Obviously they would be left out of a derived customised board, as would unused pins.

Robot controller applications are likely to be for custom robots. There are many industrial applications involving sensors and data logging. For data logging there are an SD card reader and two FRAM chips. One of the FRAM chips is removable and either of the FRAM chips can be at the default address and the other has can add a jumper shunt to alter the address to avoid a clash. FRAM can also store system parameters etc. There can also be active control of external devices and often times these can have there own dedicated controller that allows the Pico unit to apply control with logic level signals. An example might be to control a glass house, where temperature, humidity and CO2 level are measured and logged, and perhaps the device controls the CO2 regulator, ventilation and spray mist. In applications like these it would be advisable to change the clock back up battery periodically (perhaps yearly) even if there is not much downtime. Another example might be to control a welding head that is mounted on a series of arms and a trolley controlled by stepper motors. The program for this can be hard coded, it could use a version of LincolnCode adapted to the Microtron robot controller board or it could use parameters like number of steps and timer counts stored in Fram to carry out the specific task. Typically an SD card file containing the parameters would be uploaded to Fram, using a menu option on the board to do so. This could be done in a way that is similar to and simpler than LincolnCode, but that does not involve a computer, only the MCU. The MCU could have menu options for several welding programs stored in FRAM.

This device does not use a clock interrupt and so only millis() are available for precise timing and recording. If there is demand for a board with milliseconds that count with the clock, then an update will be fabricated. The clock Microtron uses for that is about 15mm square and so can be accommodated without much difficulty.

The reason for two supply sockets is that the power socket for the entire board specifies 1.8V-5.5V. The supply for programming the PIC is specified at 5V.

There are 5 header pairs near the PIC chip and they are taken off to program the chip and then put back on to reconnect the chip to the rest of the board. There is a single jumper shunt adjacent the power socket and it disconnects power from the chip. It is intended that this shunt be one of the five put on to connect the chip to the board, so when one is connected the other is disconnected.

Some RS232 ports offer 5V or 12V on pin 9. It can, if you choose, be used for low power circuitry that is isolated from any machinery etc. It could be used for relay coils, if any back EMF spikes due to the inductance and changing current are smoothed adequately. There is a place for a capacitor across this output on the board.

It took me 8 hours or so to assemble and test this board, including the SMDs which can alternatively be done by machine. There are an order of assembly and methods of testing that can be provided by Microtron to customers. It helps to know that ICs are properly connected, before putting plastic components next to them. The test program provided (6ICs) only requires the chips in question and the Pico, screen and rotary encoder. If components are missing the sketch reports that and continues to run, where possible. Testing is carried out with a multimeter or a jumper lead to connect 3.3V to inputs. It is important to frequently check for shorts between 3.3V, Gnd, SDA and SCL. Note that most multimeter testing is done with the Pico and screen unplugged. This is mainly listening for a beep indicating continuity or no beep. Most multimeters will not damage the ICs, otherwise, if necessary, think more about where the voltage from the multimeter is going. Once those tests are done then move on to running the test program. Testing the RS232 and PIC circuitry, requires the unplugged test of V, G, SCL and SDA, followed by running the programmer and then running the PIC. Testing RS232 is most simply tested after that by running a test program that sends the received Serial1 (e.g. from LincolnCode.exe) data to Serial and the Arduino IDE monitor (can be on the same computer).

  • MCU units with sensors and datalogging.
  • Break out boards with user interface. Suitable for datalogging and interactive function including stepper motors.
  • Break out board customizations. Sensors, stepper motors, WiFi, SD cards and Fram.
  • Design of circuit boards, including design of circuit boards that are a customization of a break out board pilot project.
  • WiFi and server collection of data.

Go to Pic program board to see programmer.