• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

TashIO: Clone of BeeHive Technologies's ADB I/O

aladds

Well-known member
Here we go :)


Cool! I love that this has gone from concept to execution and almost to manufacturing in one weekend.
I know! I also love that we've managed to pull something together with this despite nobody actually having a physical device, too!

I'll check your schematic tomorrow when I'm sober!

Thankyou! I won't pretend it's perfect, but I think it's functional, and the DRC passes.
 

Attachments

  • Screenshot_20221113_212341.png
    Screenshot_20221113_212341.png
    64.2 KB · Views: 17
  • WaspIO_1.zip
    997.5 KB · Views: 3
Last edited:

Phipli

Well-known member
@aladds, excellent work and I'm not quite sure how you did it quite so quickly. Its taken me far to long to go through what you've done. Anyhow, I've gone through your KiCAD files, really sorry if I've misread anything or made any mistakes, and I'm not certain I've caught everything. I've not commented on style or anything like that, but at a high level, it is worth avoiding tight corners in traces (90 degrees, or funny corners at pads). It can simplify and improve circuits to flood almost an entire side with a ground plain, and you could do with some much wider traces where decent power is being moved about (the power rails and the relay outputs, plus the protection circuitry (diodes on the coils and the TVS diodes)). Lastly, some of your power traces are extremely meandering and travel a long way from the source through thin wires - if these are loaded at the far end you'll likely see voltage drops.

@tashtari did you confirm what pins are mapped to what function? Sorry if I missed it. I'm just aware the original manual calls everything Port A and Port B, but the PIC we're using doesn't have a Port B :)

Comments on WaspIO

Power traces need to be thicker. From ADB, to the PIC and elsewhere, or shorter.

Traces between the screw terminals and relays need to be significantly thicker. They need to handle a decent amount of current, for example if the user is switching a motor with the relay. Same with the TVS diodes.

ADB sockets are facing into the board I think. Also, if the part mentioned on the forum is to be used, you are missing a couple of the holes for mounting tabs? There are three tabs on the "Lumberg" part. The following is from an old design I did (purple is the board edge) :
1668441258537.png
I recommend overhanging the front of the ADB port over the edge of the board by a few mm so that it is flush, or closer to flush with the enclosure end cap.

C1 is upstream of your pollyfuse.

A ground plain would be be good.

Pin 6 of the relay is not connected to anything that completes the circuit and so wont activate.
1668441275905.png
R9, R10, R11, R12 seem to be 1k resistors, when the manual shows 10k.

The MCU pins used for driving the relays don’t seem to align with the manual? It says PortA 1...4, but you’ve used PortC 3, PortC 2, PortC 1 and PortC 0. The manual’s Port B is connected to… RA4, RA2, RA0, RA1 rather than PortB 1...4. These might not be critical, but need confirming with tashtari. I haven’t checked that the required functions (e.g. analogue input) are available on the selected pins – did you consider this?

J7 screw terminal block – the Gnd pins aren’t connected to anything other than each other.
1668441292349.png

I would increase the resistance of the LED’s current limiting resistor, modern LEDs are stupidly bright. 1k is probably a better value, if not higher.

For the capacitors, I would put a single 100uF capacitor paired with a 100nF capacitor next to the ADB ports on the power rails, and then put a 100nF capacitor next to the PIC.
 

Phipli

Well-known member
I was thinking a board to fit this enclosure or a similar box would make enclosures simple. It is about the right colour for a mac already :

I've realised that RS have hijacked the part number I searched for. I actually tried to share the Hammond enclosure "RM2015S". The RS box looks like it is basically a clone, but for some reason, they haven't bothered including the dimensions of the PCB mounting posts inside. Cheers RS.

Actual Hammond details :



1668442687019.png

So the centres of the posts are 80mm and 60mm apart. The overall board seems to be... 68x84mm so I'm guessing you found the details somewhere. Don't forget that as long as you avoid the two big posts that hold the box together, you can push out further beyond the posts, in fact, you will want to if you are trying to get the ADB ports and screw terminals accessible for connections.
 

tashtari

PIC Whisperer
@tashtari did you confirm what pins are mapped to what function?
Sorry, I must have missed it if you asked me to... in any case, the connections diagram at the top of the firmware .asm file is accurate: https://github.com/lampmerchant/tashio/blob/main/firmware/tashio.asm

