Otto PCB

Please Login to Comment

Many Otto builders want a dedicated PCB for Otto let's do it then!


Is it already possible to purchase PCBs? And if so where can I buy it?
Thank you very much for any info.

Greetings Marcel

Hi, here is the pcb finalized in two layers.


It will be possible to put either a bluetooth module or a wifi module esp8266 (esp01).

I removed the multiplexer because it is absolutely useless. The current assembly works perfectly. If the bluetooth is paired, the assembly is designed to block the loading by usb but not the monitoring.

I will place an AtMega1284p rather than the 644p. It will be uploaded with MightyCore for the bootloader.

There are two shints (jp1, jp2), this will allow the board to be used for other projects:

  • the first to choose between a voltage reference of 4.22v (calibrated to control the charge and discharge of the battery), or if you want to use an external Aref voltage of your choice.
  • the second if you want to disable the reset function with bluetooth.

Gerber files coming soon.

Sounds great i think the diversity of PCBs design is good for this development phase of a new Otto ;). Constant improvement...

I admit that the disadvantage of my development lies in the portability of my files. This is not really open source.

The work of s4snow is more interesting from this point of view. Moreover, our projects are quite similar in the end.

One point grieves me on his pcb, the dc-dc converter TP61200 provided on its schema only delivers 1.3A max. A little fair for a more ambitious project than otto +.

Well still Pedro is a great contribution i think we can converge features and solutions into one super Otto PCB custom board

Sorry for late joining this topic, been busy with work,


My schematic and PCB
PCB is 2 layer with the option of plugging in a Bluetooth module or a wifi module.

Hopefully the OneDrive links above will work



Hello everyone,

I modified the schema to integrate the 74cbt3257 (the multiplexer) for those that interest. First, the mutiplexer prevents the bluetooth module from being reconfigured. I had to create a shint to bring "S" to high level.

As a result, it is no longer within everyone's reach. It takes a soldering iron.

I also added a TL431 to have a fixed reference voltage. The purpose is to reliably read the battery voltage. Because I had done some testing with the internal voltage of the processor and necessarily, depending on the type of power used, we did not have the same results in ADC. Especially with the USB port, depending on the cables used or the usb socket (PC, charger ... etc) the result was disastrous. I even found a usb cable at my house which lowered the voltage of 0.9v, 5.1v output of my PC and 4.2v on the nano.
In short, the idea is to create an animation when charging Otto, with a real state of the battery level and when the battery is low, this prevents the user. I made a video to show everything.


This is already included in the program for PedroBot. But I'm sure you'll find ideas to make it even more fun.

Edit: I forgot to put the link to the new schema: https://drive.google.com/file/d/0B50swBwyreEoY1poY2xDUWRPOFk/view?usp=sharing

And an overview of the map: https://drive.google.com/file/d/0B50swBwyreEoVlNOZHRsczY0YkE/view?usp=sharing

There will be 4 layers in all. One for the ground plane, one for the + 5v, the other two will be the ones you can see here. The serigraphy part will not be like this, it will be reviewed completely.

Hi @Pedro51 a prototype manufacturer also tried to open the .sds ave problems so what software are you using? can you export gerber files?

How to open .sds file?

Wow seems interesting i invited Jason Snow to this topic it seems you guys have 2 PCB designs maybe we can converge in some super Otto board

Added my design in a post earlier this evening.
I am using Eagle 6.2 professional
Design is based around an Atmeg1284 with the Bobuino pin configuration and board config files,
Board is a 2 layer design.


Hello, board very well designed. congratulations.

Comments deleted.

Pedro is developing custom PCB for Otto and we were discussing some things about bluetooth and we will continue our discussion here so anyone can see it and join in.
BT module by default has low signal on state pin and it goes high when connected. We must program BT so it is high when not connected and low when connected. It's done by entering AT command while in AT mode. You can follow this instructions to connect BT and enter AT mode:


When we enter AT mode we have to enter this commands:

AT+ORGL //resets to factory settings
AT+ROLE=0 //puts BT in slave mode
AT+POLAR=1,0 //Sets the state pin to go LOW when connected
AT+NAME=OTTO //Any name, but if you want to use Zowi app it has to be Zowi
AT+PSWD=1234 //sets pairing password
AT+UART=57600,0,0 //sets baudrate to match bootloader one