I wanted to make it so the port pins could be configured all at once, so each ADB I/O "port" maps to a port on the PIC, but "Port A" is actually PORTC on the PIC, and "Port B" is actually PORTA - has to be this way because of the way analog pins are arranged - the 1704 lets you rearrange peripheral pins but not port or analog ones, and RA1 is where Vref+ is stuck, so that has to be "Port B Channel 4".
 

Phipli

Well-known member
Sorry, I must have missed it if you asked me to...
I hadn't asked, I was just worried you'd said and I hadn't noticed :)

in any case, the connections diagram at the top of the firmware .asm file is accurate: https://github.com/lampmerchant/tashio/blob/main/firmware/tashio.asm
Excellent - thank you.
I wanted to make it so the port pins could be configured all at once, so each ADB I/O "port" maps to a port on the PIC, but "Port A" is actually PORTC on the PIC, and "Port B" is actually PORTA - has to be this way because of the way analog pins are arranged - the 1704 lets you rearrange peripheral pins but not port or analog ones, and RA1 is where Vref+ is stuck, so that has to be "Port B Channel 4".
Sounds good. I have some on the way hopefully.
 

Melkhior

Well-known member
and RA1 is where Vref+ is stuck, so that has to be "Port B Channel 4".
Darn, I had assumed the 4 channels on each port were symmetrical, I have Port B Channel 3 on RA1 to ease routing (not in the THT version, in a SMD version).

Also, how does one program the PIC ? Is there any special hardware required, and if so does it have a specific plug ? Using the DIP version I guess it should be possible to program the PIC off-board no matter what, but the TSSOP SMD package isn't going to move easily. I think there's only 3 pins to breakout (ISCPDAT, ISCPCLK, Vpp) in addition to VCC and GND, but I have no idea if some specific connector is needed...
 

aladds

Well-known member
Thank you so much for checking the layout for me! I should have fixed most of those issues now. Still need to do an updated Mini-DIN 4 connector, though. Many of the issues I fixed by adding a GND plane and a 5V plane. I also made the board a little wider in the "not middle" section and added two mounting holes (NB KiCAD shows these holes badly, especially on the 3D view. They will be drilled correctly, I've used this method before). The board size came from the attached datasheet.

The only other thing is that perhaps the Phoenix connectors should protrude from the front of the box so the screw terminals are accessible without needing to drill holes in the case. Or we find terminals which have spring clips accessible from the front, perhaps. Something to consider...

But we're getting close now! :D

1668461677627.png
 

Attachments

  • RM2005L.pdf
    308 KB · Views: 3
  • WaspIO.zip
    2.3 MB · Views: 1

tashtari

PIC Whisperer
Also, how does one program the PIC ? Is there any special hardware required, and if so does it have a specific plug ? Using the DIP version I guess it should be possible to program the PIC off-board no matter what, but the TSSOP SMD package isn't going to move easily. I think there's only 3 pins to breakout (ISCPDAT, ISCPCLK, Vpp) in addition to VCC and GND, but I have no idea if some specific connector is needed...
The PICs I use, including the PIC16F1704 used in this project, can be programmed using a PICkit3 programmer that can usually be had on ebay for under $30. Unfortunately, newer PICs do not seem to be compatible with the TL866+. The connector for the PICkit3 is just a plain old 5-pin 0.1" header with Vpp, Vcc, Ground, ICSPDAT, and ICSPCLK in that order. (It's sometimes a 6-pin header, but the 6th pin is not used with the 1704.)
 

Phipli

Well-known member
Added. What do we think of this overhang?

View attachment 48824
That might be a little too close to the edge. I anticipate if you check, your manufacturer will state a minimum distance for through holes from the edge? I suggest avoiding going for the absolute limit, so see what they say and then add a little bit more. If it says 1mm, make it 1.5mm, for example.
 

aladds

Well-known member
I usually use JLC - they seem to say they can do 0.5mm from the edge but I've inferred that from other metrics, it's not actually clear. Anyway I've moved the sockets in a little.

I'm gonna sleep on it and as long as I ( or anyone else) can't see any showstoppers then I'll put an initial order in tomorrow and cross my fingers! :D

Edit: Also changed the fuses to through-hole as I found some on Mouser. Note that in the UK at least, Mouser are the only supplier who have the PIC16F1704 in stock at the moment (I checked RS first, Farnell second and then Mouser third, so I appreciate other suppliers might also have them who I didn't check with). I've put in my mouser order already but I hedged a little on some of the parts so I'll hold off on a BOM until I'm sure it's correct. Didn't need to change the phoenix connectors as right-angle socket/plug ones look like they'd fit well.
 

Attachments

  • WaspIO.zip
    2.6 MB · Views: 1

keelan

Member
Oh my this is hilarious. Guess what I’ve been up to? I just finished the firmware tonight. My board is a clone of the original, it even fits the original case.

I’m friends with the purveyor of the original; sadly the source code for the PIC16C71 was lost… but now there are two versions!
I built mine around the 16F88, because I wanted it to be pin compatible with the original.
A1E2EBB3-0C0B-4AE9-8A67-34DF7FEEA96B.jpeg1F1C0019-08B2-4921-91C0-02BC35D78C71.jpeg
 

keelan

Member
And now, story time.

In 1997, 16 year old me I learned about the ADB I/O, I think from and ad in a magazine. It was expensive, and I had no money, so I put it on my christmas wishlist. Well my parents delivered, and on christmas morning, I gleefully opened the box of my first ADB I/O. The company that sold the ADB I/O, Beehive Technologies, was a sort of "technology collective" run out of the living room of Sven & Nancy, a couple JPL/NASA engineers living in Pasadena. They helped people get products to market, and one of those products was the ADB I/O.

Beehive Technologies ran a couple mailing lists on their servers, and I was soon involved with that online community. They ran a few "make an application note, win a free ADB I/O" competitions, and I managed to expand my setup to three ADB I/Os by writing some documents on how to do fun things with the ADB I/O that I'm sure are still available somewhere in the internet archive. I also wrote software for the ADB I/O, the most ridiculous of which was an Bolo Brain that let me use the ADB I/O to control the tank in Bolo. At one point I was working on developing a USB I/O for Beehive, but that project didn't make it off the ground.

When I first started interacting on the Beehive mailing lists, I was using a hotmail address. Sven felt pity for me and gave me a proper email address with POP/SMPT access, and web hosting space on their servers. For many years, bzzzzzz.com was my home on the internet. Eventually, Sven and Nancy involuntarily retired from JPL, and were working towards living on a sail boat. The move meant shutting down the servers in their living room, so I volunteered to reverse the roles, taking over hosting their web sites and email, just like they did for me for so many years. It's meant that I've been able to remain in contact with Sven and Nancy for the last 25 years.

A while back, I wanted to reboot the ADB I/O. I talked to Sven about the idea, and from an IP standpoint, he had no problem with me recycling the name. I was hoping to recover the original source code for the PIC, but because Beehive Technologies was just the "get to market" part of the business, they didn't have access to the original source produced by a company in Sweden called Motion Control AB. But Sven did put my in contact with the original creator. Sadly, he informed me that he purged anything related to the project many years before.

My plan for the rebooted ADB I/O was to open source the design, but to also sell them as kits (PCB+parts), as well as fully assembled & tested PCBs. The original ADB I/O enclosure was a modified version of an off-the-shelf plastic project box, but the specific model of box is no longer available. My plan was to make a 3D printed version available both as a 3D model and as a printed part to be used with the PCB. I'll be getting to that part soon.

I haven't had a chance to look over all y'all's work in detail yet, but it's exciting—and also a bit creepy—that we've ended up unknowingly working on the same project at the same time.
 

keelan

Member
Oh, and here’s the original unit (left) and the reboot (right). I’m switching mine to black screw terminals tomorrow to complete the “dark mode” look.EA9C3543-0A69-4549-99E6-A22B71D52CAF.jpeg
 

CC_333

Well-known member
When it rains, it pours!

So, in the course of four days, not one, but two ADB I/O clones were created, evidently without knowlege of each other's existence until now; one is complete (@keelan 's example), and one is in progress (the collaborative effort between @tashtari , @Phipli , @aladds and @Melkhior ).

Coincidence? Convergent evolution?? Parallel evolution???

Whatever it is, it's quite fascinating to see it happen in real time!

c
 
Top