To be able to program Arduino with bluetooth BT you must also connect state pin to reset on arduino and capacitor between. According to documentation and some people, value shoud be 100 nF but I couldn't get it to work until I increased that value to 10 uF. There should also be resistor about 1K - 10K on reset pin to +5V but arduino should have that built in already so there is no need for additional one.

Just one last thing, I found how to modify the HC-05 modules directly on the I / O zero and one. (TX and RX)

Just use the configuration program like this:

// Options:

  #include <SoftwareSerial.h>

  SoftwareSerial BTSerial(0,1); // RX, TX
  void setup()

    // Waiting time (5 seconds):

  //BTSerial.print("AT\r\n"); delay(500); // Now configuration start

  //BTSerial.print("AT+ORGL\r\n"); delay(500); // 

  BTSerial.print("AT+ROLE=0\r\n"); delay(500); // 

  BTSerial.print("AT+POLAR=1,1\r\n"); delay(500); // Now configuration start

  BTSerial.print("AT+NAME=Zowi\r\n");  delay(500);   // Change Name of BT

  BTSerial.print("AT+PSWD=1234\r\n");  delay(500);    // Change Password

  BTSerial.print("AT+UART=57600,0,0\r\n");  delay(500);     // Change Baud

  BTSerial.print("AT+INIT\r\n");  delay(500);      // 

  void loop()
    // After LED Blinking is finish.
    digitalWrite(13, !digitalRead(13));

Hello, so thank you for the explanations. So that reassures me because I did exactly as you describe above. Except for the "AT + UART = 57600,0,0" which was "AT + UART = 115200,1,0". Forced, the arduino could not do the update. : D

So I have reproduced the following montage: https://i11.servimg.com/u/f11/15/00/13/12/reset10.png

Finally, it works as expected. https://i11.servimg.com/u/f11/15/00/13/12/captur10.png

So, I have the bluetooth module connected in parralele with the ch340g, both works correctly without conflict. I can even load a new program with the usb when the bluetooth is in AT mode. Only problem detected is if we plug the usb at the time we upload the program with bluetooth.

The 74CBT3257 multiplexer can solve this problem. But I am convinced that we can do without using some less expensive transistors.

Sorry, now I didn't understand you. You mean it is working good except if you plug in usb while programming via BT? Everything else is OK? It is working together when BT is not in AT mode? I think the problem is in the TX line from BT/USB, we should find a way to disconnect BT one while USB connected. Use transistor to disconnect it while usb connected? Or keep it disconnected whole time and connect it when bluetooth is connected? Use DTR from BT to activate transistror?

"Sorry, now I didn't understand you. You mean it is working good except if you plug in usb while programming via BT? Everything else is OK?"

  • It's all right. When the Usb is plugged in, it has the effect of making a reset, thus interrupting the upload. That is the only point to be settled.

"It is working together when BT is not in AT mode? I think the problem is in the TX line from BT/USB, we should find a way to disconnect BT one while USB connected."

  • In fact it was to say that the two do not conflict, whether in AT mode or normal use. No need to change the TX line.

"Use transistor to disconnect it while usb connected? Or keep it disconnected whole time and connect it when bluetooth is connected? Use DTR from BT to activate transistror? "

  • You should disable the usb when the bluetooth is connected. The problem is that the "State" output of the HC-05 is not permanent. So, now that I think about it, it would not have worked more with the multiplexer. The zowi robot uses a different bluetooth chipset.

Edit: No, I said a bullshit. : / The state remains at the high level if it is paired and in the low level in the other case. It's all good.

Pedro, I just noticed this, you have pull down resistor on DTR line, but you also need pull up that will charge the capacitor. But I'm still counfused, I think you should simplify it a little, remove the transistor and connect it like this


And tie DTR from CH340 and BT together. That's how it works on arduino with no problem.


DTR and reset are explained here :


The purpose of my editing with transistor is to create a square signal for the reset. Using a capacitor with too high a value will cause excessive current draw on the outputs. These last risks of burning.

Awesome i am not an expert in electronics like you guys but i can outsource some manufacturing here in China so once you guys have a final design for the Otto DIY PCB, i can order some prototype samples and send to all of you.

Best Regards

I think that would be great :)